#helius #solana #api #api-key #async #status #selene

selene-helius-sdk

Rust implementation of the Helius API & RPC

15 releases

0.3.2 Apr 23, 2024
0.3.1 Apr 19, 2024
0.2.4 Mar 4, 2024
0.1.1 Feb 23, 2024

#171 in #api-key

MIT license

90KB
2.5K SLoC

selene-helius-sdk

Selene Helius SDK

Async library for helius API & RPC

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.

API reference documentation is available at docs.helius.dev.


Supported APIs

DAS API Status

Endpoint Status
getAsset
getAssetBatch
getAssetProof
getAssetProofBatch
getAssetsByOwner
getAssetsByAuthority
getAssetsByCreator
getAssetsByGroup
searchAssets
getSignaturesForAsset
getTokenAccounts
getPriorityFeeEstimate

Enriched Transactions

Endpoint Status
transactions
history

Webhooks API Status

Endpoint Status
create-webhook
get-all-webhooks
get-webhook
edit-webhook
delete-webhook
appendAddressesToWebhook

Mint API

Endpoint Status
mintCompressedNft
delegateCollectionAuthority
revokeCollectionAuthority()
getMintlist

Examples

See examples directory for various ways to use the library

  • Create a webhook
HELIUS_API_KEY=<mykey> cargo run --example get_assets

Development

To run tests you need to export or create a .env file with the HELIUS_API_KEY

HELIUS_API_KEY=mykey cargo test

Bot

There's an example telegram bot which can create webooks and send solana activity to your telegram channel


Credits

Inspired by sync library for helius, https://github.com/bgreni/helius-rust-sdk

Dependencies

~76MB
~1.5M SLoC