Rust algonaut
A Rust SDK for the Algorand blockchain. Pre-1.0 — the API is stabilising but still moves between minor versions.
Highlights
- Async clients for
algodv2,kmdv1, andindexerv2 - Transaction builders for payments, asset config / transfer / freeze / clawback, application calls, key registration, and state proofs
- ARC-4 ABI types, method invocation, and an
AtomicTransactionComposerwithsimulate+execute - TEAL compile / disassemble + V3 source-map decoder
- Cucumber acceptance suite that exercises the algorand-sdk-testing harness end-to-end
Quickstart
use Algod;
use MicroAlgos;
use ;
use Error;
async
Workspace layout
| Crate | Purpose |
|---|---|
algonaut |
Top-level convenience crate; re-exports the rest |
algonaut_algod |
Generated client for the algod v2 REST API |
algonaut_kmd |
Client for the key-management daemon |
algonaut_indexer |
Client for the indexer v2 REST API |
algonaut_core |
Core types: Address, MicroAlgos, Round, keys, multisig |
algonaut_crypto |
Ed25519 sign/verify (via ed25519-dalek) and BIP-39 mnemonics |
algonaut_transaction |
Transaction builders and the AtomicTransactionComposer |
algonaut_abi |
ARC-4 ABI types, method encoding, TEAL source-map decoder |
algonaut_encoding |
Shared serde visitors and base32/base64 helpers |
algonaut_model |
Hand-written response models shared between the clients |
Running the examples
/examples has a wide set of runnable programs.
If you see Error: NotPresent, your environment variables aren't set — cp examples.env .env and edit as needed.
Changelog
See CHANGELOG.md.
Contributing
Read the contribution guidelines before opening a PR. The pre-commit hook runs make ci; commit messages follow Conventional Commits.
Acknowledgements
This crate is based on the work of @mraof.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Asset attribution
Ferris Algonaut is licensed under a Creative Commons Attribution 4.0 International License.
Rust algonaut's logo is based on Font Awesome's icon and licensed under a Creative Commons Attribution 4.0 International License.