Providers

Helius

Enhanced transactions and DAS token holdings on Solana. No balance endpoint, and it says so instead of faking one. Needs HELIUS_API_KEY.
IDhelius07 / 19HELIUS_API_KEY
Provider

Helius

  • solana
Chains
1
Auth
key
Operations
3 of 10
served 3 / 10

Operations

  • balancegetBalanceabsent
  • historygetTxHistoryserved
  • tx detailgetTxDetailserved
  • utxosgetUtxosabsent
  • pubkeygetPubkeyabsent
  • contractgetContractInfoabsent
  • tokensgetTokenBalancesserved
  • transfersgetTokenTransfersabsent
  • gasgetGasDataabsent
  • blockgetBlockInfoabsent

Access

Createcreate("helius")
Import@agntn/explorers/providers/helius
Hostmainnet.helius-rpc.com
Statusproviders on the docs worker

Address it

ts
const helius = await create("helius"); // HELIUS_API_KEY required
await helius.getTokenBalances("…", "solana", { nonZeroOnly: true });

What it reads

Enhanced Transactions v0 for history and one transaction, and DAS searchAssets over JSON-RPC on the RPC root for token holdings.

Gotchas

  • There's no REST balance endpoint, so getBalance throws UnsupportedOperationError and capabilities.balances is false. The registry knows, and a balance read on Solana never lands here.
  • The key travels as the api-key query parameter. sanitizeUrl redacts it from every error message and URL, and Helius is the reason that redaction exists.
  • DAS answers over JSON-RPC, so a failure arrives as error inside a 200 response and the provider reads it there. Pages hold a thousand assets and the walk stops after twenty pages.

Where it lives

src/providers/helius.ts.