# 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)