Helius rpc
Use this skill when the user wants high-throughput Solana RPC access via Helius — standard RPC, DAS (Digital Asset Standard) NFT/token queries, transaction webhooks, enhanced transaction parsing, and priority fee estimation.From its SKILL.md
npx -y skills add locallaunchsc-cloud/solana-dev-skills --skill helius-rpcAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.4 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it
Helius RPC
Overview
Helius is the dominant production RPC provider on Solana. Beyond standard JSON-RPC (getBalance, sendTransaction, etc.), Helius layers on a set of APIs that the base Agave validator does not expose: the DAS API (one unified query surface for NFTs, compressed NFTs, and SPL tokens), enhanced transaction parsing (human-readable swap/transfer/mint events), real-time webhooks (push deliveries when watched accounts move), and getPriorityFeeEstimate (the de-facto way to size compute-unit-price on mainnet). If you are building anything beyond a toy, you will almost certainly call at least two of these.
When to use this skill
- The user mentions Helius, Helius RPC, DAS API, Helius webhooks, or
getPriorityFeeEstimate. - The user wants to fetch a wallet's NFTs / cNFTs / tokens in one call (use DAS, not
getTokenAccountsByOwner). - The user needs a push notification when a Solana account changes state.
- The user is sending mainnet transactions and asks about priority fees / CU price / landing rate.
- The user needs parsed/decoded transaction history (who swapped what, mint events, sales) rather than raw byte instructions.
Prerequisites
- Helius account + API key from https://dashboard.helius.dev (the free Developer tier is fine to start; the credit and RPS limits scale on Pro / Business plans).
- Node 20+ (the SDK targets modern Node and uses native
fetch). - One of:
npm install helius-sdk@^2.2.2— typed client, namespaces forwebhooks,enhanced,tx,ws, etc. Built on@solana/kit(the v1.x line used@solana/web3.js).- Or plain
fetchagainst the JSON-RPC endpoint — no dependencies, works in Cloudflare Workers / Deno / Bun without polyfills.
- For webhooks: a public HTTPS endpoint (Cloudflare Worker, Vercel function, ngrok tunnel for dev). Helius will not POST to
localhost.
Workflow
1. Get an API key
Sign in at https://dashboard.helius.dev, create a project, copy the API key. Mainnet and devnet share the same key — you switch by changing the endpoint hostname, not the key.
2. RPC endpoint URL format
Mainnet: https://mainnet.helius-rpc.com/?api-key=YOUR_KEY
Devnet: https://devnet.helius-rpc.com/?api-key=YOUR_KEY
# Dedicated staked-connection endpoint (Pro+) for higher landing rate on sendTransaction:
Staked: https://staked.helius-rpc.com/?api-key=YOUR_KEY
The endpoint accepts every standard Solana JSON-RPC method plus Helius extensions. Drop it into @solana/web3.js new Connection(url) or @solana/kit createSolanaRpc(url) unchanged.
3. DAS API — NFT / token queries
DAS unifies regular NFTs, compressed NFTs, and (with showFungible: true) SPL tokens behind one method family on the standard RPC endpoint. The most useful methods:
getAssetsByOwner— every asset a wallet owns, paginated.getAsset— one asset by mint or cNFT ID.getAssetsByGroup— every asset in a collection (groupKey: "collection").searchAssets— flexible filter (creator, royalty, jsonUri, etc.).
Pagination is 1-indexed page numbers, max limit: 1000. Loop until items.length < limit. See scripts/get-assets.ts.
4. Webhook setup
Create a webhook with the REST API or helius.webhooks.createWebhook(...). Key fields:
webhookURL— your HTTPS endpoint (must return 200 within 1s).webhookType—"enhanced"(Helius parses to a typed event) or"raw"(full Solana tx).enhancedDevnet/rawDevnetfor devnet. Enhanced webhooks drop failed transactions; raw webhooks include both.accountAddresses— up to 100,000 addresses to watch.transactionTypes— filter to specific parsed types (SWAP,NFT_SALE,TRANSFER, ..., orANY). Only meaningful forenhanced.authHeader— a secret string. Helius echoes this value back in theAuthorizationheader of every webhook POST. Your handler must compare it before processing.
5. Webhook handler
The handler must:
- Verify the
Authorizationheader equals theauthHeaderyou registered. - Return
200within 1 second (Helius timeout). Do heavy work async — push onto a queue, then respond. - Be idempotent — Helius retries up to 3 times with a 1s gap on 5xx / timeout / non-403 4xx. Deduplicate on
signature.
See scripts/webhook-handler.ts (Cloudflare Worker).
6. Enhanced transaction parser
For backfill / one-shot parsing (not push), POST signatures to:
POST https://api-mainnet.helius-rpc.com/v0/transactions
Body: { "transactions": ["sig1", "sig2", ...] } // up to 100 per call
Same shape as the enhanced-webhook payload — description, type, source, nativeTransfers, tokenTransfers, events, accountData, etc. Useful for catching up after webhook downtime.
7. Priority fee estimation
getPriorityFeeEstimate returns a recommended microLamports value for ComputeBudgetProgram.setComputeUnitPrice. Call it with either:
accountKeys: [pubkey, ...]— the writable accounts your tx touches, ortransaction: <base58-or-base64 serialized tx>— Helius will extract accounts itself.
Pass options.recommended: true for a single-number answer, or options.includeAllPriorityFeeLevels: true to get the full { min, low, medium, high, veryHigh, unsafeMax } histogram. See scripts/priority-fee.ts.
8. Free vs paid tiers — rate limits (as of 2026)
- Developer (free): ~10 RPS, 1M credits/mo, no dedicated nodes.
- Pro / Business / Professional: higher RPS, staked-connection endpoint, larger webhook quotas, dedicated nodes available.
Each webhook delivery costs 1 credit regardless of whether your endpoint succeeds. DAS calls cost more credits than vanilla RPC. Check the live pricing page before relying on these numbers.
Common pitfalls
- Mixing devnet and mainnet — same API key, different hostnames. Sending a mainnet transaction to
devnet.helius-rpc.comwill give you a confusing "blockhash not found" because the blockhash you fetched is from the other cluster. Always read your endpoint string back to yourself. - No backoff on 429 — the free tier rate-limits aggressively. Wrap every call in retry-with-exponential-backoff. The SDK does not do this for you.
- Webhook returns non-200 or takes >1s — Helius retries 3 times with a 1s gap, then drops the event forever. Acknowledge first (return 200), process after. In Cloudflare Workers, use
event.waitUntil()to defer work past the response. - Forgetting DAS pagination —
getAssetsByOwnercaps atlimit: 1000. A whale wallet with 10k NFTs returns only the first 1k unless you looppage: 1, 2, 3, .... Stop whenitems.length < limit. - Treating
priorityFeeEstimateas lamports — it is microLamports (1e-6 lamports). You pass it directly toComputeBudgetProgram.setComputeUnitPrice({ microLamports }). Multiplying by 1e6 is a common and very expensive mistake. - Webhooks won't replay missed events — there is no historical replay endpoint for past webhook deliveries. If your handler is down, those events are gone. On boot, backfill the gap with
getSignaturesForAddress+ the enhanced transactions parser API (step 6) over your watched accounts since the last processed slot. - Enhanced webhook drops failed tx — if you need to see reverted swaps or failed mints, use
webhookType: "raw"(or checktransactionErrorfield). authHeaderis plaintext, not HMAC — anyone who can read your dashboard or webhook record can replay requests. Treat it like a bearer token: long, random, rotated. For high-value flows, also gate by source IP at your edge / WAF.
References
- Helius docs hub: https://www.helius.dev/docs
- DAS API: https://www.helius.dev/docs/das-api
- Priority Fee API: https://www.helius.dev/docs/api-reference/priority-fee/getpriorityfeeestimate
- Webhooks: https://www.helius.dev/docs/api-reference/webhooks
- Enhanced Transactions: https://www.helius.dev/docs/api-reference/enhanced-transactions/gettransactions
- SDK GitHub: https://github.com/helius-labs/helius-sdk
- Dashboard: https://dashboard.helius.dev
- Discord (fastest support for quota / outage questions): https://discord.gg/helius
Example scripts
See scripts/get-assets.ts, scripts/webhook-handler.ts, scripts/priority-fee.ts.
What ships with it: 3 files
17.9 KB alongside SKILL.md, 3 of them executable
scripts/
- get-assets.tsruns5.5 KB
- priority-fee.tsruns6.4 KB
- webhook-handler.tsruns6.0 KB