6 releases (breaking)

new 0.5.0 Mar 17, 2025
0.4.0 Dec 19, 2024
0.3.0 Nov 19, 2024
0.2.1 Oct 25, 2024
0.1.0 Oct 4, 2021

#527 in Magic Beans

Download history 7/week @ 2024-11-26 11/week @ 2024-12-03 32/week @ 2024-12-10 143/week @ 2024-12-17 49/week @ 2024-12-24 6/week @ 2025-01-07 1/week @ 2025-01-14 1/week @ 2025-01-21 20/week @ 2025-02-04 11/week @ 2025-02-11 11/week @ 2025-02-18 21/week @ 2025-02-25 34/week @ 2025-03-04 21/week @ 2025-03-11

90 downloads per month

MIT/Apache and maybe GPL-3.0-or-later

265KB
4K SLoC

near-api

Reference Documentation Crates.io version Download Join the community on Discord Join the community on Telegram

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.

Features

  • 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 with near-workspaces for testing purposes. This feature allows you to convert near-workspaces networks (such as sandbox, testnet, etc.) into a NetworkConfig and use near-workspaces Account object as a signer for testing and development.

Current issues

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)

Examples

The crate provides examples that contain detailed information on using the library.

Dependencies

~32–57MB
~897K SLoC