Documentation Index Fetch the complete documentation index at: https://helius-feat-signup-payment-link-docs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The Helius Rust SDK provides async Rust bindings for all Helius APIs, ideal for high-performance agent workloads.
Crate : helius (crates.io)
Version : 1.x (uses solana-client 3.0, solana-sdk 3.0)
Runtime : Async (tokio 1.x)
Rust : 1.85+ (edition 2021)
HTTP Client : reqwest
License : MIT
Installation
[ dependencies ]
helius = "1.0.0"
tokio = { version = "1" , features = [ "macros" , "rt-multi-thread" ] }
solana-sdk = "3.0.0"
The crate defaults to native-tls. For pure-Rust TLS (useful when OpenSSL is unavailable), use:
helius = { version = "1.0.0" , default-features = false , features = [ "rustls" ] }
Quick Start
use helius :: error :: Result ;
use helius :: types ::* ;
use helius :: Helius ;
#[tokio :: main]
async fn main () -> Result <()> {
let helius = Helius :: new ( "YOUR_API_KEY" , Cluster :: MainnetBeta ) ? ;
// Get all NFTs owned by a wallet
let assets = helius . rpc () . get_assets_by_owner ( GetAssetsByOwner {
owner_address : "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY" . to_string (),
page : 1 ,
limit : Some ( 50 ),
.. Default :: default ()
}) . await ? ;
// Get transaction history (with token account activity)
let txs = helius . rpc () . get_transactions_for_address (
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY" . to_string (),
GetTransactionsForAddressOptions {
limit : Some ( 100 ),
transaction_details : Some ( TransactionDetails :: Full ),
filters : Some ( GetTransactionsFilters {
token_accounts : Some ( TokenAccountsFilter :: BalanceChanged ),
.. Default :: default ()
}),
.. Default :: default ()
},
) . await ? ;
// Send a transaction via Helius Sender (ultra-low latency)
let sig = helius . send_smart_transaction_with_sender (
SmartTransactionConfig {
create_config : CreateSmartTransactionConfig {
instructions : vec! [ transfer_instruction ],
signers : vec! [ wallet_signer ],
.. Default :: default ()
},
.. Default :: default ()
},
SenderSendOptions {
region : "US_EAST" . to_string (),
.. Default :: default ()
},
) . await ? ;
Ok (())
}
Client Constructors
Helius::new — Basic sync client
let helius = Helius :: new ( "YOUR_API_KEY" , Cluster :: MainnetBeta ) ? ;
Simplest constructor. No .await needed. Provides RPC methods, webhooks, Enhanced Transactions, smart transactions, and Wallet API. No async Solana client or WebSocket support.
Helius::new_async — Full-featured async client
let helius = Helius :: new_async ( "YOUR_API_KEY" , Cluster :: MainnetBeta ) . await ? ;
Recommended for production. Includes async Solana RPC client and Enhanced WebSocket streaming. Requires .await because it establishes a WebSocket connection.
Helius::new_with_url — Custom RPC endpoint
let helius = Helius :: new_with_url ( "http://localhost:8899" ) ? ;
For dedicated RPC nodes, proxies, or local development. No API key required.
HeliusBuilder — Advanced configuration
use helius :: HeliusBuilder ;
let helius = HeliusBuilder :: new ()
. with_api_key ( "YOUR_API_KEY" ) ?
. with_cluster ( Cluster :: MainnetBeta )
. with_async_solana ()
. with_websocket ( None , None )
. with_commitment ( CommitmentConfig :: confirmed ())
. build ()
. await ? ;
HeliusFactory — Multi-cluster
let factory = HeliusFactory :: new ( "YOUR_API_KEY" );
let devnet_client = factory . create ( Cluster :: Devnet ) ? ;
let mainnet_client = factory . create ( Cluster :: MainnetBeta ) ? ;
Accessing embedded Solana clients
helius . connection () // Sync SolanaRpcClient (Arc)
helius . async_connection () ? // Async SolanaRpcClient (requires new_async or HeliusBuilder)
helius . ws () // Enhanced WebSocket (Option)
helius . rpc () // Helius RpcClient (Arc)
helius . config () // Config (Arc)
Deep Dives
Best Practices Recommended patterns, pagination, common mistakes, and error handling
API Reference Full method list for every category
Resources
GitHub Repository Source code, examples, and issue tracking
docs.rs Full API documentation on docs.rs
Code Examples Working examples for every feature organized by category
Migration Guide (0.x to 1.0) Upgrade from solana-sdk 1.x to 3.0