solders
is a high-performance Python toolkit for Solana, written in Rust. It provides robust solutions to the following problems:
solders.bankrun
module is an alternative to solana-test-validator
that's much more convenient and much faster. It's based on solana-program-test if you know that is.solders
and solana-py
are good friends. solana-py
uses solders
under the hood extensively in its
core API and RPC API. The main differences are:
solders
doesn't have functions to actually interact with the RPC server (though solana-py
does use the RPC code from solders
).solders
doesn't provide SPL Token and SPL Memo clients.solana-py
may not have support for all the RPC requests and responses provided by solders
.solana-py
doesn't have anything like the bankrun
testing kit.Since solana-py
uses solders
under the hood and they don't duplicate each other's features, you should just use whichever library you need.
pip install solders
Note: Requires Python >= 3.7.
>>> from solders.message import Message
>>> from solders.keypair import Keypair
>>> from solders.instruction import Instruction
>>> from solders.hash import Hash
>>> from solders.transaction import Transaction
>>> from solders.pubkey import Pubkey
>>> program_id = Pubkey.default()
>>> arbitrary_instruction_data = bytes([1])
>>> accounts = []
>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
>>> payer = Keypair()
>>> message = Message([instruction], payer.pubkey())
>>> blockhash = Hash.default() # replace with a real blockhash
>>> tx = Transaction([payer], message, blockhash)
poetry install
poetry shell
maturin develop
to compile the Rust code.make fmt
, make lint
, and make test
.