Solana-native RPC plus enhanced APIs: Digital Asset Standard (DAS) for NFTs and tokens, Enhanced Transactions, webhooks, and priority-fee endpoints.
- 01Solana RPC
- 02NFT and compressed-NFT lookups (DAS)
- 03wallet asset listing (`getAssetsByOwner`)
- 04parsed transaction history
- 05real-time webhooks
- pnpm add helius-sdk
| Variable | Scope | Description |
|---|---|---|
| HELIUS_API_KEY | Server | Helius API key from the dashboard. Server-side only. |
Use `helius-sdk`. Initialize: `const helius = new Helius(process.env.HELIUS_API_KEY!)`. To list a wallet's NFTs and tokens use the DAS method `helius.rpc.getAssetsByOwner({ ownerAddress, page: 1, limit: 1000 })`. For parsed history use `helius.rpc.getParsedTransactionHistory({ address })`. The SDK is built on `@solana/kit` (not legacy `@solana/web3.js` v1) — adapt your transaction-building code accordingly. For real-time updates, register a webhook via `helius.createWebhook({...})` rather than polling.
- ⚑Helius is Solana-only — do not list it for EVM workloads.
- ⚑Helius SDK v2 swapped `@solana/web3.js` for `@solana/kit`; older code relying on `Connection`/`Transaction` from web3.js v1 will not interop without adapters.
- ⚑DAS methods cost 10 credits each; the free tier is capped at 2 req/s and 1M monthly credits, so a single `getAssetsByOwner` loop over a large wallet can drain the daily budget.
- ⚑Compressed NFT (cNFT) reads only work via DAS — standard `getAccountInfo` returns nothing useful for compressed assets.
- ⚑Webhooks deliver at-least-once and can fan out duplicates during Solana fork resolution; make handlers idempotent on `signature`.