{"id":13652570,"url":"https://github.com/kevinheavey/solders","last_synced_at":"2025-05-14T18:07:12.188Z","repository":{"id":37962390,"uuid":"442626230","full_name":"kevinheavey/solders","owner":"kevinheavey","description":"A high-performance Python toolkit for Solana, written in Rust","archived":false,"fork":false,"pushed_at":"2025-02-18T20:14:35.000Z","size":5104,"stargazers_count":376,"open_issues_count":7,"forks_count":39,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-06T23:00:56.373Z","etag":null,"topics":["blockchain","defi","nft","pyo3","python","rust","solana"],"latest_commit_sha":null,"homepage":"https://kevinheavey.github.io/solders/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinheavey.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-29T01:20:59.000Z","updated_at":"2025-05-06T21:56:44.000Z","dependencies_parsed_at":"2023-02-15T18:31:28.757Z","dependency_job_id":"ce190d24-757f-4084-9dea-d513b2898275","html_url":"https://github.com/kevinheavey/solders","commit_stats":{"total_commits":1301,"total_committers":9,"mean_commits":"144.55555555555554","dds":"0.22674865488086082","last_synced_commit":"26f9fcb304b19b89697a86624cd90568b3218e4c"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinheavey%2Fsolders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinheavey%2Fsolders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinheavey%2Fsolders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinheavey%2Fsolders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinheavey","download_url":"https://codeload.github.com/kevinheavey/solders/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198515,"owners_count":22030966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","defi","nft","pyo3","python","rust","solana"],"created_at":"2024-08-02T02:01:00.574Z","updated_at":"2025-05-14T18:07:07.178Z","avatar_url":"https://github.com/kevinheavey.png","language":"Rust","funding_links":[],"categories":["Rust","SDKs"],"sub_categories":["Indexers"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/kevinheavey/solders/main/docs/logo.jpeg\" width=\"50%\" height=\"50%\"\u003e\n\u003c/div\u003e\n\n---\n\n[![PyPI version](https://badge.fury.io/py/solders.svg)](https://badge.fury.io/py/solders)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/kevinheavey/solders/blob/main/LICENSE)\n\n# Solders\n\n`solders` is a high-performance Python toolkit for Solana, written in Rust. It provides robust solutions to the following problems:\n\n- Core SDK stuff: keypairs, pubkeys, signing and serializing transactions - that sort of thing.\n- RPC stuff: building requests and parsing responses (no networking stuff - if you want help with that, \n[solana-py](https://michaelhly.github.io/solana-py/rpc/async_api/) is your friend).\n- Integration testing stuff: the `solders.litesvm` module is an alternative to `solana-test-validator` that's much more convenient and **much** faster. It's based on [solana-program-test](https://crates.io/crates/solana-program-test) if you know that is.\n\n## What about solana-py?\n\n`solders` and `solana-py` are good friends. `solana-py` uses `solders` under the hood extensively in its\ncore API and RPC API. The main differences are:\n\n- `solders` doesn't have functions to actually interact with the RPC server (though `solana-py` does use the RPC code from `solders`).\n- `solders` doesn't provide SPL Token and SPL Memo clients.\n- `solana-py` may not have support for all the RPC requests and responses provided by `solders`.\n- `solana-py` doesn't have anything like the `litesvm` testing kit.\n\nSince `solana-py` uses `solders` under the hood and they don't duplicate each other's features, you should just use whichever library you need.\n\n## Installation\n\n```\npip install solders\n```\n\nNote: Requires Python \u003e= 3.7.\n\n## Example Usage\n\n```python\n\u003e\u003e\u003e from solders.message import Message\n\u003e\u003e\u003e from solders.keypair import Keypair\n\u003e\u003e\u003e from solders.instruction import Instruction\n\u003e\u003e\u003e from solders.hash import Hash\n\u003e\u003e\u003e from solders.transaction import Transaction\n\u003e\u003e\u003e from solders.pubkey import Pubkey\n\u003e\u003e\u003e program_id = Pubkey.default()\n\u003e\u003e\u003e arbitrary_instruction_data = bytes([1])\n\u003e\u003e\u003e accounts = []\n\u003e\u003e\u003e instruction = Instruction(program_id, arbitrary_instruction_data, accounts)\n\u003e\u003e\u003e payer = Keypair()\n\u003e\u003e\u003e message = Message([instruction], payer.pubkey())\n\u003e\u003e\u003e blockhash = Hash.default()  # replace with a real blockhash\n\u003e\u003e\u003e tx = Transaction([payer], message, blockhash)\n\n```\n\n## Development\n\n### Setup\n\n1. Install [poetry](https://python-poetry.org/)\n2. Install dev dependencies:\n\n```\npoetry install\n```\n\n3. Activate the poetry shell:\n\n```sh\npoetry shell\n```\n\n### Testing\n\n1. Run `maturin develop` to compile the Rust code.\n2. Run `make fmt`, `make lint`, and `make test`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinheavey%2Fsolders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinheavey%2Fsolders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinheavey%2Fsolders/lists"}