Helius SDK
An asynchronous Helius Rust SDK for building the future of Solana
Documentation
Contributions
Interested in contributing to the Helius Rust SDK? Read the following contributions guide before opening up a pull request!
Installation
To start using the Helius Rust SDK in your project, add it as a dependency via cargo. Open your project's Cargo.toml and add the following line under [dependencies]:
= "0.1.0"
Alternatively, use cargo add helius_sdk to add the dependency directly via the command line. This will automatically find the latest version compatible with your project and add it to your Cargo.toml.
Remember to run cargo update regularly to fetch the latest version of the SDK.
Usage
The SDK provides a Helius instance that can be configured with an API key and a given Solana cluster. Developers can generate a new API key on the Helius Developer Dashboard. This instance acts as the main entry point for interacting with the SDK by providing methods to access different Solana and RPC client functionalities. The following code is an example of how to use the SDK to fetch info on Mad Lad #8420:
use HeliusError;
use ;
use ;
async
The Helius client has an embedded Solana client that can be accessed via helius.connection().request_name() where request_name() is a given RPC method. A full list of all Solana RPC HTTP methods can be found here.
More examples of how to use the SDK can be found in the examples directory.
Error Handling
Common Error Codes
You may encounter several error codes when working with the Helius Rust SDK. Below is a table detailing some of the common error codes along with additional information to aid with troubleshooting:
| Error Code | Error Message | More Information |
|---|---|---|
| 401 | Unauthorized | This occurs when an invalid API key is provided or access is restricted |
| 429 | Too Many Requests | This indicates that the user has exceeded the request limit in a given timeframe or is out of credits |
| 5XX | Internal Server Error | This is a generic error message for server-side issues. Please contact Helius support for assistance |
If you encounter any of these errors:
- Refer to
errors.rsfor a list of all possible errors returned by theHeliusclient - Refer to the Helius documentation for further guidance
- Reach out to the Helius support team for more detailed assistance
Methods
Our SDK is designed to provide a seamless developer experience when building on Solana. We've separated the core functionality into various segments:
DAS API
get_asset- Gets an asset by its IDget_asset_batch- Gets multiple assets by their IDget_asset_proof- Gets a merkle proof for a compressed asset by its IDget_asset_proof_batch- Gets multiple asset proofs by their IDsget_assets_by_owner- Gets a list of assets owned by a given addressget_assets_by_authority- Gets a list of assets of a given authorityget_assets_by_creator- Gets a list of assets of a given creatorget_assets_by_group- Gets a list of assets by a group key and valuesearch_assets- Gets assets based on the custom search criteria passed inget_signatures_for_asset- Gets transaction signatures for a given assetget_token_accounts- Gets information about all token accounts for a specific mint or ownerget_nft_edition- Gets all the NFT editions associated with a specific master NFTget_rwa_asset- Gets a Real-World Asset (RWA) based on its mint address
Mint API
mint_compressed_nft- The easiest way to mint a compressed NFT (cNFT)
Enhanced Transactions API
parse_transactions- Parses transactions given an array of transaction IDsparsed_transaction_history- Retrieves a parsed transaction history for a specific address
Webhooks
create_webhook- Creates a webhook given account addressesedit_webhook- Edits a Helius webhook programmaticallyappend_addresses_to_webhook- Appends a set of addresses to a given webhookget_webhook_by_id- Gets a webhook config given a webhook IDget_all_webhooks- Retrieves all Helius webhooks programmaticallydelete_webhook- Deletes a given Helius webhook programmatically
Helper Methods
get_priority_fee_estimate- Gets an estimate of the priority fees required for a transaction to be processed more quicklydeserialize_str_to_number- Deserializes aStringto aNumberis_valid_solana_address- Returns whether a given string slice is a valid Solana addressmake_keypairs- Generates a specified number of keypairs