The near-api
is a simple Rust library that helps developers interact easily with the NEAR blockchain. The library was highly inspired by the API of the near-cli-rs
library. The library extensively utilizes builder patterns, this way we guide the users through the user flow, preventing most of the errors and focusing on each step.
Currently, the library provides:
- Account management
- Contract deployment and interaction
- NEAR, FT, NFT transfers
- Storage deposit management
- Stake management
- Ability to create custom transactions
- Several ways to sign transactions (secret key, seed phrase, file, ledger, secure keychain).
- Account key pool support to sign the transaction with different user keys to avoid nonce issues.
The minimum required version for full feature support is located in the rust-version field of the Cargo.toml
file. However, it can still be compiled and used without the keystore
feature on older versions of Rust.
ledger
: Enables integration with a Ledger hardware signer for secure key management.keystore
: Enables integration with a system keystore signer for managing keys securely on the local system.workspaces
: Provides integration withnear-workspaces
for testing purposes. This feature allows you to convertnear-workspaces
networks (such as sandbox, testnet, etc.) into a NetworkConfig and usenear-workspaces
Account
object as a signer for testing and development.
The library is in good condition, but lacks a few points to be even better:
- documentation
- good quality examples
- integration tests for all API calls
- CI
- anyhow -> thiserror
- ledger is blocking and it's not good in the async runtime
- secure keychain is not that straightforward to use
- storage deposit manager for FT calls
- basic logging with tracing for querying/signing/sending transactions
- self-sustainable. remove the
nearcore
as a dependency (#5)
The crate provides examples that contain detailed information on using the library.