selene-helius-sdk

# Selene Helius SDK Async library for [helius](https://docs.helius.dev/) API & RPC ```rust use color_eyre::Result; use selene_helius_sdk::api::das::GetAssetsByOwnerParams; use selene_helius_sdk::HeliusBuilder; #[tokio::main] async fn main() -> Result<()> { let api_key = std::env::var("HELIUS_API_KEY").expect("env HELIUS_API_KEY is not defined!"); let helius = HeliusBuilder::new(&api_key).build()?; let result = helius .get_assets_by_owner(&GetAssetsByOwnerParams { owner_address: "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY".to_string(), ..Default::default() }) .await?; println!("total: {}", result.total); for asset in result.items { println!("{}", asset.id); } Ok(()) } ``` --- ## Usage The package needs to be configured with your account's API key, which is available in the [Helius Dashboard](https://dev.helius.xyz/dashboard/app). API reference documentation is available at [docs.helius.dev](https://docs.helius.dev). --- ## Supported APIs ### DAS API Status | Endpoint | Status | |----------------------------------------------------------------------------------------------------------------------------------|---------| | [getAsset](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-asset) | ✓ | | [getAssetBatch](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-asset) | ✓ | | [getAssetProof](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-asset-proof) | ✓ | | [getAssetProofBatch](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-asset-proof) | ✓ | | [getAssetsByOwner](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-assets-by-owner) | ✓ | | [getAssetsByAuthority](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-assets-by-authority) | ✓ | | [getAssetsByCreator](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-assets-by-creator) | ✓ | | [getAssetsByGroup](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-assets-by-group) | ✗ | | [searchAssets](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/search-assets) | ✓ | | [getSignaturesForAsset](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-signatures-for-asset) | ✗ | | [getTokenAccounts](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-token-accounts) | ✓ | | [getPriorityFeeEstimate](https://docs.helius.dev/solana-rpc-nodes/alpha-priority-fee-api#priority-fee-estimate) | ✓ | ### Enriched Transactions | Endpoint | Status | |-----------------------------------------------------------------------------------------------------|---------| | [transactions](https://docs.helius.dev/solana-apis/enhanced-transactions-api/parse-transaction-s) | ✓ | | [history](https://docs.helius.dev/solana-apis/enhanced-transactions-api/parsed-transaction-history) | ✗ | ### Webhooks API Status | Endpoint | Status | |----------------------------------------------------------------------------------------------------|---------| | [create-webhook](https://docs.helius.dev/webhooks-and-websockets/api-reference/create-webhook) | ✓ | | [get-all-webhooks](https://docs.helius.dev/webhooks-and-websockets/api-reference/get-all-webhooks) | ✓ | | [get-webhook](https://docs.helius.dev/webhooks-and-websockets/api-reference/get-webhook) | ✓ | | [edit-webhook](https://docs.helius.dev/webhooks-and-websockets/api-reference/edit-webhook) | ✓ | | [delete-webhook](https://docs.helius.dev/webhooks-and-websockets/api-reference/delete-webhook) | ✓ | | [appendAddressesToWebhook](https://docs.helius.dev/webhooks-and-websockets) | ✓ | ### Mint API | Endpoint | Status | |---------------------------------------------------------------------------------------------------|---------| | [mintCompressedNft](https://docs.helius.dev/webhooks-and-websockets/api-reference/create-webhook) | ✗ | | [delegateCollectionAuthority](https://docs.helius.dev/compression-and-das-api/mint-api) | ✗ | | [revokeCollectionAuthority()](https://docs.helius.dev/compression-and-das-api/mint-api) | ✗ | | [getMintlist](https://docs.helius.dev/compression-and-das-api/mint-api) | ✗ | ## Examples See [examples](./examples) directory for various ways to use the library * Create a webhook ```shell HELIUS_API_KEY= cargo run --example get_assets ``` ## Development To run tests you need to export or create a `.env` file with the HELIUS_API_KEY ```shell HELIUS_API_KEY=mykey cargo test ``` ## Bot There's an example telegram [bot](https://github.com/dougEfresh/selene-helius-bot) which can create [webooks](https://docs.helius.dev/webhooks-and-websockets/api-reference/create-webhook) and send solana activity to your telegram channel --- ## Credits Inspired by sync library for helius, [https://github.com/bgreni/helius-rust-sdk](https://github.com/bgreni/helius-rust-sdk)