From 776928c19928f865ab1c74c4754092e8e25a8746 Mon Sep 17 00:00:00 2001 From: kiryl Date: Wed, 6 May 2026 14:13:41 -0400 Subject: [PATCH] =?UTF-8?q?Docs=20redesign=20=E2=80=94=20week=204=20IA=20c?= =?UTF-8?q?utover?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restructures the EN "Documentation" anchor into the 8 top-level groups from PRD §WS-1, consolidates the streaming taxonomy (LaserStream merges Yellowstone gRPC; WebSockets merges Standard + Enhanced), and ships 21 redirects to keep inbound links alive. Top-level groups (was 11, now 8 + Resources) - Get Started — adds /quickstart back into nav (was orphan) - Read chain state — RPC, indexed reads, DAS, Enhanced Tx, Wallet API - Stream chain data — LaserStream, WebSockets, Webhooks - Send transactions — Sender, Bundles, sendTransaction, Priority Fee - Run dedicated infrastructure — Dedicated Nodes, Shred Delivery - Specialized — Compression, Staking, Orb - Billing — autoscaling, pay-with-crypto - Resources — glossary, sdks, changelog Streaming consolidation - New websockets/ namespace: overview merges enhanced-websockets.mdx + rpc/websocket.mdx into one product page with two tiers (Enhanced + Standard) on a unified endpoint. Sub-pages moved here via git mv. - LaserStream absorbs Yellowstone gRPC: 5 monitoring guides moved under laserstream/guides/. New laserstream/migration-from-yellowstone page documents the wire-compatible drop-in (one URL change). Files moved (git mv, history preserved): 10 - data-streaming/quickstart → streaming/quickstart - grpc/{account,transaction,slot-and-block,entry,stream-pump-amm-data} → laserstream/guides/* - enhanced-websockets/{account-subscribe,transaction-subscribe, stream-pump-amm-data,llms.txt} → websockets/* - rpc/websocket/quickstart → websockets/quickstart Files deleted: 11 - data-streaming.mdx, getting-data.mdx (rewritten in week 2) - enhanced-websockets.mdx, rpc/websocket.mdx (merged into websockets/overview.mdx) - grpc.mdx, grpc/quickstart.mdx (merged into laserstream/migration-from-yellowstone.mdx) - rpc/websocket/stream-pump-amm-data.mdx (canonical is the enhanced-websockets version) - event-listening.mdx, event-listening/quickstart.mdx (orphan, redundant with streaming/) - laserstream/websocket.mdx (orphan, content covered by websockets/overview.mdx) - rpc/http/get-accounts.mdx, rpc/http/get-transactions.mdx (orphan duplicates of rpc/guides/*) Redirects added: 19 new entries on top of the 2 pre-existing, 21 total. - /grpc and /grpc/quickstart land on /laserstream/grpc (the gRPC product page) rather than the migration guide; the migration guide is a sibling page reachable from there. - All sub-paths (/grpc/account-monitoring, /enhanced-websockets/*, /rpc/websocket/*) redirect to their direct equivalents. - errors.404.redirect stays false so unmatched paths still 404 visibly. Internal-link rewrites: 70 occurrences across 33 files updated from old → new paths. Bulk-rewrite bug + fix: the rewriter's regex used a lookahead but no lookbehind, so /grpc matched as a substring of /laserstream/grpc and produced doubled paths like /laserstream/laserstream/migration-from- yellowstone. Caught by pre-commit review. 9 occurrences across 8 files re-pointed to /laserstream/grpc. Lessons captured in SPIKE-NOTES.md for future bulk rewrites. Audit: 361 EN pages (was 368). 333 in nav, 28 orphans (was 34). audit.csv prefilled for the 12 new/moved pages with their Diátaxis type and Keep action. Validation - docs.json is valid JSON. - mint validate parses all new files cleanly. The 2 pre-existing parse errors (api-reference/das/searchassets, api-reference/enhanced- transactions/gettransactions) are unrelated to this PR — they were also failing on main before this branch. - mint broken-links found no new broken links. Out of scope (deferred) - ZH side of docs.json nav — auto-regenerated by the i18n CI workflow on merge to main via npm run i18n:nav-apply. - Persona quickstarts (PRD §WS-4, week 3 in the plan). - API Reference anchor restructure — kept current shape per PRD. - Diátaxis page badges (PRD §WS-5, week 5). scripts/_ia-cutover.js stays in tree as a record of how the nav restructure happened. Not registered in package.json. Plan: ~/.claude/plans/users-kiryl-downloads-prd-plan-to-imple-cozy-badger.md Co-Authored-By: Claude Opus 4.7 (1M context) --- SPIKE-NOTES.md | 12 + agents/overview.mdx | 4 +- api-reference/rpc/websocket-methods.mdx | 2 +- audit.csv | 314 ++++---- billing/credits.mdx | 2 +- billing/plans.mdx | 4 +- chain-state/overview.mdx | 3 +- data-streaming.mdx | 179 ----- dedicated-nodes.mdx | 2 +- dedicated-nodes/getting-started.mdx | 2 +- dedicated-nodes/llms.txt | 10 +- docs.json | 281 ++++--- enhanced-websockets.mdx | 57 -- event-listening.mdx | 63 -- event-listening/quickstart.mdx | 90 --- faqs.mdx | 2 +- faqs/websockets.mdx | 4 +- getting-data.mdx | 59 -- glossary.mdx | 4 +- grpc.mdx | 278 ------- grpc/quickstart.mdx | 595 -------------- index.mdx | 4 +- .../guides}/account-monitoring.mdx | 6 +- .../guides}/entry-monitoring.mdx | 6 +- .../guides}/slot-and-block-monitoring.mdx | 6 +- .../guides}/stream-pump-amm-data.mdx | 4 +- .../guides}/transaction-monitoring.mdx | 6 +- laserstream/migration-from-yellowstone.mdx | 200 +++++ laserstream/websocket.mdx | 489 ------------ llms.txt | 6 +- nfts/cnft-event-listening.mdx | 6 +- quickstart.mdx | 2 +- rpc/guides/overview.mdx | 2 +- rpc/how-to-index-solana-data.mdx | 4 +- rpc/http/get-accounts.mdx | 70 -- rpc/http/get-transactions.mdx | 86 --- rpc/overview.mdx | 2 +- rpc/websocket.mdx | 727 ------------------ rpc/websocket/stream-pump-amm-data.mdx | 248 ------ scripts/_ia-cutover.js | 317 ++++++++ sending-transactions/chooser.mdx | 6 +- streaming/overview.mdx | 15 +- {data-streaming => streaming}/quickstart.mdx | 6 +- .../account-subscribe.mdx | 2 +- {enhanced-websockets => websockets}/llms.txt | 17 +- websockets/overview.mdx | 158 ++++ {rpc/websocket => websockets}/quickstart.mdx | 2 +- .../stream-pump-amm-data.mdx | 0 .../transaction-subscribe.mdx | 0 49 files changed, 1079 insertions(+), 3285 deletions(-) delete mode 100644 data-streaming.mdx delete mode 100644 enhanced-websockets.mdx delete mode 100644 event-listening.mdx delete mode 100644 event-listening/quickstart.mdx delete mode 100644 getting-data.mdx delete mode 100644 grpc.mdx delete mode 100644 grpc/quickstart.mdx rename {grpc => laserstream/guides}/account-monitoring.mdx (97%) rename {grpc => laserstream/guides}/entry-monitoring.mdx (98%) rename {grpc => laserstream/guides}/slot-and-block-monitoring.mdx (97%) rename {grpc => laserstream/guides}/stream-pump-amm-data.mdx (98%) rename {grpc => laserstream/guides}/transaction-monitoring.mdx (97%) create mode 100644 laserstream/migration-from-yellowstone.mdx delete mode 100644 laserstream/websocket.mdx delete mode 100644 rpc/http/get-accounts.mdx delete mode 100644 rpc/http/get-transactions.mdx delete mode 100644 rpc/websocket.mdx delete mode 100644 rpc/websocket/stream-pump-amm-data.mdx create mode 100644 scripts/_ia-cutover.js rename {data-streaming => streaming}/quickstart.mdx (98%) rename {enhanced-websockets => websockets}/account-subscribe.mdx (98%) rename {enhanced-websockets => websockets}/llms.txt (92%) create mode 100644 websockets/overview.mdx rename {rpc/websocket => websockets}/quickstart.mdx (99%) rename {enhanced-websockets => websockets}/stream-pump-amm-data.mdx (100%) rename {enhanced-websockets => websockets}/transaction-subscribe.mdx (100%) diff --git a/SPIKE-NOTES.md b/SPIKE-NOTES.md index f4915f68..582ab02d 100644 --- a/SPIKE-NOTES.md +++ b/SPIKE-NOTES.md @@ -63,6 +63,18 @@ Not yet verified against the actual Mintlify dashboard for this account. Plan as | `quickstart` | **Rewrite → quickstart/nft** | Already addressed; week-4 IA handles the move. | | `snippets/quickstart` | n/a | Already excluded from audit (snippet, not a page). | +## Lessons learned — bulk URL rewrite (week 4) + +The internal-link rewriter for the IA cutover used `(?=[)\"' \\s>#?,.!]|$)` lookahead but no lookbehind. Result: `/grpc` matched as a substring of `/laserstream/grpc`, producing doubled paths like `/laserstream/laserstream/migration-from-yellowstone`. Caught by pre-commit review. + +For future bulk rewrites: anchor BOTH sides. Pattern shape: + +```js +new RegExp("(?<=[(\"' \\[>=]|^)" + escFrom + "(?=[)\"' \\s>#?,.!]|$)", "g") +``` + +Also: `/grpc` → `/laserstream/grpc` (the product page) is the right redirect target, not `/laserstream/migration-from-yellowstone`. The migration guide is a sibling page reachable from there. Updated [docs.json](docs.json) and [scripts/_ia-cutover.js](scripts/_ia-cutover.js) accordingly. + ## Audit prefill coverage (week 2) After mechanical prefill + orphan annotation: diff --git a/agents/overview.mdx b/agents/overview.mdx index a4c910e0..e7497924 100644 --- a/agents/overview.mdx +++ b/agents/overview.mdx @@ -80,7 +80,7 @@ Use these Helius-optimized APIs instead of chaining standard Solana RPC methods: | `getRecentPrioritizationFees` | [`getPriorityFeeEstimate`](/api-reference/priority-fee/getpriorityfeeestimate) | Pre-calculated optimal fees, no manual computation | | `getSignaturesForAddress` (for cNFTs) | [`getSignaturesForAsset`](/api-reference/das/getsignaturesforasset) (DAS API) | Standard RPC doesn't work for compressed NFTs | | `getProgramAccounts` (for NFT search) | [`searchAssets`](/api-reference/das/searchassets) or [`getAssetsByGroup`](/api-reference/das/getassetsbygroup) | Faster, cheaper, indexed data | -| Polling for real-time data | [Enhanced WebSockets](/enhanced-websockets) or [LaserStream gRPC](/laserstream) | Lower latency, more efficient | +| Polling for real-time data | [Enhanced WebSockets](/websockets/overview) or [LaserStream gRPC](/laserstream) | Lower latency, more efficient | | Standard `sendTransaction` | [Helius Sender](/sending-transactions/sender) | Dual routing (validators + Jito), higher landing rates | ## Recommended Workflows @@ -92,7 +92,7 @@ Use these Helius-optimized APIs instead of chaining standard Solana RPC methods: | NFT marketplace | [DAS API](/das-api) (`searchAssets`, `getAssetsByGroup`) + [Webhooks](/webhooks) (track sales/listings) | | Token sniper | [Gatekeeper](/gatekeeper/overview) (edge-routed RPC) + [LaserStream gRPC](/laserstream) (lowest latency) + [Sender](/sending-transactions/sender) (staked connections) | | Portfolio tracker | [DAS API](/das-api) (`getAssetsByOwner` with `showFungible`) + [Enhanced Transactions](/enhanced-transactions/overview) | -| Wallet monitor | [Enhanced WebSockets](/enhanced-websockets) or [Webhooks](/webhooks) for real-time notifications | +| Wallet monitor | [Enhanced WebSockets](/websockets/overview) or [Webhooks](/webhooks) for real-time notifications | | Analytics dashboard | [Enhanced Transactions API](/enhanced-transactions/overview) + [`getTransactionsForAddress`](/rpc/gettransactionsforaddress) | | Airdrop tool | [AirShip](/airship/getting-started) (95% cheaper with ZK compression) | diff --git a/api-reference/rpc/websocket-methods.mdx b/api-reference/rpc/websocket-methods.mdx index 8e1c76b2..6aed1812 100644 --- a/api-reference/rpc/websocket-methods.mdx +++ b/api-reference/rpc/websocket-methods.mdx @@ -88,7 +88,7 @@ To get started: 1. [Sign up](https://dashboard.helius.dev/signup) for a Helius account (Agents: use the [Helius CLI](https://www.helius.dev/docs/api-reference/helius-cli) to programmatically create accounts) 2. Get your [WSS endpoints](https://www.helius.dev/docs/api-reference/endpoints#solana-websocket-endpoints) -3. Follow the [WebSockets QuickStart guide](https://www.helius.dev/docs/rpc/websocket/quickstart). +3. Follow the [WebSockets QuickStart guide](https://www.helius.dev/docs/websockets/quickstart). ## Support diff --git a/audit.csv b/audit.csv index 9319c539..90a18704 100644 --- a/audit.csv +++ b/audit.csv @@ -1,6 +1,6 @@ url,title,description,pageType,persona_frontmatter,has_openapi,nav_anchor,nav_group,word_count,last_modified,outgoing_internal_links,incoming_internal_links,in_nav,file_path,diataxis_type,jtbd,persona_override,action,new_url,pageviews_30d,helpful_yes_no_30d,notes,owner,status agents/claude-code-plugin,Claude Code Plugin,"One install gives you live blockchain tools and expert Solana coding patterns inside Claude Code. Bundles the Helius MCP server, DFlow MCP server, and expert skills.",,,no,Agents,For Agents,682,2026-04-29,6,8,yes,agents/claude-code-plugin.mdx,,,,,,,,,, -agents/overview,Helius for Agents,"Everything AI agents need to build on Solana with Helius: programmatic signup, API access, SDKs, MCP integration, and recommended workflows.",,,no,Agents,For Agents,1036,2026-05-04,29,2,yes,agents/overview.mdx,,,,,,,,,, +agents/overview,Helius for Agents,"Everything AI agents need to build on Solana with Helius: programmatic signup, API access, SDKs, MCP integration, and recommended workflows.",,,no,Agents,For Agents,1038,2026-05-04,29,2,yes,agents/overview.mdx,,,,,,,,,, agents/guides/personalized-swap-ui,Personalized Swap UI,Use the Helius AI toolkit to build a personalized swap interface Solana.,,,no,Agents,For Agents > Guides,843,2026-03-31,7,0,yes,agents/guides/personalized-swap-ui.mdx,,,,,,,,,, agents/cli,Helius CLI,"Full-featured command-line interface for Helius. 95+ commands for account management, blockchain queries, transaction sending, webhooks, streaming, staking, and more. Designed for agents and automation.",,,no,Agents,For Agents > Helius CLI,592,2026-04-29,4,9,yes,agents/cli.mdx,,,,,,,,,, agents/cli/commands,CLI Command Reference,"Full reference for all 95+ Helius CLI commands — account management, blockchain queries, transactions, DAS API, wallet, webhooks, streaming, staking, ZK compression, and more.",,,no,Agents,For Agents > Helius CLI,1003,2026-04-16,0,1,yes,agents/cli/commands.mdx,,,,,,,,,, @@ -19,7 +19,7 @@ agents/typescript-sdk/api-reference,TypeScript SDK API Reference,"Full list of a agents/typescript-sdk/best-practices,TypeScript SDK Best Practices,"Recommended patterns for AI agents using the Helius TypeScript SDK. Covers transaction history, sending transactions, batching, real-time data, pagination, incremental fetching, common mistakes, and error handling.",,,no,Agents,For Agents > TypeScript SDK,472,2026-03-02,1,1,yes,agents/typescript-sdk/best-practices.mdx,Reference,,,Keep,,,,,, api-reference/admin,Admin API,Programmatic access to project usage and billing data via API key authentication.,,,no,API Reference,Account Management APIs > Admin,143,2026-04-22,1,0,yes,api-reference/admin.mdx,Reference,,,Keep,,,,,, api-reference/admin/get-project-usage,Get Project Usage,"Retrieve credit usage, subscription details, and per-service request counts for a project within the current billing cycle.",,,yes,API Reference,Account Management APIs > Admin,228,2026-04-24,0,1,yes,api-reference/admin/get-project-usage.mdx,Reference,,,Keep,,,,,, -api-reference,Solana API Reference: Complete List,"Comprehensive Solana blockchain APIs including RPC, DAS, webhooks, and data streaming. Complete reference for developers building on Solana with Helius.",,,no,API Reference,API Reference,164,2026-02-24,9,7,yes,api-reference.mdx,,,,,,,,,, +api-reference,Solana API Reference: Complete List,"Comprehensive Solana blockchain APIs including RPC, DAS, webhooks, and data streaming. Complete reference for developers building on Solana with Helius.",,,no,API Reference,API Reference,164,2026-02-24,9,6,yes,api-reference.mdx,,,,,,,,,, api-reference/authentication,Authentication,Learn how to authenticate your Helius API requests securely and efficiently,,,no,API Reference,API Reference,504,2026-02-23,4,1,yes,api-reference/authentication.mdx,Reference,,,Keep,,,,,, api-reference/endpoints,Solana RPC URLs and Endpoints,Helius provides multiple endpoint types to suit different application needs. This guide outlines all available connection options for interacting with the Helius API.,,,no,API Reference,API Reference,555,2026-04-08,2,0,yes,api-reference/endpoints.mdx,Reference,,,Keep,,,,,, api-reference/enhanced-websockets/transactionsubscribe,transactionSubscribe,"Subscribe to real-time transaction events with custom filters. Monitor specific accounts, exclude vote transactions, and receive instant notifications with configurable detail levels.",,,no,API Reference,Data Streaming APIs > Enhanced WebSockets,320,2026-04-16,0,1,yes,api-reference/enhanced-websockets/transactionsubscribe.mdx,Reference,,,Keep,,,,,, @@ -30,7 +30,7 @@ api-reference/laserstream/grpc/getslot,GetSlot,Get the current slot number from api-reference/laserstream/grpc/getversion,GetVersion,Get the version information of the LaserStream gRPC API and the Solana node it's connected to.,,,no,API Reference,Data Streaming APIs > LaserStream gRPC,118,2026-02-24,0,1,yes,api-reference/laserstream/grpc/getversion.mdx,Reference,,,Keep,,,,,, api-reference/laserstream/grpc/isblockhashvalid,IsBlockhashValid,Check if a blockhash is still valid on the Solana blockchain using the LaserStream gRPC API.,,,no,API Reference,Data Streaming APIs > LaserStream gRPC,65,2026-02-24,0,1,yes,api-reference/laserstream/grpc/isblockhashvalid.mdx,Reference,,,Keep,,,,,, api-reference/laserstream/grpc/ping,Ping,Check connectivity to the LaserStream gRPC API with a simple ping-pong mechanism.,,,no,API Reference,Data Streaming APIs > LaserStream gRPC,69,2026-02-24,0,1,yes,api-reference/laserstream/grpc/ping.mdx,Reference,,,Keep,,,,,, -api-reference/laserstream/grpc/subscribe,Subscribe,"Subscribe to accounts, transactions, blocks, and slot updates to receive real-time notifications using the high-performance gRPC API.",,,no,API Reference,Data Streaming APIs > LaserStream gRPC,524,2026-04-24,0,2,yes,api-reference/laserstream/grpc/subscribe.mdx,Reference,,,Keep,,,,,, +api-reference/laserstream/grpc/subscribe,Subscribe,"Subscribe to accounts, transactions, blocks, and slot updates to receive real-time notifications using the high-performance gRPC API.",,,no,API Reference,Data Streaming APIs > LaserStream gRPC,524,2026-04-24,0,3,yes,api-reference/laserstream/grpc/subscribe.mdx,Reference,,,Keep,,,,,, api-reference/mint/mintcompressednft,mintCompressedNft (deprecated),Deprecated endpoint for minting compressed NFTs on Solana. Use the ZK Compression instead for new implementations.,,,yes,API Reference,Deprecated APIs > Mint,200,2026-02-24,1,0,yes,api-reference/mint/mintcompressednft.mdx,Reference,,,Keep,,,,,, api-reference/token-metadata/querymetadatav1,queryMetadataV1 (deprecated),Deprecated endpoint for querying token and NFT metadata on Solana. Use the DAS API instead for comprehensive asset data.,,,yes,API Reference,Deprecated APIs > Token Metadata,48,2026-03-05,1,0,yes,api-reference/token-metadata/querymetadatav1.mdx,Reference,,,Keep,,,,,, api-reference/webhooks,Webhooks API,"Complete API reference for Helius webhook endpoints. Create, update, delete, and manage webhooks for real-time Solana transaction and account notifications.",,,no,API Reference,Event Listening APIs > Webhooks,67,2026-03-11,7,2,yes,api-reference/webhooks.mdx,Reference,,,Keep,,,,,, @@ -54,7 +54,7 @@ api-reference/das/getsignaturesforasset,getSignaturesForAsset,"Retrieve all hist api-reference/das/gettokenaccounts,getTokenAccounts,"Retrieve all SPL token accounts owned by a wallet address including token balances, mint addresses, and account metadata with pagination",,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),48,2026-03-05,0,2,yes,api-reference/das/gettokenaccounts.mdx,Reference,,,Keep,,,,,, api-reference/das/searchassets,searchAssets,"Search and filter Solana NFTs, compressed NFTs, and tokens using flexible criteria including ownership, creators, collections, and custom attributes",,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),337,2026-03-05,0,6,yes,api-reference/das/searchassets.mdx,Reference,,,Keep,,,,,, api-reference/enhanced-transactions/gettransactions,Get Enhanced Transactions,"Parse one or more Solana transaction signatures into human-readable format including NFT sales, token swaps, transfers, and DeFi operations ",,,yes,API Reference,Solana APIs > Enhanced Transactions,32,2026-03-05,0,5,yes,api-reference/enhanced-transactions/gettransactions.mdx,Reference,,,Keep,,,,,, -api-reference/enhanced-transactions/gettransactionsbyaddress,Get Enhanced Transactions By Address,"Retrieve complete parsed transaction history for a Solana address with human-readable data, transaction type filtering, and pagination support ",,,yes,API Reference,Solana APIs > Enhanced Transactions,881,2026-02-24,0,5,yes,api-reference/enhanced-transactions/gettransactionsbyaddress.mdx,Reference,,,Keep,,,,,, +api-reference/enhanced-transactions/gettransactionsbyaddress,Get Enhanced Transactions By Address,"Retrieve complete parsed transaction history for a Solana address with human-readable data, transaction type filtering, and pagination support ",,,yes,API Reference,Solana APIs > Enhanced Transactions,881,2026-02-24,0,4,yes,api-reference/enhanced-transactions/gettransactionsbyaddress.mdx,Reference,,,Keep,,,,,, api-reference/enhanced-transactions/overview,Enhanced Transactions API,"Complete API reference for Helius Enhanced Transactions endpoints. Parse transactions into human-readable formats including NFT sales, swaps, and transfers.",,,no,API Reference,Solana APIs > Enhanced Transactions,18,2026-02-24,2,0,yes,api-reference/enhanced-transactions/overview.mdx,Reference,,,Keep,,,,,, api-reference/sender/getbundlestatuses,getBundleStatuses,"Check the status of submitted Jito bundles. Returns confirmation status, slot, and transaction signatures.",,,no,API Reference,Solana APIs > Helius Sender,96,2026-04-09,2,1,yes,api-reference/sender/getbundlestatuses.mdx,Reference,,,Keep,,,,,, api-reference/sender/ping,ping,Send a ping request to Sender to maintain a warm connection,,,yes,API Reference,Solana APIs > Helius Sender,0,2026-02-24,0,0,yes,api-reference/sender/ping.mdx,Reference,,,Keep,,,,,, @@ -94,7 +94,7 @@ api-reference/zk-compression/getmultiplenewaddressProofsv2,getMultipleNewAddress api-reference/zk-compression/gettransactionwithcompressioninfo,getTransactionWithCompressionInfo,Returns the transaction data for the transaction with the given signature along with parsed compression info.,,,yes,API Reference,Solana APIs > ZK Compression,6,2026-02-24,0,1,yes,api-reference/zk-compression/gettransactionwithcompressioninfo.mdx,Reference,,,Keep,,,,,, api-reference/zk-compression/getvalidityproof,getValidityProof,Returns a single ZK Proof used by the compression program to verify that the given accounts are valid and that the new addresses can be created.,,,yes,API Reference,Solana APIs > ZK Compression,24,2026-02-24,0,1,yes,api-reference/zk-compression/getvalidityproof.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http-methods,Solana RPC Methods and API Reference,"Complete reference for all Solana JSON-RPC HTTP methods available through Helius. Account data, blocks, transactions, tokens, epochs, and system information.",,,no,API Reference,Solana RPC APIs > HTTP Methods,450,2026-04-27,54,3,yes,api-reference/rpc/http-methods.mdx,Reference,,,Keep,,,,,, -api-reference/rpc/http/getaccountinfo,getAccountInfo,Returns all information associated with the account of provided Pubkey.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,138,2026-02-26,0,5,yes,api-reference/rpc/http/getaccountinfo.mdx,Reference,,,Keep,,,,,, +api-reference/rpc/http/getaccountinfo,getAccountInfo,Returns all information associated with the account of provided Pubkey.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,138,2026-02-26,0,4,yes,api-reference/rpc/http/getaccountinfo.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getbalance,getBalance,Returns the lamport balance of the account of provided Pubkey.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,31,2026-02-26,0,3,yes,api-reference/rpc/http/getbalance.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getblock,getBlock,Returns identity and transaction information about a confirmed block in the ledger.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,102,2026-02-26,0,3,yes,api-reference/rpc/http/getblock.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getblockcommitment,getBlockCommitment,Returns commitment for particular block.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,0,2026-02-26,0,1,yes,api-reference/rpc/http/getblockcommitment.mdx,Reference,,,Keep,,,,,, @@ -121,13 +121,13 @@ api-reference/rpc/http/getleaderschedule,getLeaderSchedule,Returns the leader sc api-reference/rpc/http/getmaxretransmitslot,getMaxRetransmitSlot,Get the max slot seen from retransmit stage where a validator is currently retransmitting data shreds to help repair other nodes,,,yes,API Reference,Solana RPC APIs > HTTP Methods,0,2026-02-26,0,2,yes,api-reference/rpc/http/getmaxretransmitslot.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getmaxshredinsertslot,getMaxShredInsertSlot,Get the highest slot seen from after shred insert on a given validator,,,yes,API Reference,Solana RPC APIs > HTTP Methods,0,2026-02-26,0,1,yes,api-reference/rpc/http/getmaxshredinsertslot.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getminimumbalanceforrentexemption,getMinimumBalanceForRentExemption,Returns minimum balance required to make account rent exempt.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,26,2026-02-26,0,1,yes,api-reference/rpc/http/getminimumbalanceforrentexemption.mdx,Reference,,,Keep,,,,,, -api-reference/rpc/http/getmultipleaccounts,getMultipleAccounts,Returns the account information for a list of Pubkeys.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,145,2026-02-26,0,5,yes,api-reference/rpc/http/getmultipleaccounts.mdx,Reference,,,Keep,,,,,, +api-reference/rpc/http/getmultipleaccounts,getMultipleAccounts,Returns the account information for a list of Pubkeys.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,145,2026-02-26,0,4,yes,api-reference/rpc/http/getmultipleaccounts.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getprogramaccounts,getProgramAccounts,Returns all accounts owned by the provided program Pubkey.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,141,2026-02-26,0,9,yes,api-reference/rpc/http/getprogramaccounts.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getprogramaccountsv2,getProgramAccountsV2,Enhanced version of getProgramAccounts with cursor-based pagination and changedSinceSlot support for efficiently querying large sets of accounts owned by specific Solana programs with incremental updates.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,461,2026-04-24,2,2,yes,api-reference/rpc/http/getprogramaccountsv2.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getrecentperformancesamples,getRecentPerformanceSamples,"Returns a list of recent performance samples, in reverse slot order. Performance samples are taken every 60 seconds and include the number of transactions and slots that occur in a given time window..",,,yes,API Reference,Solana RPC APIs > HTTP Methods,0,2026-02-26,0,1,yes,api-reference/rpc/http/getrecentperformancesamples.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getrecentprioritizationfees,getRecentPrioritizationFees,Returns a list of prioritization fees from recent blocks.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,0,2026-02-26,0,2,yes,api-reference/rpc/http/getrecentprioritizationfees.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getsignaturesforaddress,getSignaturesForAddress,Returns signatures for confirmed transactions that include the given address in their `accountKeys` list. Returns signatures backwards in time from the provided signature or most recent confirmed block,,,yes,API Reference,Solana RPC APIs > HTTP Methods,99,2026-02-26,1,2,yes,api-reference/rpc/http/getsignaturesforaddress.mdx,Reference,,,Keep,,,,,, -api-reference/rpc/http/getsignaturestatuses,getSignatureStatuses,"Returns the statuses of a list of signatures. Each signature must be a txid, the first signature of a transaction.",,,yes,API Reference,Solana RPC APIs > HTTP Methods,24,2026-02-26,0,5,yes,api-reference/rpc/http/getsignaturestatuses.mdx,Reference,,,Keep,,,,,, +api-reference/rpc/http/getsignaturestatuses,getSignatureStatuses,"Returns the statuses of a list of signatures. Each signature must be a txid, the first signature of a transaction.",,,yes,API Reference,Solana RPC APIs > HTTP Methods,24,2026-02-26,0,4,yes,api-reference/rpc/http/getsignaturestatuses.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getslot,getSlot,Returns the slot that has reached the given or default commitment level.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,30,2026-02-26,0,4,yes,api-reference/rpc/http/getslot.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getslotleader,getSlotLeader,Returns the current slot leader.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,21,2026-02-26,0,2,yes,api-reference/rpc/http/getslotleader.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/getslotleaders,getSlotLeaders,Returns the slot leaders for a given slot range.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,26,2026-02-26,0,3,yes,api-reference/rpc/http/getslotleaders.mdx,Reference,,,Keep,,,,,, @@ -139,7 +139,7 @@ api-reference/rpc/http/gettokenaccountsbyowner,getTokenAccountsByOwner,Returns a api-reference/rpc/http/gettokenaccountsbyownerv2,getTokenAccountsByOwnerV2,Enhanced version of getTokenAccountsByOwner with additional features including cursor-based pagination and changedSinceSlot support for efficiently retrieving SPL token accounts owned by a specific wallet address.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,482,2026-04-24,2,2,yes,api-reference/rpc/http/gettokenaccountsbyownerv2.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/gettokenlargestaccounts,getTokenLargestAccounts,Returns the 20 largest accounts of a particular SPL Token type.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,24,2026-02-26,0,4,yes,api-reference/rpc/http/gettokenlargestaccounts.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/gettokensupply,getTokenSupply,Returns the total supply of an SPL Token type.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,24,2026-02-26,0,4,yes,api-reference/rpc/http/gettokensupply.mdx,Reference,,,Keep,,,,,, -api-reference/rpc/http/gettransaction,getTransaction,Returns transaction details for a confirmed transaction.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,45,2026-02-26,0,9,yes,api-reference/rpc/http/gettransaction.mdx,Reference,,,Keep,,,,,, +api-reference/rpc/http/gettransaction,getTransaction,Returns transaction details for a confirmed transaction.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,45,2026-02-26,0,7,yes,api-reference/rpc/http/gettransaction.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/gettransactioncount,getTransactionCount,Returns the current Transaction count from the ledger.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,29,2026-02-26,0,1,yes,api-reference/rpc/http/gettransactioncount.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/gettransactionsforaddress,getTransactionsForAddress,"Enhanced transaction history API with powerful filtering, sorting, and pagination capabilities for retrieving comprehensive transaction data for any address. Supports bidirectional sorting, time/slot/status filtering, and efficient keyset pagination.",,,yes,API Reference,Solana RPC APIs > HTTP Methods,232,2026-02-26,0,3,yes,api-reference/rpc/http/gettransactionsforaddress.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/gettransfersbyaddress,getTransfersByAddress,"Query parsed, human-readable token and native SOL transfer objects by address with filters by mint, time, amount, counterparty, and pagination.",,,yes,API Reference,Solana RPC APIs > HTTP Methods,612,2026-05-04,0,2,yes,api-reference/rpc/http/gettransfersbyaddress.mdx,Reference,,,Keep,,,,,, @@ -151,7 +151,7 @@ api-reference/rpc/http/requestairdrop,requestAirdrop,Requests an airdrop of lamp api-reference/rpc/http/sendtransaction,sendTransaction,Submits a signed transaction to the cluster for processing.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,245,2026-02-26,1,6,yes,api-reference/rpc/http/sendtransaction.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/simulatebundle,simulateBundle,Simulate a JITO bundle without executing it on the blockchain.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,233,2026-02-26,0,1,yes,api-reference/rpc/http/simulatebundle.mdx,Reference,,,Keep,,,,,, api-reference/rpc/http/simulatetransaction,simulateTransaction,Simulate sending a transaction.,,,yes,API Reference,Solana RPC APIs > HTTP Methods,89,2026-03-05,0,4,yes,api-reference/rpc/http/simulatetransaction.mdx,Reference,,,Keep,,,,,, -api-reference/rpc/websocket-methods,Solana WebSocket Methods,"Complete reference for Solana WebSocket subscription methods available through Helius. Real-time account, program, signature, slot, and log subscriptions.",,,no,API Reference,Solana RPC APIs > WebSocket Methods,334,2026-02-26,18,3,yes,api-reference/rpc/websocket-methods.mdx,Reference,,,Keep,,,,,, +api-reference/rpc/websocket-methods,Solana WebSocket Methods,"Complete reference for Solana WebSocket subscription methods available through Helius. Real-time account, program, signature, slot, and log subscriptions.",,,no,API Reference,Solana RPC APIs > WebSocket Methods,333,2026-02-26,18,3,yes,api-reference/rpc/websocket-methods.mdx,Reference,,,Keep,,,,,, api-reference/rpc/websocket/accountsubscribe,accountSubscribe,Subscribe to an account to receive notifications when the lamports or data for a given account public key changes.,,,no,API Reference,Solana RPC APIs > WebSocket Methods,149,2026-02-26,0,2,yes,api-reference/rpc/websocket/accountsubscribe.mdx,Reference,,,Keep,,,,,, api-reference/rpc/websocket/accountunsubscribe,accountUnsubscribe,Unsubscribe from account change notifications.,,,no,API Reference,Solana RPC APIs > WebSocket Methods,75,2026-02-26,0,1,yes,api-reference/rpc/websocket/accountunsubscribe.mdx,Reference,,,Keep,,,,,, api-reference/rpc/websocket/blocksubscribe,blockSubscribe,Subscribe to receive notification anytime a new block is `confirmed` or `finalized`.,,,no,API Reference,Solana RPC APIs > WebSocket Methods,256,2026-02-26,0,1,yes,api-reference/rpc/websocket/blocksubscribe.mdx,Reference,,,Keep,,,,,, @@ -172,165 +172,164 @@ api-reference/rpc/websocket/votesubscribe,voteSubscribe,Subscribe to receive not api-reference/rpc/websocket/voteunsubscribe,voteUnsubscribe,Unsubscribe from vote notifications.,,,no,API Reference,Solana RPC APIs > WebSocket Methods,75,2026-02-26,0,1,yes,api-reference/rpc/websocket/voteunsubscribe.mdx,Reference,,,Keep,,,,,, billing/autoscaling,Helius Autoscaling & Prepaid Credits: Uninterrupted Service,"Set up Helius autoscaling and prepaid credits to ensure uninterrupted Solana API service. Automatic credit purchases, cost management, and seamless scaling.",,,no,Documentation,Billing,484,2026-04-06,3,5,yes,billing/autoscaling.mdx,,,,,,,,,, billing/pay-with-crypto,Pay for Helius Solana Plans with Crypto,"Purchase Helius Solana API plans with cryptocurrency. USDC payments, automatic renewals, and easy setup guide for crypto subscription billing.",,,no,Documentation,Billing,296,2026-01-30,0,0,yes,billing/pay-with-crypto.mdx,,,,,,,,,, -nfts/cnft-event-listening,Solana Compressed NFT Event Listening,"Learn how to listen for and retrieve Solana compressed NFT events using Helius APIs. WebSockets, webhooks, gRPC streaming, and real-time cNFT monitoring.",,,no,Documentation,Compression,1115,2026-02-13,10,0,yes,nfts/cnft-event-listening.mdx,,,,,,,,,, -nfts/nft-compression,Solana NFT Compression: Cost-Efficient Mass NFT Minting,"The most cost-efficient way to mint large numbers of NFTs on Solana. Learn Merkle trees, compressed NFTs, and massive cost savings for digital collections.",,,no,Documentation,Compression,551,2026-02-26,1,1,yes,nfts/nft-compression.mdx,,,,,,,,,, -zk-compression/introduction,What is ZK Compression on Solana?,"ZK Compression dramatically reduces Solana data storage costs by 95%+. Store compressed accounts, NFTs, and arbitrary data at a fraction of the cost.",,,no,Documentation,Compression,177,2025-10-06,0,5,yes,zk-compression/introduction.mdx,,,,,,,,,, -airship/getting-started,Helius AirShip Guide: Get Started with ZK Compressed Airdrops,"Complete guide to using Helius AirShip for Solana token airdrops. Learn ZK compression, cost savings, and distribution to NFT holders and token holders.",,,no,Documentation,Compression > Helius AirShip,667,2025-07-08,2,2,yes,airship/getting-started.mdx,,,,,,,,,, -airship/overview,Helius AirShip: Solana Token Airdrop Tool with ZK Compression,Cost-effective Solana token airdrops using ZK compression. Reduce airdrop costs by 95% with Helius AirShip's open-source distribution tool.,,,no,Documentation,Compression > Helius AirShip,178,2025-07-07,2,0,yes,airship/overview.mdx,,,,,,,,,, -data-streaming,Solana Data Streaming,"Stream real-time Solana blocks, account updates, transaction data, and blockchain events. LaserStream gRPC, Enhanced WebSockets, and Webhooks solutions.",,,no,Documentation,Data Streaming & Event Listening,800,2026-04-21,8,2,yes,data-streaming.mdx,Explanation,,,Rewrite,streaming/overview,,,,, -data-streaming/quickstart,Solana Data Streaming Quickstart,"Get your first real-time Solana data stream running in under 5 minutes. LaserStream, Enhanced WebSockets, and Webhooks setup guide.",,,no,Documentation,Data Streaming & Event Listening,226,2026-04-08,8,3,yes,data-streaming/quickstart.mdx,Tutorial,,,Move,streaming/quickstart,,,,, -enhanced-websockets,Solana Enhanced WebSockets,Stream real-time Solana transaction and account updates. Get faster response times and advanced filtering capabilities.,,,no,Documentation,Data Streaming & Event Listening > Enhanced Websockets,282,2026-04-08,4,12,yes,enhanced-websockets.mdx,Explanation,,,Merge,websockets/overview,,,,, -enhanced-websockets/account-subscribe,How to Use accountSubscribe,"Stream real-time Solana account updates with `accountSubscribe`. Monitor balance changes, data modifications, and lamport updates via WebSocket.",,,no,Documentation,Data Streaming & Event Listening > Enhanced Websockets,194,2026-04-08,0,1,yes,enhanced-websockets/account-subscribe.mdx,How-to,,,Move,websockets/account-subscribe,,,,, -enhanced-websockets/stream-pump-amm-data,How to Stream Pump AMM Data,"Learn how to stream live Solana Pump AMM data using Enhanced WebSockets. Real-time token data, price feeds, and trading activity monitoring.",,,no,Documentation,Data Streaming & Event Listening > Enhanced Websockets,340,2026-03-11,0,0,yes,enhanced-websockets/stream-pump-amm-data.mdx,How-to,,,Merge,websockets/stream-pump-amm-data,,,,, -enhanced-websockets/transaction-subscribe,How to Use transactionSubscribe,"Stream real-time Solana transaction updates with `transactionSubscribe`. Monitor blockchain activity, filter by accounts, and receive instant notifications.",,,no,Documentation,Data Streaming & Event Listening > Enhanced Websockets,485,2026-04-16,1,3,yes,enhanced-websockets/transaction-subscribe.mdx,How-to,,,Move,websockets/transaction-subscribe,,,,, -laserstream,LaserStream,"Next-generation Solana data streaming with ultra-low latency, historical replay, and multi-node reliability. Purpose-built for high-performance applications.",,,no,Documentation,Data Streaming & Event Listening > LaserStream,1032,2026-04-21,5,15,yes,laserstream.mdx,,,,,,,,,, -laserstream/clients,LaserStream Clients,High-performance SDKs for gRPC streaming with automatic replay and zero data loss,,,no,Documentation,Data Streaming & Event Listening > LaserStream,381,2026-04-03,0,3,yes,laserstream/clients.mdx,,,,,,,,,, -laserstream/delivery-guarantees,Delivery Guarantees,"Understand LaserStream's delivery guarantees, including exactly-once delivery, message ordering, slot notification behavior, and fork handling.",,,no,Documentation,Data Streaming & Event Listening > LaserStream,690,2026-04-09,3,0,yes,laserstream/delivery-guarantees.mdx,,,,,,,,,, -laserstream/grpc,LaserStream gRPC: High-Performance Data Streaming,Stream real-time Solana blockchain data. Highly configurable low-latency streams with 24-hour historical replay and multi-region support.,,,no,Documentation,Data Streaming & Event Listening > LaserStream,1566,2026-04-03,2,6,yes,laserstream/grpc.mdx,,,,,,,,,, -laserstream/historical-replay,LaserStream Historical Replay: Backfill Missing Data,Recover from disconnections and backfill missing Solana blockchain data with LaserStream's historical replay feature. Never miss a transaction again.,,,no,Documentation,Data Streaming & Event Listening > LaserStream,327,2026-04-03,2,4,yes,laserstream/historical-replay.mdx,,,,,,,,,, -laserstream/laserstream-vs-dedicated-nodes,LaserStream vs Dedicated Nodes: Choosing the Right gRPC Solution,Compare LaserStream and Dedicated Nodes to choose the best gRPC streaming solution for your needs,,,no,Documentation,Data Streaming & Event Listening > LaserStream,497,2026-04-06,2,4,yes,laserstream/laserstream-vs-dedicated-nodes.mdx,,,,,,,,,, -laserstream/preprocessed-transactions,Preprocessed Transactions (Public Beta),The fastest way to stream Solana transactions. ~8ms faster than processed on average.,,,no,Documentation,Data Streaming & Event Listening > LaserStream,625,2026-04-21,2,5,yes,laserstream/preprocessed-transactions.mdx,,,,,,,,,, -laserstream/guides/account-subscription,Account Subscription and Updates,Learn how to subscribe to account updates and efficiently track on-chain state changes using Laserstream.,,,no,Documentation,Data Streaming & Event Listening > LaserStream > LaserStream Guides,1497,2026-02-24,0,1,yes,laserstream/guides/account-subscription.mdx,,,,,,,,,, -laserstream/guides/decoding-transaction-data,Decoding and Parsing Transaction Data,Learn how to decode and parse transaction data from Laserstream for better understanding of Solana transactions.,,,no,Documentation,Data Streaming & Event Listening > LaserStream > LaserStream Guides,1001,2026-02-24,0,1,yes,laserstream/guides/decoding-transaction-data.mdx,,,,,,,,,, -laserstream/guides/measuring-latency,Measuring Latency,Learn how to properly measure and analyze latency for gRPC streams using various testing methods.,,,no,Documentation,Data Streaming & Event Listening > LaserStream > LaserStream Guides,895,2026-03-11,1,0,yes,laserstream/guides/measuring-latency.mdx,,,,,,,,,, -shred-delivery/index,Shred Delivery,Specialized feed of raw Solana shreds delivered via UDP — the earliest possible on-chain signal optimized for traders and low-latency use cases.,,,no,Documentation,Data Streaming & Event Listening > Shred Delivery,745,2026-04-21,1,0,yes,shred-delivery/index.mdx,,,,,,,,,, -rpc/websocket,Solana WebSocket: Real-Time Blockchain Data Streaming,"Stream real-time Solana blockchain data with WebSockets, now powered by LaserStream for up to 200 ms faster responses vs. standard Agave RPC-based WebSockets.",,,no,Documentation,Data Streaming & Event Listening > Standard Websockets,713,2026-02-17,3,10,yes,rpc/websocket.mdx,Explanation,,,Merge,websockets/overview,,,,, -rpc/websocket/quickstart,Solana WebSocket Quickstart Guide,"Start using Solana WebSockets in minutes with this step-by-step guide covering account monitoring, transaction tracking, and building real-time apps.",,,no,Documentation,Data Streaming & Event Listening > Standard Websockets,273,2026-02-17,4,1,yes,rpc/websocket/quickstart.mdx,Tutorial,,,Move,websockets/quickstart,,,,, -rpc/websocket/stream-pump-amm-data,How to Stream Solana Pump AMM Data,Learn how to stream live Solana Pump AMM data using Standard WebSocket. Log-based monitoring available on all plans with automatic reconnection.,,,no,Documentation,Data Streaming & Event Listening > Standard Websockets,349,2026-02-16,1,0,yes,rpc/websocket/stream-pump-amm-data.mdx,How-to,,,Merge,websockets/stream-pump-amm-data,,,,, -webhooks,Solana Webhooks: Real-Time Blockchain Event Notifications,"Monitor Solana blockchain events with real-time webhooks. Get instant notifications for NFT sales, token transfers, and transactions sent to your endpoints.",,,no,Documentation,Data Streaming & Event Listening > Webhooks,781,2026-03-19,3,12,yes,webhooks.mdx,,,,,,,,,, -webhooks/transaction-types,Solana Webhook Transaction Types,"Complete reference guide to Solana webhook transaction types. Learn about NFT sales, DeFi swaps, staking, and 100+ supported blockchain transaction types.",,,no,Documentation,Data Streaming & Event Listening > Webhooks,200,2025-07-07,0,0,yes,webhooks/transaction-types.mdx,,,,,,,,,, -grpc,Solana Yellowstone gRPC: Real-Time Data Streaming,"High-performance, real-time Solana blockchain data streaming using gRPC protocol with advanced filtering and ultra-low latency delivery for developers.",,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,615,2026-04-03,9,3,yes,grpc.mdx,Explanation,,,Merge,laserstream/migration-from-yellowstone,,,,, -grpc/account-monitoring,Account Monitoring with Yellowstone gRPC,"Monitor Solana account changes in real-time with advanced filtering options, data slicing, and practical implementation patterns.",,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,397,2026-01-29,3,3,yes,grpc/account-monitoring.mdx,How-to,,,Move,laserstream/guides/account-monitoring,,,,, -grpc/entry-monitoring,Entry Monitoring with Yellowstone gRPC,"Monitor low-level Solana blockchain entries, transaction batches, and execution units for deep network analysis.",,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,589,2026-01-29,3,2,yes,grpc/entry-monitoring.mdx,How-to,,,Move,laserstream/guides/entry-monitoring,,,,, -grpc/quickstart,Solana Yellowstone gRPC Quickstart: Real-Time Data Streaming,Complete setup guide for streaming real-time Solana data with Yellowstone gRPC. From installation to your first working stream with auto-reconnection.,,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,496,2026-03-11,6,6,yes,grpc/quickstart.mdx,Tutorial,,,Merge,laserstream/migration-from-yellowstone,,,,, -grpc/slot-and-block-monitoring,Slot & Block Monitoring with Yellowstone gRPC,"Monitor Solana network consensus, block production, and network state changes with real-time slot and block streaming.",,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,509,2026-01-29,3,3,yes,grpc/slot-and-block-monitoring.mdx,How-to,,,Move,laserstream/guides/slot-and-block-monitoring,,,,, -grpc/stream-pump-amm-data,Solana Pump AMM Data Streaming: gRPC Guide,"Complete real-world example of monitoring Solana Pump.fun AMM data using Yellowstone gRPC. Track token launches, prices, and trading activity in real-time.",,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,525,2026-01-29,4,6,yes,grpc/stream-pump-amm-data.mdx,How-to,,,Move,laserstream/guides/stream-pump-amm-data,,,,, -grpc/transaction-monitoring,Transaction Monitoring with Yellowstone gRPC,"Stream Solana transactions in real-time with program filtering, execution details, and token balance change tracking.",,,no,Documentation,Data Streaming & Event Listening > Yellowstone gRPC,398,2026-01-29,3,5,yes,grpc/transaction-monitoring.mdx,How-to,,,Move,laserstream/guides/transaction-monitoring,,,,, -dedicated-nodes,Solana Dedicated Nodes: High-Performance gRPC Streaming,"Dedicated Solana nodes optimized for gRPC streaming applications. Ultra-low latency blockchain data for trading, analytics, and real-time monitoring.",,,no,Documentation,Dedicated Nodes,307,2026-04-03,6,5,yes,dedicated-nodes.mdx,,,,,,,,,, -dedicated-nodes/best-practices,Solana Dedicated Nodes Best Practices: Optimize Performance,"Optimize your Solana dedicated node performance with best practices for gRPC streaming, load management, and node health monitoring.",,,no,Documentation,Dedicated Nodes,381,2026-02-26,4,0,yes,dedicated-nodes/best-practices.mdx,Reference,,,Keep,,,,,, -dedicated-nodes/getting-started,Solana Dedicated Nodes Setup: Complete Getting Started Guide,"Complete guide to setting up your Solana dedicated node with gRPC streaming, Yellowstone plugin, and optimal configuration for blockchain data.",,,no,Documentation,Dedicated Nodes,657,2026-04-03,5,1,yes,dedicated-nodes/getting-started.mdx,,,,,,,,,, -billing/credits,Helius Credits,"Complete guide to Helius credits including credit costs, how credits work, and credits for data streaming solutions.",,,no,Documentation,Get Started,1004,2026-04-29,13,8,yes,billing/credits.mdx,,,,,,,,,, -billing/plans,Helius Plans and Pricing,"Complete guide to Helius plans and pricing. Determine which plan is right for you, or contact sales to discuss enterprise contracts.",,,no,Documentation,Get Started,813,2026-04-08,7,16,yes,billing/plans.mdx,,,,,,,,,, +billing/credits,Helius Credits,"Complete guide to Helius credits including credit costs, how credits work, and credits for data streaming solutions.",,,no,Documentation,Get Started,1005,2026-04-29,13,8,yes,billing/credits.mdx,,,,,,,,,, +billing/plans,Helius Plans and Pricing,"Complete guide to Helius plans and pricing. Determine which plan is right for you, or contact sales to discuss enterprise contracts.",,,no,Documentation,Get Started,815,2026-04-08,7,17,yes,billing/plans.mdx,,,,,,,,,, billing/rate-limits,Helius Rate Limits,Complete guide to Helius rate limits across all plans and products.,,,no,Documentation,Get Started,740,2026-04-27,3,6,yes,billing/rate-limits.mdx,,,,,,,,,, -index,Welcome to Helius,"The high-performance Solana development platform made for builders who demand excellence. Fast, reliable infrastructure that scales with your ambitions.",,,no,Documentation,Get Started,541,2026-04-16,17,0,yes,index.mdx,,,,,,,,,, -getting-data,Solana Data APIs: Query Blockchain Data with Helius Tools,"Comprehensive Solana blockchain data APIs and tools for querying, indexing, and retrieving on-chain information. DAS API, Enhanced Transactions, and more.",,,no,Documentation,Getting Data,74,2026-04-27,7,0,yes,getting-data.mdx,Explanation,,,Delete,chain-state/overview,,,,, -rpc/gettransactionsforaddress,getTransactionsForAddress Overview and Tutorial,"Learn how to query Solana transaction history with advanced filtering, bidirectional sorting, and efficient pagination using this Helius-exclusive RPC method.",,,no,Documentation,Getting Data,1876,2026-04-08,3,14,yes,rpc/gettransactionsforaddress.mdx,,,,,,,,,, -rpc/gettransfersbyaddress,getTransfersByAddress Overview and Tutorial,"Query parsed, human-readable token and native SOL transfer objects for a Solana address with filters by mint, time, amount, and counterparty.",,,no,Documentation,Getting Data,1483,2026-05-04,4,4,yes,rpc/gettransfersbyaddress.mdx,,,,,,,,,, -das-api,Solana DAS API: Unified NFT and Token Data Access,"The most comprehensive Solana API for NFTs, compressed NFTs, and tokens. Unified interface for all digital assets with high performance and complete metadata.",,,no,Documentation,Getting Data > Digital Asset Standard (DAS),597,2026-01-28,14,7,yes,das-api.mdx,,,,,,,,,, -das/fungible-token-extension,Solana Fungible Token API: Complete Token Data Access,"The most versatile API for working with all Solana tokens. SPL tokens, Token22 extensions, price data, and comprehensive token information access.",,,no,Documentation,Getting Data > Digital Asset Standard (DAS),321,2025-07-07,3,0,yes,das/fungible-token-extension.mdx,,,,,,,,,, -das/get-nfts,"How to Get Solana Assets: NFTs, Tokens & Price Data","Learn how to retrieve and query Solana NFTs, SPL tokens, and price data using Helius DAS APIs. Complete guide with code examples and best practices.",,,no,Documentation,Getting Data > Digital Asset Standard (DAS),405,2026-01-08,13,3,yes,das/get-nfts.mdx,,,,,,,,,, -das/get-tokens,How to Get Solana SPL Tokens: Complete API Guide,"Learn how to retrieve and query Solana SPL token data using Helius APIs. Token balances, accounts, supply information, and holder data with code examples.",,,no,Documentation,Getting Data > Digital Asset Standard (DAS),94,2025-07-07,5,1,yes,das/get-tokens.mdx,,,,,,,,,, -das/pagination,Solana DAS API Pagination: Efficient Large Dataset Querying,"Explore efficient pagination mechanisms for Solana DAS API. Page-based, cursor-based, and keyset pagination for large datasets with performance optimization.",,,no,Documentation,Getting Data > Digital Asset Standard (DAS),506,2025-07-07,0,1,yes,das/pagination.mdx,,,,,,,,,, -das/search,"Solana Asset Search: Find NFTs, Tokens & Compressed Assets","Master the searchAssets endpoint to discover NFTs, compressed assets, and fungible tokens on Solana. Advanced filtering, pagination, and efficient asset discovery.",,,no,Documentation,Getting Data > Digital Asset Standard (DAS),247,2025-07-07,2,1,yes,das/search.mdx,,,,,,,,,, -enhanced-transactions/overview,Enhanced Transactions Overview,"Transform complex Solana blockchain transactions into human-readable data with Helius Enhanced Transactions API. Parse transaction details, fetch history, and understand on-chain activity without manual decoding.",,,no,Documentation,Getting Data > Enhanced Transactions API,335,2026-04-22,6,3,yes,enhanced-transactions/overview.mdx,,,,,,,,,, -enhanced-transactions/parse-transactions,Parse Transactions,Parse transactions into human-readable data.,,,no,Documentation,Getting Data > Enhanced Transactions API,180,2026-04-22,4,1,yes,enhanced-transactions/parse-transactions.mdx,,,,,,,,,, -enhanced-transactions/transaction-history,Transaction History,Human-readable transaction history for any Solana address.,,,no,Documentation,Getting Data > Enhanced Transactions API,949,2026-04-22,3,1,yes,enhanced-transactions/transaction-history.mdx,,,,,,,,,, -rpc/historical-data,Solana Historical Data Overview & Tutorials,"Learn how historical data works on Solana, explore common use cases, and get tutorials for common archival RPC methods like getBlock and getSignatureForAddress.",,,no,Documentation,Getting Data > Indexing & Historical Data,630,2026-04-29,10,5,yes,rpc/historical-data.mdx,,,,,,,,,, -rpc/how-to-index-solana-data,How to Index Solana Data,"Learn how to build, backfill, and keep Solana indexes up to date.",,,no,Documentation,Getting Data > Indexing & Historical Data,2492,2026-02-12,19,0,yes,rpc/how-to-index-solana-data.mdx,,,,,,,,,, -wallet-api/balances,How to Get Wallet Balances,"Retrieve all token and NFT balances for any Solana wallet with USD values, logos, and metadata. Sorted by value for easy portfolio tracking.",,,no,Documentation,Getting Data > Wallet API (Beta),655,2026-03-03,2,1,yes,wallet-api/balances.mdx,,,,,,,,,, -wallet-api/funded-by,How to See Who Funded a Solana Wallet,"Discover the original funding source of any Solana wallet by tracing its first incoming SOL transfer. Identify exchange funding, attribution, and wallet relationships.",,,no,Documentation,Getting Data > Wallet API (Beta),756,2026-02-10,2,1,yes,wallet-api/funded-by.mdx,,,,,,,,,, -wallet-api/history,How to Fetch Solana Wallet Transaction History,"Get complete transaction history for any Solana wallet with balance changes for each transaction. Perfect for portfolio trackers, accounting tools, and analytics platforms.",,,no,Documentation,Getting Data > Wallet API (Beta),666,2026-03-03,2,1,yes,wallet-api/history.mdx,,,,,,,,,, -wallet-api/identity,How to Look Up a Solana Wallet Identity,Identify known Solana wallets by address or SNS/ANS domain. Look up single entries or batch process up to 100 addresses and domains at once.,,,no,Documentation,Getting Data > Wallet API (Beta),1286,2026-04-17,2,1,yes,wallet-api/identity.mdx,,,,,,,,,, -wallet-api/overview,Wallet API Overview (Beta),"Query Solana wallet data with the Wallet API. Get balances, transaction history, transfers, identity information, and funding sources in a single request.",,,no,Documentation,Getting Data > Wallet API (Beta),697,2026-04-16,12,5,yes,wallet-api/overview.mdx,,,,,,,,,, -wallet-api/transfers,How to Get All Solana Wallet Transfers,"Track all incoming and outgoing token transfers for any Solana wallet. See sender/recipient information, amounts, and timestamps for complete transfer history.",,,no,Documentation,Getting Data > Wallet API (Beta),547,2026-03-03,2,1,yes,wallet-api/transfers.mdx,,,,,,,,,, -sending-transactions/backrun-rebates,Earn SOL Rebates from Your Transactions,Earn automatic SOL rebates via post-trade backruns with no additional risk of toxic MEV.,,,no,Documentation,How to Send Transactions,663,2026-02-20,0,2,yes,sending-transactions/backrun-rebates.mdx,,,,,,,,,, -sending-transactions/optimizing-transactions,Solana Transaction Optimization Guide,"Optimize Solana transactions to minimize confirmation latency and maximize delivery rates. Learn about priority fees, compute units, and best practices.",,,no,Documentation,How to Send Transactions,1514,2026-04-03,10,6,yes,sending-transactions/optimizing-transactions.mdx,,,,,,,,,, -sending-transactions/overview,Solana Transaction Sending,"Learn how to reliably send and confirm Solana transactions using Helius infrastructure. Staked connections, priority fees, and enterprise-grade reliability.",,,no,Documentation,How to Send Transactions,307,2026-03-20,5,2,yes,sending-transactions/overview.mdx,,,,,,,,,, -sending-transactions/send-bundle,Jito Bundles via Helius,"Send [Jito](https://docs.jito.wtf/lowlatencytxnsend) bundles through your Helius RPC endpoint. Atomic, all-or-nothing execution of up to 5 transactions.",,,no,Documentation,How to Send Transactions,421,2026-04-21,0,3,yes,sending-transactions/send-bundle.mdx,,,,,,,,,, -sending-transactions/send-manually,How to Send Solana Transactions,"Step-by-step guide for building robust, production-grade Solana transaction sending workflows. Learn compute optimization, priority fees, and confirmation strategies.",,,no,Documentation,How to Send Transactions,545,2026-02-03,7,3,yes,sending-transactions/send-manually.mdx,,,,,,,,,, -sending-transactions/jupiter-swap-api-via-sender,How to Use Jupiter Swap API and Helius Sender for Trading,"Learn how to land trades with Jupiter's Swap API and Helius Sender, an ultra-low latency Solana transaction sending service.",,,no,Documentation,How to Send Transactions > Helius Sender (For Traders),306,2026-02-12,0,0,yes,sending-transactions/jupiter-swap-api-via-sender.mdx,,,,,,,,,, -sending-transactions/sender,Helius Sender: Ultra-Low Latency Solana Transaction Submission,"Ultra-low latency Solana transaction submission with dual routing to validators and Jito infrastructure. No credits consumed, global endpoints, optimized for high-frequency trading.",,,no,Documentation,How to Send Transactions > Helius Sender (For Traders),1174,2026-04-16,2,12,yes,sending-transactions/sender.mdx,,,,,,,,,, -priority-fee-api,Solana Priority Fee API: Smart Transaction Fee Estimation,Estimate optimal priority fees for Solana transactions. Real-time fee analysis with six priority levels to ensure fast confirmation and cost efficiency.,,,no,Documentation,How to Send Transactions > Priority Fee API,473,2025-08-08,4,10,yes,priority-fee-api.mdx,,,,,,,,,, -priority-fee/estimating-fees-using-account-keys,Solana Priority Fee Estimation: Account Keys Method,Estimate Solana priority fees using account keys with the Helius Priority Fee API. Quick fee estimates for pre-transaction analysis and batch operations.,,,no,Documentation,How to Send Transactions > Priority Fee API,469,2025-07-07,2,2,yes,priority-fee/estimating-fees-using-account-keys.mdx,,,,,,,,,, -priority-fee/estimating-fees-using-serialized-transaction,Solana Priority Fee Estimation: Serialized Transaction Method,Get the most accurate Solana priority fee estimates using serialized transactions with the Helius Priority Fee API. Perfect for production applications.,,,no,Documentation,How to Send Transactions > Priority Fee API,388,2026-01-28,2,2,yes,priority-fee/estimating-fees-using-serialized-transaction.mdx,,,,,,,,,, +index,Welcome to Helius,"The high-performance Solana development platform made for builders who demand excellence. Fast, reliable infrastructure that scales with your ambitions.",,,no,Documentation,Get Started,541,2026-04-16,16,0,yes,index.mdx,,,,,,,,,, +quickstart,Build Your First Solana App with Helius,Learn the fundamentals of building on Solana by creating your first application using Helius APIs. From setup to deployment in minutes.,,,no,Documentation,Get Started,528,2026-03-20,6,3,yes,quickstart.mdx,Tutorial,,,Rewrite,quickstart/nft,,,,, +chain-state/overview,Read chain state,"Pick a data API: RPC, DAS, Enhanced Transactions, Wallet API, or indexed reads. Comparison matrix and decision tree below.",,,no,Documentation,Read chain state,489,2026-05-06,12,0,yes,chain-state/overview.mdx,Explanation,,,Keep,,,,,, +rpc/devnet-sol,How to Get Devnet SOL,Sign in to your Helius account and visit our Solana Devnet faucet to get free Devnet SOL for testing your Solana programs.,,,no,Documentation,Read chain state,451,2026-02-12,5,3,yes,rpc/devnet-sol.mdx,,,,,,,,,, +rpc/optimization-techniques,Solana RPC Optimization: Performance & Cost Best Practices,"Optimize Solana RPC performance, reduce costs, and improve reliability. Transaction optimization, data retrieval patterns, and best practices guide.",,,no,Documentation,Read chain state,458,2026-02-03,10,3,yes,rpc/optimization-techniques.mdx,,,,,,,,,, +rpc/overview,Solana RPC Overview: High-Performance Blockchain Infrastructure,"High-performance Solana RPC infrastructure with 95% faster response times. Complete guide to RPC methods, optimization, and best practices.",,,no,Documentation,Read chain state,559,2026-04-16,6,3,yes,rpc/overview.mdx,,Keep,,,,,,,, +rpc/protect-your-keys,Protect Your Solana API Keys: Security Best Practices,"Secure your Helius Solana API keys from malicious actors. Access control rules, RPC proxy, and security best practices to prevent unauthorized usage and charges.",,,no,Documentation,Read chain state,680,2026-05-06,1,0,yes,rpc/protect-your-keys.mdx,,,,,,,,,, +das-api,Solana DAS API: Unified NFT and Token Data Access,"The most comprehensive Solana API for NFTs, compressed NFTs, and tokens. Unified interface for all digital assets with high performance and complete metadata.",,,no,Documentation,Read chain state > DAS API,597,2026-01-28,14,6,yes,das-api.mdx,,,,,,,,,, +das/fungible-token-extension,Solana Fungible Token API: Complete Token Data Access,"The most versatile API for working with all Solana tokens. SPL tokens, Token22 extensions, price data, and comprehensive token information access.",,,no,Documentation,Read chain state > DAS API,321,2025-07-07,3,0,yes,das/fungible-token-extension.mdx,,,,,,,,,, +das/get-nfts,"How to Get Solana Assets: NFTs, Tokens & Price Data","Learn how to retrieve and query Solana NFTs, SPL tokens, and price data using Helius DAS APIs. Complete guide with code examples and best practices.",,,no,Documentation,Read chain state > DAS API,405,2026-01-08,13,2,yes,das/get-nfts.mdx,,,,,,,,,, +das/get-tokens,How to Get Solana SPL Tokens: Complete API Guide,"Learn how to retrieve and query Solana SPL token data using Helius APIs. Token balances, accounts, supply information, and holder data with code examples.",,,no,Documentation,Read chain state > DAS API,94,2025-07-07,5,0,yes,das/get-tokens.mdx,,,,,,,,,, +das/pagination,Solana DAS API Pagination: Efficient Large Dataset Querying,"Explore efficient pagination mechanisms for Solana DAS API. Page-based, cursor-based, and keyset pagination for large datasets with performance optimization.",,,no,Documentation,Read chain state > DAS API,506,2025-07-07,0,1,yes,das/pagination.mdx,,,,,,,,,, +das/search,"Solana Asset Search: Find NFTs, Tokens & Compressed Assets","Master the searchAssets endpoint to discover NFTs, compressed assets, and fungible tokens on Solana. Advanced filtering, pagination, and efficient asset discovery.",,,no,Documentation,Read chain state > DAS API,247,2025-07-07,2,1,yes,das/search.mdx,,,,,,,,,, +enhanced-transactions/overview,Enhanced Transactions Overview,"Transform complex Solana blockchain transactions into human-readable data with Helius Enhanced Transactions API. Parse transaction details, fetch history, and understand on-chain activity without manual decoding.",,,no,Documentation,Read chain state > Enhanced Transactions API,335,2026-04-22,6,3,yes,enhanced-transactions/overview.mdx,,,,,,,,,, +enhanced-transactions/parse-transactions,Parse Transactions,Parse transactions into human-readable data.,,,no,Documentation,Read chain state > Enhanced Transactions API,180,2026-04-22,4,1,yes,enhanced-transactions/parse-transactions.mdx,,,,,,,,,, +enhanced-transactions/transaction-history,Transaction History,Human-readable transaction history for any Solana address.,,,no,Documentation,Read chain state > Enhanced Transactions API,949,2026-04-22,3,1,yes,enhanced-transactions/transaction-history.mdx,,,,,,,,,, +gatekeeper/migration-guide,How to Migrate to Gatekeeper,Step-by-step guide to migrate your application to Gatekeeper,,,no,Documentation,Read chain state > Gatekeeper (Beta),201,2026-02-19,1,2,yes,gatekeeper/migration-guide.mdx,,,,,,,,,, +gatekeeper/overview,Gatekeeper (Beta),Helius's high-performance edge gateway purpose-built for Solana,,,no,Documentation,Read chain state > Gatekeeper (Beta),662,2026-02-19,0,9,yes,gatekeeper/overview.mdx,,,,,,,,,, +rpc/gettransactionsforaddress,getTransactionsForAddress Overview and Tutorial,"Learn how to query Solana transaction history with advanced filtering, bidirectional sorting, and efficient pagination using this Helius-exclusive RPC method.",,,no,Documentation,Read chain state > Indexed reads,1876,2026-04-08,3,13,yes,rpc/gettransactionsforaddress.mdx,,,,,,,,,, +rpc/gettransfersbyaddress,getTransfersByAddress Overview and Tutorial,"Query parsed, human-readable token and native SOL transfer objects for a Solana address with filters by mint, time, amount, and counterparty.",,,no,Documentation,Read chain state > Indexed reads,1483,2026-05-04,4,3,yes,rpc/gettransfersbyaddress.mdx,,,,,,,,,, +rpc/historical-data,Solana Historical Data Overview & Tutorials,"Learn how historical data works on Solana, explore common use cases, and get tutorials for common archival RPC methods like getBlock and getSignatureForAddress.",,,no,Documentation,Read chain state > Indexed reads,630,2026-04-29,10,4,yes,rpc/historical-data.mdx,,,,,,,,,, +rpc/how-to-index-solana-data,How to Index Solana Data,"Learn how to build, backfill, and keep Solana indexes up to date.",,,no,Documentation,Read chain state > Indexed reads,2493,2026-02-12,19,0,yes,rpc/how-to-index-solana-data.mdx,,,,,,,,,, +rpc/guides/getaccountinfo,How to Use getAccountInfo,"Learn getAccountInfo use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,865,2026-02-02,2,1,yes,rpc/guides/getaccountinfo.mdx,Reference,,,Keep,,,,,, +rpc/guides/getbalance,How to Use getBalance,"Learn getBalance use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,524,2026-02-02,2,2,yes,rpc/guides/getbalance.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblock,How to Use getBlock,"Learn getBlock use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,985,2025-10-27,0,3,yes,rpc/guides/getblock.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblockcommitment,How to Use getBlockCommitment,"Learn getBlockCommitment use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,516,2025-07-03,0,0,yes,rpc/guides/getblockcommitment.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblockheight,How to Use getBlockHeight,"Learn getBlockHeight use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,496,2025-07-03,0,1,yes,rpc/guides/getblockheight.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblockproduction,How to Use getBlockProduction,"Learn getBlockProduction use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,638,2026-02-02,2,0,yes,rpc/guides/getblockproduction.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblocks,How to Use getBlocks,"Learn getBlocks use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,560,2026-02-02,2,2,yes,rpc/guides/getblocks.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblockswithlimit,How to Use getBlocksWithLimit,"Learn getBlocksWithLimit use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,523,2026-02-02,2,1,yes,rpc/guides/getblockswithlimit.mdx,Reference,,,Keep,,,,,, +rpc/guides/getblocktime,How to Use getBlockTime,"Learn getBlockTime use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,365,2025-10-27,0,2,yes,rpc/guides/getblocktime.mdx,Reference,,,Keep,,,,,, +rpc/guides/getclusternodes,How to Use getClusterNodes,"Learn getClusterNodes use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,430,2025-05-22,0,1,yes,rpc/guides/getclusternodes.mdx,Reference,,,Keep,,,,,, +rpc/guides/getepochinfo,How to Use getEpochInfo,"Learn getEpochInfo use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,509,2026-02-02,2,1,yes,rpc/guides/getepochinfo.mdx,Reference,,,Keep,,,,,, +rpc/guides/getepochschedule,How to Use getEpochSchedule,"Learn getEpochSchedule use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,431,2025-05-23,0,1,yes,rpc/guides/getepochschedule.mdx,Reference,,,Keep,,,,,, +rpc/guides/getfeeformessage,How to Use getFeeForMessage,"Learn getFeeForMessage use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,449,2026-02-02,2,1,yes,rpc/guides/getfeeformessage.mdx,Reference,,,Keep,,,,,, +rpc/guides/getfirstavailableblock,How to Use getFirstAvailableBlock,"Learn getFirstAvailableBlock use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,275,2025-05-22,0,1,yes,rpc/guides/getfirstavailableblock.mdx,Reference,,,Keep,,,,,, +rpc/guides/getgenesishash,How to Use getGenesisHash,"Learn getGenesisHash use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,286,2025-05-22,0,1,yes,rpc/guides/getgenesishash.mdx,Reference,,,Keep,,,,,, +rpc/guides/gethealth,How to Use getHealth,"Learn getHealth use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,382,2025-06-10,0,2,yes,rpc/guides/gethealth.mdx,Reference,,,Keep,,,,,, +rpc/guides/gethighestsnapshotslot,How to Use getHighestSnapshotSlot,"Learn getHighestSnapshotSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,400,2025-05-22,0,1,yes,rpc/guides/gethighestsnapshotslot.mdx,Reference,,,Keep,,,,,, +rpc/guides/getidentity,How to Use getIdentity,"Learn getIdentity use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,347,2026-02-02,1,1,yes,rpc/guides/getidentity.mdx,Reference,,,Keep,,,,,, +rpc/guides/getinflationgovernor,How to Use getInflationGovernor,"Learn getInflationGovernor use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,460,2026-02-02,2,1,yes,rpc/guides/getinflationgovernor.mdx,Reference,,,Keep,,,,,, +rpc/guides/getinflationrate,How to Use getInflationRate,"Learn getInflationRate use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,354,2026-02-02,2,1,yes,rpc/guides/getinflationrate.mdx,Reference,,,Keep,,,,,, +rpc/guides/getinflationreward,How to Use getInflationReward,"Learn getInflationReward use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,598,2025-10-27,0,2,yes,rpc/guides/getinflationreward.mdx,Reference,,,Keep,,,,,, +rpc/guides/getlargestaccounts,How to Use getLargestAccounts,"Learn getLargestAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,412,2025-05-22,0,1,yes,rpc/guides/getlargestaccounts.mdx,Reference,,,Keep,,,,,, +rpc/guides/getlatestblockhash,How to Use getLatestBlockhash,"Learn getLatestBlockhash use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,552,2026-02-02,2,3,yes,rpc/guides/getlatestblockhash.mdx,Reference,,,Keep,,,,,, +rpc/guides/getleaderschedule,How to Use getLeaderSchedule,"Learn getLeaderSchedule use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,550,2026-02-02,2,1,yes,rpc/guides/getleaderschedule.mdx,Reference,,,Keep,,,,,, +rpc/guides/getmaxretransmitslot,How to Use getMaxRetransmitSlot,"Learn getMaxRetransmitSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,412,2025-05-23,0,1,yes,rpc/guides/getmaxretransmitslot.mdx,Reference,,,Keep,,,,,, +rpc/guides/getmaxshredinsertslot,How to Use getMaxShredInsertSlot,"Learn getMaxShredInsertSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,439,2026-02-02,2,1,yes,rpc/guides/getmaxshredinsertslot.mdx,Reference,,,Keep,,,,,, +rpc/guides/getminimumbalanceforrentexemption,How to Use getMinimumBalanceForRentExemption,"Learn getMinimumBalanceForRentExemption use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,478,2025-05-23,0,1,yes,rpc/guides/getminimumbalanceforrentexemption.mdx,Reference,,,Keep,,,,,, +rpc/guides/getmultipleaccounts,How to Use getMultipleAccounts,"Learn getMultipleAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,731,2026-02-02,2,1,yes,rpc/guides/getmultipleaccounts.mdx,Reference,,,Keep,,,,,, +rpc/guides/getprogramaccounts,How to Use getProgramAccounts,"Learn getProgramAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,1151,2026-02-02,2,1,yes,rpc/guides/getprogramaccounts.mdx,Reference,,,Keep,,,,,, +rpc/guides/getrecentperformancesamples,How to Use getRecentPerformanceSamples,"Learn getRecentPerformanceSamples use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,494,2025-08-04,0,1,yes,rpc/guides/getrecentperformancesamples.mdx,Reference,,,Keep,,,,,, +rpc/guides/getrecentprioritizationfees,How to Use getRecentPrioritizationFees,"Learn getRecentPrioritizationFees use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,561,2025-05-23,0,1,yes,rpc/guides/getrecentprioritizationfees.mdx,Reference,,,Keep,,,,,, +rpc/guides/getsignaturesforaddress,How to Use getSignaturesForAddress,"Learn getSignaturesForAddress use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,757,2026-02-02,2,3,yes,rpc/guides/getsignaturesforaddress.mdx,Reference,,,Keep,,,,,, +rpc/guides/getsignaturestatuses,How to Use getSignatureStatuses,"Learn getSignatureStatuses use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,693,2025-10-27,0,2,yes,rpc/guides/getsignaturestatuses.mdx,Reference,,,Keep,,,,,, +rpc/guides/getslot,How to Use getSlot,"Learn getSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,554,2025-08-04,0,1,yes,rpc/guides/getslot.mdx,Reference,,,Keep,,,,,, +rpc/guides/getslotleader,How to Use getSlotLeader,"Learn getSlotLeader use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,479,2026-02-02,2,1,yes,rpc/guides/getslotleader.mdx,Reference,,,Keep,,,,,, +rpc/guides/getslotleaders,How to Use getSlotLeaders,"Learn getSlotLeaders use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,484,2026-02-02,2,1,yes,rpc/guides/getslotleaders.mdx,Reference,,,Keep,,,,,, +rpc/guides/getstakeminimumdelegation,How to Use getStakeMinimumDelegation,"Learn getStakeMinimumDelegation use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,344,2025-05-23,0,1,yes,rpc/guides/getstakeminimumdelegation.mdx,Reference,,,Keep,,,,,, +rpc/guides/getsupply,How to Use getSupply,"Learn getSupply use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,402,2026-02-02,2,1,yes,rpc/guides/getsupply.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettokenaccountbalance,How to Use getTokenAccountBalance,"Learn getTokenAccountBalance use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,504,2026-02-02,2,1,yes,rpc/guides/gettokenaccountbalance.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettokenaccountsbydelegate,How to Use getTokenAccountsByDelegate,"Learn getTokenAccountsByDelegate use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,799,2025-07-17,0,1,yes,rpc/guides/gettokenaccountsbydelegate.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettokenaccountsbyowner,How to Use getTokenAccountsByOwner,"Learn getTokenAccountsByOwner use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,861,2026-02-02,2,1,yes,rpc/guides/gettokenaccountsbyowner.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettokenlargestaccounts,How to Use getTokenLargestAccounts,"Learn getTokenLargestAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,370,2025-05-22,0,2,yes,rpc/guides/gettokenlargestaccounts.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettokensupply,How to Use getTokenSupply,"Learn getTokenSupply use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,404,2025-05-22,0,1,yes,rpc/guides/gettokensupply.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettransaction,How to Use getTransaction,"Learn getTransaction use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,868,2025-10-27,0,3,yes,rpc/guides/gettransaction.mdx,Reference,,,Keep,,,,,, +rpc/guides/gettransactioncount,How to Use getTransactionCount,"Learn getTransactionCount use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,289,2025-05-22,0,1,yes,rpc/guides/gettransactioncount.mdx,Reference,,,Keep,,,,,, +rpc/guides/getversion,How to Use getVersion,"Learn getVersion use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,265,2026-02-02,2,1,yes,rpc/guides/getversion.mdx,Reference,,,Keep,,,,,, +rpc/guides/getvoteaccounts,How to Use getVoteAccounts,"Learn getVoteAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,514,2025-05-22,0,1,yes,rpc/guides/getvoteaccounts.mdx,Reference,,,Keep,,,,,, +rpc/guides/isblockhashvalid,How to Use isBlockhashValid,"Learn isBlockhashValid use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,486,2026-02-02,1,1,yes,rpc/guides/isblockhashvalid.mdx,Reference,,,Keep,,,,,, +rpc/guides/minimumledgerslot,How to Use minimumLedgerSlot,"Learn minimumLedgerSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,335,2025-05-22,0,1,yes,rpc/guides/minimumledgerslot.mdx,Reference,,,Keep,,,,,, +rpc/guides/overview,Solana RPC Guides and Tutorials,"Practical guides and tutorials for effectively using Solana RPC methods. Real-world examples, code samples, and best practices for blockchain development.",,,no,Documentation,Read chain state > RPC Method Guides,636,2026-04-08,53,1,yes,rpc/guides/overview.mdx,Reference,,,Keep,,,,,, +rpc/guides/requestairdrop,How to Use requestAirdrop,"Learn requestAirdrop use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Read chain state > RPC Method Guides,380,2026-02-02,2,1,yes,rpc/guides/requestairdrop.mdx,Reference,,,Keep,,,,,, +wallet-api/balances,How to Get Wallet Balances,"Retrieve all token and NFT balances for any Solana wallet with USD values, logos, and metadata. Sorted by value for easy portfolio tracking.",,,no,Documentation,Read chain state > Wallet API (Beta),655,2026-03-03,2,1,yes,wallet-api/balances.mdx,,,,,,,,,, +wallet-api/funded-by,How to See Who Funded a Solana Wallet,"Discover the original funding source of any Solana wallet by tracing its first incoming SOL transfer. Identify exchange funding, attribution, and wallet relationships.",,,no,Documentation,Read chain state > Wallet API (Beta),756,2026-02-10,2,1,yes,wallet-api/funded-by.mdx,,,,,,,,,, +wallet-api/history,How to Fetch Solana Wallet Transaction History,"Get complete transaction history for any Solana wallet with balance changes for each transaction. Perfect for portfolio trackers, accounting tools, and analytics platforms.",,,no,Documentation,Read chain state > Wallet API (Beta),666,2026-03-03,2,1,yes,wallet-api/history.mdx,,,,,,,,,, +wallet-api/identity,How to Look Up a Solana Wallet Identity,Identify known Solana wallets by address or SNS/ANS domain. Look up single entries or batch process up to 100 addresses and domains at once.,,,no,Documentation,Read chain state > Wallet API (Beta),1286,2026-04-17,2,1,yes,wallet-api/identity.mdx,,,,,,,,,, +wallet-api/overview,Wallet API Overview (Beta),"Query Solana wallet data with the Wallet API. Get balances, transaction history, transfers, identity information, and funding sources in a single request.",,,no,Documentation,Read chain state > Wallet API (Beta),697,2026-04-16,12,5,yes,wallet-api/overview.mdx,,,,,,,,,, +wallet-api/transfers,How to Get All Solana Wallet Transfers,"Track all incoming and outgoing token transfers for any Solana wallet. See sender/recipient information, amounts, and timestamps for complete transfer history.",,,no,Documentation,Read chain state > Wallet API (Beta),547,2026-03-03,2,1,yes,wallet-api/transfers.mdx,,,,,,,,,, changelog,Changelog,"Dated entries for product launches, API changes, and breaking-change notices.",,,no,Documentation,Resources,119,2026-05-06,1,0,yes,changelog.mdx,Reference,,,Keep,,,,,, -glossary,Helius Glossary: Solana and Helius Terms Defined,"Developer-focused definitions for terms used across the Helius docs and the Solana ecosystem — DAS, LaserStream, priority fees, compressed NFTs, PDAs, compute units, and more.",,,no,Documentation,Resources,2846,2026-04-24,20,0,yes,glossary.mdx,Reference,,,Keep,,,,,, +glossary,Helius Glossary: Solana and Helius Terms Defined,"Developer-focused definitions for terms used across the Helius docs and the Solana ecosystem — DAS, LaserStream, priority fees, compressed NFTs, PDAs, compute units, and more.",,,no,Documentation,Resources,2848,2026-04-24,20,0,yes,glossary.mdx,Reference,,,Keep,,,,,, sdks,Helius Solana SDKs: Node.js and Rust Development Tools,"Official Helius SDKs for Solana development in Node.js and Rust. Simplify blockchain integration with comprehensive APIs, enhanced transactions, and DAS support.",,,no,Documentation,Resources,693,2025-09-10,3,6,yes,sdks.mdx,Reference,,,Keep,,,,,, -rpc/devnet-sol,How to Get Devnet SOL,Sign in to your Helius account and visit our Solana Devnet faucet to get free Devnet SOL for testing your Solana programs.,,,no,Documentation,Solana RPC Nodes,451,2026-02-12,5,3,yes,rpc/devnet-sol.mdx,,,,,,,,,, -rpc/optimization-techniques,Solana RPC Optimization: Performance & Cost Best Practices,"Optimize Solana RPC performance, reduce costs, and improve reliability. Transaction optimization, data retrieval patterns, and best practices guide.",,,no,Documentation,Solana RPC Nodes,458,2026-02-03,10,3,yes,rpc/optimization-techniques.mdx,,,,,,,,,, -rpc/overview,Solana RPC Overview: High-Performance Blockchain Infrastructure,"High-performance Solana RPC infrastructure with 95% faster response times. Complete guide to RPC methods, optimization, and best practices.",,,no,Documentation,Solana RPC Nodes,559,2026-04-16,6,3,yes,rpc/overview.mdx,,Keep,,,,,,,, -rpc/protect-your-keys,Protect Your Solana API Keys: Security Best Practices,"Secure your Helius Solana API keys from malicious actors. Access control rules, RPC proxy, and security best practices to prevent unauthorized usage and charges.",,,no,Documentation,Solana RPC Nodes,680,2026-05-06,1,0,yes,rpc/protect-your-keys.mdx,,,,,,,,,, -gatekeeper/migration-guide,How to Migrate to Gatekeeper,Step-by-step guide to migrate your application to Gatekeeper,,,no,Documentation,Solana RPC Nodes > Gatekeeper (Beta),201,2026-02-19,1,2,yes,gatekeeper/migration-guide.mdx,,,,,,,,,, -gatekeeper/overview,Gatekeeper (Beta),Helius's high-performance edge gateway purpose-built for Solana,,,no,Documentation,Solana RPC Nodes > Gatekeeper (Beta),662,2026-02-19,0,8,yes,gatekeeper/overview.mdx,,,,,,,,,, -rpc/guides/getaccountinfo,How to Use getAccountInfo,"Learn getAccountInfo use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,865,2026-02-02,2,1,yes,rpc/guides/getaccountinfo.mdx,Reference,,,Keep,,,,,, -rpc/guides/getbalance,How to Use getBalance,"Learn getBalance use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,524,2026-02-02,2,2,yes,rpc/guides/getbalance.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblock,How to Use getBlock,"Learn getBlock use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,985,2025-10-27,0,3,yes,rpc/guides/getblock.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblockcommitment,How to Use getBlockCommitment,"Learn getBlockCommitment use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,516,2025-07-03,0,0,yes,rpc/guides/getblockcommitment.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblockheight,How to Use getBlockHeight,"Learn getBlockHeight use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,496,2025-07-03,0,1,yes,rpc/guides/getblockheight.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblockproduction,How to Use getBlockProduction,"Learn getBlockProduction use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,638,2026-02-02,2,0,yes,rpc/guides/getblockproduction.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblocks,How to Use getBlocks,"Learn getBlocks use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,560,2026-02-02,2,2,yes,rpc/guides/getblocks.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblockswithlimit,How to Use getBlocksWithLimit,"Learn getBlocksWithLimit use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,523,2026-02-02,2,1,yes,rpc/guides/getblockswithlimit.mdx,Reference,,,Keep,,,,,, -rpc/guides/getblocktime,How to Use getBlockTime,"Learn getBlockTime use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,365,2025-10-27,0,2,yes,rpc/guides/getblocktime.mdx,Reference,,,Keep,,,,,, -rpc/guides/getclusternodes,How to Use getClusterNodes,"Learn getClusterNodes use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,430,2025-05-22,0,1,yes,rpc/guides/getclusternodes.mdx,Reference,,,Keep,,,,,, -rpc/guides/getepochinfo,How to Use getEpochInfo,"Learn getEpochInfo use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,509,2026-02-02,2,1,yes,rpc/guides/getepochinfo.mdx,Reference,,,Keep,,,,,, -rpc/guides/getepochschedule,How to Use getEpochSchedule,"Learn getEpochSchedule use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,431,2025-05-23,0,1,yes,rpc/guides/getepochschedule.mdx,Reference,,,Keep,,,,,, -rpc/guides/getfeeformessage,How to Use getFeeForMessage,"Learn getFeeForMessage use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,449,2026-02-02,2,1,yes,rpc/guides/getfeeformessage.mdx,Reference,,,Keep,,,,,, -rpc/guides/getfirstavailableblock,How to Use getFirstAvailableBlock,"Learn getFirstAvailableBlock use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,275,2025-05-22,0,1,yes,rpc/guides/getfirstavailableblock.mdx,Reference,,,Keep,,,,,, -rpc/guides/getgenesishash,How to Use getGenesisHash,"Learn getGenesisHash use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,286,2025-05-22,0,1,yes,rpc/guides/getgenesishash.mdx,Reference,,,Keep,,,,,, -rpc/guides/gethealth,How to Use getHealth,"Learn getHealth use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,382,2025-06-10,0,2,yes,rpc/guides/gethealth.mdx,Reference,,,Keep,,,,,, -rpc/guides/gethighestsnapshotslot,How to Use getHighestSnapshotSlot,"Learn getHighestSnapshotSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,400,2025-05-22,0,1,yes,rpc/guides/gethighestsnapshotslot.mdx,Reference,,,Keep,,,,,, -rpc/guides/getidentity,How to Use getIdentity,"Learn getIdentity use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,347,2026-02-02,1,1,yes,rpc/guides/getidentity.mdx,Reference,,,Keep,,,,,, -rpc/guides/getinflationgovernor,How to Use getInflationGovernor,"Learn getInflationGovernor use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,460,2026-02-02,2,1,yes,rpc/guides/getinflationgovernor.mdx,Reference,,,Keep,,,,,, -rpc/guides/getinflationrate,How to Use getInflationRate,"Learn getInflationRate use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,354,2026-02-02,2,1,yes,rpc/guides/getinflationrate.mdx,Reference,,,Keep,,,,,, -rpc/guides/getinflationreward,How to Use getInflationReward,"Learn getInflationReward use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,598,2025-10-27,0,2,yes,rpc/guides/getinflationreward.mdx,Reference,,,Keep,,,,,, -rpc/guides/getlargestaccounts,How to Use getLargestAccounts,"Learn getLargestAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,412,2025-05-22,0,1,yes,rpc/guides/getlargestaccounts.mdx,Reference,,,Keep,,,,,, -rpc/guides/getlatestblockhash,How to Use getLatestBlockhash,"Learn getLatestBlockhash use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,552,2026-02-02,2,3,yes,rpc/guides/getlatestblockhash.mdx,Reference,,,Keep,,,,,, -rpc/guides/getleaderschedule,How to Use getLeaderSchedule,"Learn getLeaderSchedule use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,550,2026-02-02,2,1,yes,rpc/guides/getleaderschedule.mdx,Reference,,,Keep,,,,,, -rpc/guides/getmaxretransmitslot,How to Use getMaxRetransmitSlot,"Learn getMaxRetransmitSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,412,2025-05-23,0,1,yes,rpc/guides/getmaxretransmitslot.mdx,Reference,,,Keep,,,,,, -rpc/guides/getmaxshredinsertslot,How to Use getMaxShredInsertSlot,"Learn getMaxShredInsertSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,439,2026-02-02,2,1,yes,rpc/guides/getmaxshredinsertslot.mdx,Reference,,,Keep,,,,,, -rpc/guides/getminimumbalanceforrentexemption,How to Use getMinimumBalanceForRentExemption,"Learn getMinimumBalanceForRentExemption use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,478,2025-05-23,0,1,yes,rpc/guides/getminimumbalanceforrentexemption.mdx,Reference,,,Keep,,,,,, -rpc/guides/getmultipleaccounts,How to Use getMultipleAccounts,"Learn getMultipleAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,731,2026-02-02,2,1,yes,rpc/guides/getmultipleaccounts.mdx,Reference,,,Keep,,,,,, -rpc/guides/getprogramaccounts,How to Use getProgramAccounts,"Learn getProgramAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,1151,2026-02-02,2,1,yes,rpc/guides/getprogramaccounts.mdx,Reference,,,Keep,,,,,, -rpc/guides/getrecentperformancesamples,How to Use getRecentPerformanceSamples,"Learn getRecentPerformanceSamples use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,494,2025-08-04,0,1,yes,rpc/guides/getrecentperformancesamples.mdx,Reference,,,Keep,,,,,, -rpc/guides/getrecentprioritizationfees,How to Use getRecentPrioritizationFees,"Learn getRecentPrioritizationFees use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,561,2025-05-23,0,1,yes,rpc/guides/getrecentprioritizationfees.mdx,Reference,,,Keep,,,,,, -rpc/guides/getsignaturesforaddress,How to Use getSignaturesForAddress,"Learn getSignaturesForAddress use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,757,2026-02-02,2,3,yes,rpc/guides/getsignaturesforaddress.mdx,Reference,,,Keep,,,,,, -rpc/guides/getsignaturestatuses,How to Use getSignatureStatuses,"Learn getSignatureStatuses use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,693,2025-10-27,0,2,yes,rpc/guides/getsignaturestatuses.mdx,Reference,,,Keep,,,,,, -rpc/guides/getslot,How to Use getSlot,"Learn getSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,554,2025-08-04,0,1,yes,rpc/guides/getslot.mdx,Reference,,,Keep,,,,,, -rpc/guides/getslotleader,How to Use getSlotLeader,"Learn getSlotLeader use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,479,2026-02-02,2,1,yes,rpc/guides/getslotleader.mdx,Reference,,,Keep,,,,,, -rpc/guides/getslotleaders,How to Use getSlotLeaders,"Learn getSlotLeaders use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,484,2026-02-02,2,1,yes,rpc/guides/getslotleaders.mdx,Reference,,,Keep,,,,,, -rpc/guides/getstakeminimumdelegation,How to Use getStakeMinimumDelegation,"Learn getStakeMinimumDelegation use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,344,2025-05-23,0,1,yes,rpc/guides/getstakeminimumdelegation.mdx,Reference,,,Keep,,,,,, -rpc/guides/getsupply,How to Use getSupply,"Learn getSupply use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,402,2026-02-02,2,1,yes,rpc/guides/getsupply.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettokenaccountbalance,How to Use getTokenAccountBalance,"Learn getTokenAccountBalance use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,504,2026-02-02,2,1,yes,rpc/guides/gettokenaccountbalance.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettokenaccountsbydelegate,How to Use getTokenAccountsByDelegate,"Learn getTokenAccountsByDelegate use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,799,2025-07-17,0,1,yes,rpc/guides/gettokenaccountsbydelegate.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettokenaccountsbyowner,How to Use getTokenAccountsByOwner,"Learn getTokenAccountsByOwner use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,861,2026-02-02,2,1,yes,rpc/guides/gettokenaccountsbyowner.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettokenlargestaccounts,How to Use getTokenLargestAccounts,"Learn getTokenLargestAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,370,2025-05-22,0,2,yes,rpc/guides/gettokenlargestaccounts.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettokensupply,How to Use getTokenSupply,"Learn getTokenSupply use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,404,2025-05-22,0,1,yes,rpc/guides/gettokensupply.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettransaction,How to Use getTransaction,"Learn getTransaction use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,868,2025-10-27,0,3,yes,rpc/guides/gettransaction.mdx,Reference,,,Keep,,,,,, -rpc/guides/gettransactioncount,How to Use getTransactionCount,"Learn getTransactionCount use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,289,2025-05-22,0,1,yes,rpc/guides/gettransactioncount.mdx,Reference,,,Keep,,,,,, -rpc/guides/getversion,How to Use getVersion,"Learn getVersion use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,265,2026-02-02,2,1,yes,rpc/guides/getversion.mdx,Reference,,,Keep,,,,,, -rpc/guides/getvoteaccounts,How to Use getVoteAccounts,"Learn getVoteAccounts use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,514,2025-05-22,0,1,yes,rpc/guides/getvoteaccounts.mdx,Reference,,,Keep,,,,,, -rpc/guides/isblockhashvalid,How to Use isBlockhashValid,"Learn isBlockhashValid use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,486,2026-02-02,1,1,yes,rpc/guides/isblockhashvalid.mdx,Reference,,,Keep,,,,,, -rpc/guides/minimumledgerslot,How to Use minimumLedgerSlot,"Learn minimumLedgerSlot use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,335,2025-05-22,0,1,yes,rpc/guides/minimumledgerslot.mdx,Reference,,,Keep,,,,,, -rpc/guides/overview,Solana RPC Guides and Tutorials,"Practical guides and tutorials for effectively using Solana RPC methods. Real-world examples, code samples, and best practices for blockchain development.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,636,2026-04-08,53,1,yes,rpc/guides/overview.mdx,Reference,,,Keep,,,,,, -rpc/guides/requestairdrop,How to Use requestAirdrop,"Learn requestAirdrop use cases, code examples, request parameters, response structure, and tips.",,,no,Documentation,Solana RPC Nodes > RPC Method Guides,380,2026-02-02,2,1,yes,rpc/guides/requestairdrop.mdx,Reference,,,Keep,,,,,, -staking/how-to-stake-with-helius-programmatically,Programmatic Solana Staking with Helius SDK,Build seamless Solana staking experiences with the Helius SDK. Complete guide from setup to withdrawal with 0% commission validator integration.,,,no,Documentation,Staking,461,2025-07-22,1,0,yes,staking/how-to-stake-with-helius-programmatically.mdx,,,,,,,,,, -orb,How to Use Orb: Solana Block Explorer Tutorials,"Learn how to use Orb, a new Solana block explorer, to analyze transactions, look up tokens, inspect blocks, and find IDLs for Solana programs.",,,no,Documentation,Using Orb,358,2026-04-16,11,0,yes,orb.mdx,,,,,,,,,, -orb/explore-authorities,"How to Find Solana Mint, Freeze, and Update Authority","Learn how to use Orb, a new Solana block explorer, to find the mint, freeze, and update authority for Solana tokens and on-chain programs.",,,no,Documentation,Using Orb,945,2026-02-12,0,1,yes,orb/explore-authorities.mdx,,,,,,,,,, -orb/explore-blocks,How to Explore Blocks on Solana,"Learn how to use Orb, a new Solana block explorer, to research blocks including executed transactions, programs, block rewards, compute units, and more.",,,no,Documentation,Using Orb,356,2026-02-12,0,1,yes,orb/explore-blocks.mdx,,,,,,,,,, -orb/explore-devnet,How to Use the Orb Solana Devnet Explorer,"Learn how to use Orb, a new block explorer for Solana Devnet to analyze blocks, inspect on-chain programs, and debug transactions.",,,no,Documentation,Using Orb,1279,2026-02-12,0,1,yes,orb/explore-devnet.mdx,,,,,,,,,, -orb/explore-markets,How to Find Top Solana Coins on Orb,"Learn how to use the Orb block explorer to find the top Solana coins and projects. Sort by category, market cap, and trading activity.",,,no,Documentation,Using Orb,761,2026-02-12,0,1,yes,orb/explore-markets.mdx,,,,,,,,,, -orb/explore-mint-addresses,How to Look Up the Mint Address of Solana Tokens,"Use Orb to find the mint address for any Solana token, and look up their associated token account in your Solana wallet.",,,no,Documentation,Using Orb,1086,2026-02-12,0,2,yes,orb/explore-mint-addresses.mdx,,,,,,,,,, -orb/explore-programs,How to Find the IDL for a Solana Program,"Learn how to use Orb, a new Solana block explorer, to research programs including transactions, IDLs, verification status, upgrade authority, and more.",,,no,Documentation,Using Orb,625,2026-02-23,1,2,yes,orb/explore-programs.mdx,,,,,,,,,, -orb/explore-tokens,How to Look up a Solana Token Address,"Learn how to use Orb, a new Solana block explorer, to research tokens including transaction histories, price, holders, markets, trading volume, and metadata.",,,no,Documentation,Using Orb,587,2026-02-23,0,1,yes,orb/explore-tokens.mdx,,,,,,,,,, -orb/explore-transactions,How to Track a Solana Transaction,"Learn how to use Orb, a new Solana block explorer, to research transactions, including summaries, balances, inner instructions, and raw JSON.",,,no,Documentation,Using Orb,636,2026-02-12,0,2,yes,orb/explore-transactions.mdx,,,,,,,,,, -orb/explore-validators,How to Find Top Solana Validators on Orb,"Learn how to use the Orb block explorer to find the top Solana validators. Explore validator rewards, total stake, APY, delinquency, uptime, and more.",,,no,Documentation,Using Orb,1135,2026-02-23,0,1,yes,orb/explore-validators.mdx,,,,,,,,,, -orb/explore-wallets,Using the Orb Block Explorer as a Solana Wallet Tracker,"Learn how to use Orb, a new Solana block explorer, to track, analyze, and check Solana wallets, including transactions, tokens, balances, funding, and more.",,,no,Documentation,Using Orb,1031,2026-02-12,0,1,yes,orb/explore-wallets.mdx,,,,,,,,,, -orb/swap-tokens,How to Swap Solana Tokens on Orb,"Learn how to use the Orb block explorer to discover, research, and swap any Solana coin with low fees and fast confirmation times.",,,no,Documentation,Using Orb,589,2026-02-12,0,1,yes,orb/swap-tokens.mdx,,,,,,,,,, +dedicated-nodes,Solana Dedicated Nodes: High-Performance gRPC Streaming,"Dedicated Solana nodes optimized for gRPC streaming applications. Ultra-low latency blockchain data for trading, analytics, and real-time monitoring.",,,no,Documentation,Run dedicated infrastructure,308,2026-04-03,6,5,yes,dedicated-nodes.mdx,,,,,,,,,, +dedicated-nodes/best-practices,Solana Dedicated Nodes Best Practices: Optimize Performance,"Optimize your Solana dedicated node performance with best practices for gRPC streaming, load management, and node health monitoring.",,,no,Documentation,Run dedicated infrastructure,381,2026-02-26,4,0,yes,dedicated-nodes/best-practices.mdx,Reference,,,Keep,,,,,, +dedicated-nodes/getting-started,Solana Dedicated Nodes Setup: Complete Getting Started Guide,"Complete guide to setting up your Solana dedicated node with gRPC streaming, Yellowstone plugin, and optimal configuration for blockchain data.",,,no,Documentation,Run dedicated infrastructure,658,2026-04-03,5,1,yes,dedicated-nodes/getting-started.mdx,,,,,,,,,, +shred-delivery/index,Shred Delivery,Specialized feed of raw Solana shreds delivered via UDP — the earliest possible on-chain signal optimized for traders and low-latency use cases.,,,no,Documentation,Run dedicated infrastructure,745,2026-04-21,1,0,yes,shred-delivery/index.mdx,,,,,,,,,, +sending-transactions/backrun-rebates,Earn SOL Rebates from Your Transactions,Earn automatic SOL rebates via post-trade backruns with no additional risk of toxic MEV.,,,no,Documentation,Send transactions,663,2026-02-20,0,2,yes,sending-transactions/backrun-rebates.mdx,,,,,,,,,, +sending-transactions/chooser,Send transactions,"Pick a transaction-sending path: Helius Sender, Jito Bundles, or standard sendTransaction. Comparison matrix and decision tree below.",,,no,Documentation,Send transactions,395,2026-05-06,6,0,yes,sending-transactions/chooser.mdx,Explanation,,,Keep,,,,,, +sending-transactions/optimizing-transactions,Solana Transaction Optimization Guide,"Optimize Solana transactions to minimize confirmation latency and maximize delivery rates. Learn about priority fees, compute units, and best practices.",,,no,Documentation,Send transactions,1514,2026-04-03,10,6,yes,sending-transactions/optimizing-transactions.mdx,,,,,,,,,, +sending-transactions/overview,Solana Transaction Sending,"Learn how to reliably send and confirm Solana transactions using Helius infrastructure. Staked connections, priority fees, and enterprise-grade reliability.",,,no,Documentation,Send transactions,307,2026-03-20,5,2,yes,sending-transactions/overview.mdx,,,,,,,,,, +sending-transactions/send-bundle,Jito Bundles via Helius,"Send [Jito](https://docs.jito.wtf/lowlatencytxnsend) bundles through your Helius RPC endpoint. Atomic, all-or-nothing execution of up to 5 transactions.",,,no,Documentation,Send transactions,421,2026-04-21,0,3,yes,sending-transactions/send-bundle.mdx,,,,,,,,,, +sending-transactions/send-manually,How to Send Solana Transactions,"Step-by-step guide for building robust, production-grade Solana transaction sending workflows. Learn compute optimization, priority fees, and confirmation strategies.",,,no,Documentation,Send transactions,545,2026-02-03,7,3,yes,sending-transactions/send-manually.mdx,,,,,,,,,, +sending-transactions/jupiter-swap-api-via-sender,How to Use Jupiter Swap API and Helius Sender for Trading,"Learn how to land trades with Jupiter's Swap API and Helius Sender, an ultra-low latency Solana transaction sending service.",,,no,Documentation,Send transactions > Helius Sender (For Traders),306,2026-02-12,0,0,yes,sending-transactions/jupiter-swap-api-via-sender.mdx,,,,,,,,,, +sending-transactions/sender,Helius Sender: Ultra-Low Latency Solana Transaction Submission,"Ultra-low latency Solana transaction submission with dual routing to validators and Jito infrastructure. No credits consumed, global endpoints, optimized for high-frequency trading.",,,no,Documentation,Send transactions > Helius Sender (For Traders),1174,2026-04-16,2,12,yes,sending-transactions/sender.mdx,,,,,,,,,, +priority-fee-api,Solana Priority Fee API: Smart Transaction Fee Estimation,Estimate optimal priority fees for Solana transactions. Real-time fee analysis with six priority levels to ensure fast confirmation and cost efficiency.,,,no,Documentation,Send transactions > Priority Fee API,473,2025-08-08,4,10,yes,priority-fee-api.mdx,,,,,,,,,, +priority-fee/estimating-fees-using-account-keys,Solana Priority Fee Estimation: Account Keys Method,Estimate Solana priority fees using account keys with the Helius Priority Fee API. Quick fee estimates for pre-transaction analysis and batch operations.,,,no,Documentation,Send transactions > Priority Fee API,469,2025-07-07,2,2,yes,priority-fee/estimating-fees-using-account-keys.mdx,,,,,,,,,, +priority-fee/estimating-fees-using-serialized-transaction,Solana Priority Fee Estimation: Serialized Transaction Method,Get the most accurate Solana priority fee estimates using serialized transactions with the Helius Priority Fee API. Perfect for production applications.,,,no,Documentation,Send transactions > Priority Fee API,388,2026-01-28,2,2,yes,priority-fee/estimating-fees-using-serialized-transaction.mdx,,,,,,,,,, +staking/how-to-stake-with-helius-programmatically,Programmatic Solana Staking with Helius SDK,Build seamless Solana staking experiences with the Helius SDK. Complete guide from setup to withdrawal with 0% commission validator integration.,,,no,Documentation,Specialized,461,2025-07-22,1,0,yes,staking/how-to-stake-with-helius-programmatically.mdx,,,,,,,,,, +nfts/cnft-event-listening,Solana Compressed NFT Event Listening,"Learn how to listen for and retrieve Solana compressed NFT events using Helius APIs. WebSockets, webhooks, gRPC streaming, and real-time cNFT monitoring.",,,no,Documentation,Specialized > Compression,1117,2026-02-13,9,0,yes,nfts/cnft-event-listening.mdx,,,,,,,,,, +nfts/nft-compression,Solana NFT Compression: Cost-Efficient Mass NFT Minting,"The most cost-efficient way to mint large numbers of NFTs on Solana. Learn Merkle trees, compressed NFTs, and massive cost savings for digital collections.",,,no,Documentation,Specialized > Compression,551,2026-02-26,1,1,yes,nfts/nft-compression.mdx,,,,,,,,,, +zk-compression/introduction,What is ZK Compression on Solana?,"ZK Compression dramatically reduces Solana data storage costs by 95%+. Store compressed accounts, NFTs, and arbitrary data at a fraction of the cost.",,,no,Documentation,Specialized > Compression,177,2025-10-06,0,5,yes,zk-compression/introduction.mdx,,,,,,,,,, +airship/getting-started,Helius AirShip Guide: Get Started with ZK Compressed Airdrops,"Complete guide to using Helius AirShip for Solana token airdrops. Learn ZK compression, cost savings, and distribution to NFT holders and token holders.",,,no,Documentation,Specialized > Compression > Helius AirShip,667,2025-07-08,2,2,yes,airship/getting-started.mdx,,,,,,,,,, +airship/overview,Helius AirShip: Solana Token Airdrop Tool with ZK Compression,Cost-effective Solana token airdrops using ZK compression. Reduce airdrop costs by 95% with Helius AirShip's open-source distribution tool.,,,no,Documentation,Specialized > Compression > Helius AirShip,178,2025-07-07,2,0,yes,airship/overview.mdx,,,,,,,,,, +orb,How to Use Orb: Solana Block Explorer Tutorials,"Learn how to use Orb, a new Solana block explorer, to analyze transactions, look up tokens, inspect blocks, and find IDLs for Solana programs.",,,no,Documentation,Specialized > Orb,358,2026-04-16,11,0,yes,orb.mdx,,,,,,,,,, +orb/explore-authorities,"How to Find Solana Mint, Freeze, and Update Authority","Learn how to use Orb, a new Solana block explorer, to find the mint, freeze, and update authority for Solana tokens and on-chain programs.",,,no,Documentation,Specialized > Orb,945,2026-02-12,0,1,yes,orb/explore-authorities.mdx,,,,,,,,,, +orb/explore-blocks,How to Explore Blocks on Solana,"Learn how to use Orb, a new Solana block explorer, to research blocks including executed transactions, programs, block rewards, compute units, and more.",,,no,Documentation,Specialized > Orb,356,2026-02-12,0,1,yes,orb/explore-blocks.mdx,,,,,,,,,, +orb/explore-devnet,How to Use the Orb Solana Devnet Explorer,"Learn how to use Orb, a new block explorer for Solana Devnet to analyze blocks, inspect on-chain programs, and debug transactions.",,,no,Documentation,Specialized > Orb,1279,2026-02-12,0,1,yes,orb/explore-devnet.mdx,,,,,,,,,, +orb/explore-markets,How to Find Top Solana Coins on Orb,"Learn how to use the Orb block explorer to find the top Solana coins and projects. Sort by category, market cap, and trading activity.",,,no,Documentation,Specialized > Orb,761,2026-02-12,0,1,yes,orb/explore-markets.mdx,,,,,,,,,, +orb/explore-mint-addresses,How to Look Up the Mint Address of Solana Tokens,"Use Orb to find the mint address for any Solana token, and look up their associated token account in your Solana wallet.",,,no,Documentation,Specialized > Orb,1086,2026-02-12,0,2,yes,orb/explore-mint-addresses.mdx,,,,,,,,,, +orb/explore-programs,How to Find the IDL for a Solana Program,"Learn how to use Orb, a new Solana block explorer, to research programs including transactions, IDLs, verification status, upgrade authority, and more.",,,no,Documentation,Specialized > Orb,625,2026-02-23,1,2,yes,orb/explore-programs.mdx,,,,,,,,,, +orb/explore-tokens,How to Look up a Solana Token Address,"Learn how to use Orb, a new Solana block explorer, to research tokens including transaction histories, price, holders, markets, trading volume, and metadata.",,,no,Documentation,Specialized > Orb,587,2026-02-23,0,1,yes,orb/explore-tokens.mdx,,,,,,,,,, +orb/explore-transactions,How to Track a Solana Transaction,"Learn how to use Orb, a new Solana block explorer, to research transactions, including summaries, balances, inner instructions, and raw JSON.",,,no,Documentation,Specialized > Orb,636,2026-02-12,0,2,yes,orb/explore-transactions.mdx,,,,,,,,,, +orb/explore-validators,How to Find Top Solana Validators on Orb,"Learn how to use the Orb block explorer to find the top Solana validators. Explore validator rewards, total stake, APY, delinquency, uptime, and more.",,,no,Documentation,Specialized > Orb,1135,2026-02-23,0,1,yes,orb/explore-validators.mdx,,,,,,,,,, +orb/explore-wallets,Using the Orb Block Explorer as a Solana Wallet Tracker,"Learn how to use Orb, a new Solana block explorer, to track, analyze, and check Solana wallets, including transactions, tokens, balances, funding, and more.",,,no,Documentation,Specialized > Orb,1031,2026-02-12,0,1,yes,orb/explore-wallets.mdx,,,,,,,,,, +orb/swap-tokens,How to Swap Solana Tokens on Orb,"Learn how to use the Orb block explorer to discover, research, and swap any Solana coin with low fees and fast confirmation times.",,,no,Documentation,Specialized > Orb,589,2026-02-12,0,1,yes,orb/swap-tokens.mdx,,,,,,,,,, +streaming/overview,Stream chain data,"Pick a streaming product: Shreds, LaserStream gRPC, WebSockets, or Webhooks. Comparison matrix and decision tree below.",,,no,Documentation,Stream chain data,368,2026-05-06,9,4,yes,streaming/overview.mdx,Explanation,,,Keep,,,,,, +streaming/quickstart,Solana Data Streaming Quickstart,"Get your first real-time Solana data stream running in under 5 minutes. LaserStream, Enhanced WebSockets, and Webhooks setup guide.",,,no,Documentation,Stream chain data,226,,7,2,yes,streaming/quickstart.mdx,Tutorial,,,Keep,,,,,, +laserstream,LaserStream,"Next-generation Solana data streaming with ultra-low latency, historical replay, and multi-node reliability. Purpose-built for high-performance applications.",,,no,Documentation,Stream chain data > LaserStream,1032,2026-04-21,5,16,yes,laserstream.mdx,,,,,,,,,, +laserstream/clients,LaserStream Clients,High-performance SDKs for gRPC streaming with automatic replay and zero data loss,,,no,Documentation,Stream chain data > LaserStream,381,2026-04-03,0,4,yes,laserstream/clients.mdx,,,,,,,,,, +laserstream/delivery-guarantees,Delivery Guarantees,"Understand LaserStream's delivery guarantees, including exactly-once delivery, message ordering, slot notification behavior, and fork handling.",,,no,Documentation,Stream chain data > LaserStream,690,2026-04-09,3,0,yes,laserstream/delivery-guarantees.mdx,,,,,,,,,, +laserstream/grpc,LaserStream gRPC: High-Performance Data Streaming,Stream real-time Solana blockchain data. Highly configurable low-latency streams with 24-hour historical replay and multi-region support.,,,no,Documentation,Stream chain data > LaserStream,1566,2026-04-03,2,6,yes,laserstream/grpc.mdx,,,,,,,,,, +laserstream/historical-replay,LaserStream Historical Replay: Backfill Missing Data,Recover from disconnections and backfill missing Solana blockchain data with LaserStream's historical replay feature. Never miss a transaction again.,,,no,Documentation,Stream chain data > LaserStream,327,2026-04-03,2,5,yes,laserstream/historical-replay.mdx,,,,,,,,,, +laserstream/laserstream-vs-dedicated-nodes,LaserStream vs Dedicated Nodes: Choosing the Right gRPC Solution,Compare LaserStream and Dedicated Nodes to choose the best gRPC streaming solution for your needs,,,no,Documentation,Stream chain data > LaserStream,497,2026-04-06,2,4,yes,laserstream/laserstream-vs-dedicated-nodes.mdx,,,,,,,,,, +laserstream/migration-from-yellowstone,Migrate from Yellowstone gRPC,LaserStream is wire-compatible with Yellowstone gRPC. Switch by changing your endpoint URL — the rest of your code stays.,,,no,Documentation,Stream chain data > LaserStream,539,,12,8,yes,laserstream/migration-from-yellowstone.mdx,How-to,,,Keep,,,,,, +laserstream/preprocessed-transactions,Preprocessed Transactions (Public Beta),The fastest way to stream Solana transactions. ~8ms faster than processed on average.,,,no,Documentation,Stream chain data > LaserStream,625,2026-04-21,2,6,yes,laserstream/preprocessed-transactions.mdx,,,,,,,,,, +laserstream/guides/account-monitoring,Account Monitoring with Yellowstone gRPC,"Monitor Solana account changes in real-time with advanced filtering options, data slicing, and practical implementation patterns.",,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,397,,3,2,yes,laserstream/guides/account-monitoring.mdx,How-to,,,Keep,,,,,, +laserstream/guides/account-subscription,Account Subscription and Updates,Learn how to subscribe to account updates and efficiently track on-chain state changes using Laserstream.,,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,1497,2026-02-24,0,1,yes,laserstream/guides/account-subscription.mdx,,,,,,,,,, +laserstream/guides/decoding-transaction-data,Decoding and Parsing Transaction Data,Learn how to decode and parse transaction data from Laserstream for better understanding of Solana transactions.,,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,1001,2026-02-24,0,1,yes,laserstream/guides/decoding-transaction-data.mdx,,,,,,,,,, +laserstream/guides/entry-monitoring,Entry Monitoring with Yellowstone gRPC,"Monitor low-level Solana blockchain entries, transaction batches, and execution units for deep network analysis.",,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,589,,3,2,yes,laserstream/guides/entry-monitoring.mdx,How-to,,,Keep,,,,,, +laserstream/guides/measuring-latency,Measuring Latency,Learn how to properly measure and analyze latency for gRPC streams using various testing methods.,,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,895,2026-03-11,1,0,yes,laserstream/guides/measuring-latency.mdx,,,,,,,,,, +laserstream/guides/slot-and-block-monitoring,Slot & Block Monitoring with Yellowstone gRPC,"Monitor Solana network consensus, block production, and network state changes with real-time slot and block streaming.",,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,509,,3,2,yes,laserstream/guides/slot-and-block-monitoring.mdx,How-to,,,Keep,,,,,, +laserstream/guides/stream-pump-amm-data,Solana Pump AMM Data Streaming: gRPC Guide,"Complete real-world example of monitoring Solana Pump.fun AMM data using Yellowstone gRPC. Track token launches, prices, and trading activity in real-time.",,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,527,,4,4,yes,laserstream/guides/stream-pump-amm-data.mdx,How-to,,,Keep,,,,,, +laserstream/guides/transaction-monitoring,Transaction Monitoring with Yellowstone gRPC,"Stream Solana transactions in real-time with program filtering, execution details, and token balance change tracking.",,,no,Documentation,Stream chain data > LaserStream > LaserStream Guides,398,,3,4,yes,laserstream/guides/transaction-monitoring.mdx,How-to,,,Keep,,,,,, +webhooks,Solana Webhooks: Real-Time Blockchain Event Notifications,"Monitor Solana blockchain events with real-time webhooks. Get instant notifications for NFT sales, token transfers, and transactions sent to your endpoints.",,,no,Documentation,Stream chain data > Webhooks,781,2026-03-19,3,10,yes,webhooks.mdx,,,,,,,,,, +webhooks/transaction-types,Solana Webhook Transaction Types,"Complete reference guide to Solana webhook transaction types. Learn about NFT sales, DeFi swaps, staking, and 100+ supported blockchain transaction types.",,,no,Documentation,Stream chain data > Webhooks,200,2025-07-07,0,0,yes,webhooks/transaction-types.mdx,,,,,,,,,, +websockets/account-subscribe,How to Use accountSubscribe,"Stream real-time Solana account updates with `accountSubscribe`. Monitor balance changes, data modifications, and lamport updates via WebSocket.",,,no,Documentation,Stream chain data > WebSockets,194,,0,1,yes,websockets/account-subscribe.mdx,How-to,,,Keep,,,,,, +websockets/overview,WebSockets,Stream real-time Solana data over WebSockets. Two tiers: Enhanced (filtered transaction + account subscriptions) and Standard (full Solana WSS compatibility).,,,no,Documentation,Stream chain data > WebSockets,646,,11,13,yes,websockets/overview.mdx,Explanation,,,Keep,,,,,, +websockets/quickstart,Solana WebSocket Quickstart Guide,"Start using Solana WebSockets in minutes with this step-by-step guide covering account monitoring, transaction tracking, and building real-time apps.",,,no,Documentation,Stream chain data > WebSockets,273,,4,1,yes,websockets/quickstart.mdx,Tutorial,,,Keep,,,,,, +websockets/stream-pump-amm-data,How to Stream Pump AMM Data,"Learn how to stream live Solana Pump AMM data using Enhanced WebSockets. Real-time token data, price feeds, and trading activity monitoring.",,,no,Documentation,Stream chain data > WebSockets,340,,0,0,yes,websockets/stream-pump-amm-data.mdx,How-to,,,Keep,,,,,, +websockets/transaction-subscribe,How to Use transactionSubscribe,"Stream real-time Solana transaction updates with `transactionSubscribe`. Monitor blockchain activity, filter by accounts, and receive instant notifications.",,,no,Documentation,Stream chain data > WebSockets,485,,1,3,yes,websockets/transaction-subscribe.mdx,How-to,,,Keep,,,,,, faqs/accounts,Accounts FAQs,"Get answers to the most common questions about Solana accounts, project management, credits, rate limits, and testing resources",,,no,FAQs,Account & Billing,287,2025-11-07,3,1,yes,faqs/accounts.mdx,How-to,,,Keep,,,,,, faqs/billing,Billing FAQs,"Get answers to the most common questions about billing including pricing plans, payment methods, upgrades, overages, and enterprise solutions",,,no,FAQs,Account & Billing,877,2026-02-08,2,1,yes,faqs/billing.mdx,How-to,,,Keep,,,,,, faqs/das-api,DAS API FAQs,"Get answers to the most common questions about Digital Asset Standard API including asset data, price information, and troubleshooting",,,no,FAQs,Data APIs,384,2026-02-10,6,2,yes,faqs/das-api.mdx,How-to,,,Keep,,,,,, faqs/zk-compression,ZK Compression FAQs,Get answers to the most common questions about ZK Compression including API usage and pagination,,,no,FAQs,Data APIs,46,2025-08-11,2,1,yes,faqs/zk-compression.mdx,How-to,,,Keep,,,,,, -faqs,Frequently Asked Questions,"Find answers to common questions about Helius APIs, billing, platform features, and technical troubleshooting. Quick access to all FAQ sections.",,,no,FAQs,FAQs Overview,555,2026-04-16,25,0,yes,faqs.mdx,How-to,,,Keep,,,,,, +faqs,Frequently Asked Questions,"Find answers to common questions about Helius APIs, billing, platform features, and technical troubleshooting. Quick access to all FAQ sections.",,,no,FAQs,FAQs Overview,556,2026-04-16,25,0,yes,faqs.mdx,How-to,,,Keep,,,,,, faqs/dedicated-nodes,Dedicated Nodes FAQs,"Get answers to the most common questions about dedicated Solana nodes including purchasing, management, and troubleshooting",,,no,FAQs,Infrastructure & Nodes,234,2026-02-26,2,1,yes,faqs/dedicated-nodes.mdx,How-to,,,Keep,,,,,, faqs/error-codes,Error Codes FAQs,Get answers to the most common error codes and troubleshooting steps for Helius API requests,,,no,FAQs,Infrastructure & Nodes,182,2025-11-07,2,2,yes,faqs/error-codes.mdx,How-to,,,Keep,,,,,, faqs/rpc,RPC FAQs,"Get answers to the most common questions about Solana RPC nodes, methods, rate limits, and troubleshooting",,,no,FAQs,Infrastructure & Nodes,544,2026-02-11,6,1,yes,faqs/rpc.mdx,How-to,,,Keep,,,,,, faqs/laserstream,LaserStream FAQs,"Get answers to the most common questions about LaserStream including purchasing, usage, troubleshooting, and subscription management",,,no,FAQs,Real-time Data Streaming,972,2026-04-21,5,1,yes,faqs/laserstream.mdx,How-to,,,Keep,,,,,, faqs/webhooks,Webhooks FAQs,"Get answers to the most common questions about webhooks including management, network support, retries, and troubleshooting",,,no,FAQs,Real-time Data Streaming,877,2026-04-14,4,2,yes,faqs/webhooks.mdx,How-to,,,Keep,,,,,, -faqs/websockets,WebSockets FAQs,"Get answers to the most common questions about WebSockets including enhanced features, troubleshooting, and usage",,,no,FAQs,Real-time Data Streaming,458,2026-04-08,4,2,yes,faqs/websockets.mdx,How-to,,,Keep,,,,,, +faqs/websockets,WebSockets FAQs,"Get answers to the most common questions about WebSockets including enhanced features, troubleshooting, and usage",,,no,FAQs,Real-time Data Streaming,458,2026-04-08,4,1,yes,faqs/websockets.mdx,How-to,,,Keep,,,,,, faqs/enhanced-transactions,Enhanced Transactions FAQs,"Get answers to the most common questions about Enhanced Transactions API including usage, authentication, rate limits, and troubleshooting",,,no,FAQs,Transaction & Fee APIs,312,2026-04-22,5,4,yes,faqs/enhanced-transactions.mdx,How-to,,,Keep,,,,,, faqs/priority-fee,Priority Fee API FAQs,"Get answers to the most common questions about Priority Fee API including transaction optimization, fee estimation, and improving landing rates",,,no,FAQs,Transaction & Fee APIs,221,2025-08-11,8,1,yes,faqs/priority-fee.mdx,How-to,,,Keep,,,,,, faqs/sender,Sender FAQs,"Get answers to the most common questions about Helius Sender including functionality, configuration, and rate limits",,,no,FAQs,Transaction & Fee APIs,200,2026-02-27,4,1,yes,faqs/sender.mdx,How-to,,,Keep,,,,,, -support,Helius Support: Get Help with Solana API Development,"Get expert help with Helius Solana APIs, troubleshooting, billing, and technical support. Discord community, chat support, and email assistance available.",,,no,Support,Support,41,2025-07-23,2,8,yes,support.mdx,,,,,,,,,, +support,Helius Support: Get Help with Solana API Development,"Get expert help with Helius Solana APIs, troubleshooting, billing, and technical support. Discord community, chat support, and email assistance available.",,,no,Support,Support,41,2025-07-23,2,7,yes,support.mdx,,,,,,,,,, support/contact-support,Contact Helius Support: Get Help with Solana API Issues,"Get expert help with Helius Solana API issues. Discord community, chat support, email assistance for billing, technical questions, and troubleshooting.",,,no,Support,Support,74,2025-07-07,0,22,yes,support/contact-support.mdx,,,,,,,,,, support/status-page,Helius Status Page: Real-Time Service Monitoring,Check the Helius system status for real-time service availability and performance information. Monitor Solana API uptime and service health.,,,no,Support,Support,13,2025-07-07,0,16,yes,support/status-page.mdx,,,,,,,,,, AGENTS,,,,,no,,,483,2026-02-24,0,0,no,AGENTS.mdx,Reference,,,Keep,,,,Machine-readable agents index served as /docs/AGENTS.md for AI agents. Intentionally not in nav.,, @@ -354,15 +353,6 @@ api-reference/laserstream/websocket/slotsupdatesunsubscribe,slotsUpdatesUnsubscr api-reference/laserstream/websocket/slotunsubscribe,slotUnsubscribe,Unsubscribe from slot notifications.,,,no,,,75,2026-03-04,0,0,no,api-reference/laserstream/websocket/slotunsubscribe.mdx,Reference,,,Keep,,,,"Orphan reference page. Wire into nav under a new ""LaserStream WebSocket"" group in API Reference, or deprecate if WebSockets unification means these methods live under api-reference/websockets/.",, api-reference/laserstream/websocket/votesubscribe,voteSubscribe,Subscribe to receive notification anytime a new vote is observed in gossip. These votes are pre-consensus therefore there is no guarantee these votes will enter the ledger.,,,no,,,159,2026-03-04,0,0,no,api-reference/laserstream/websocket/votesubscribe.mdx,Reference,,,Keep,,,,"Orphan reference page. Wire into nav under a new ""LaserStream WebSocket"" group in API Reference, or deprecate if WebSockets unification means these methods live under api-reference/websockets/.",, api-reference/laserstream/websocket/voteunsubscribe,voteUnsubscribe,Unsubscribe from vote notifications.,,,no,,,75,2026-03-04,0,0,no,api-reference/laserstream/websocket/voteunsubscribe.mdx,Reference,,,Keep,,,,"Orphan reference page. Wire into nav under a new ""LaserStream WebSocket"" group in API Reference, or deprecate if WebSockets unification means these methods live under api-reference/websockets/.",, -chain-state/overview,Read chain state,"Pick a data API: RPC, DAS, Enhanced Transactions, Wallet API, or indexed reads. Comparison matrix and decision tree below.",,,no,,,489,,12,0,no,chain-state/overview.mdx,Explanation,,,Keep,,,,,, -event-listening,Solana Event Listening: Real-Time Blockchain Monitoring,"Monitor Solana blockchain events in real-time with webhooks, websockets and gRPC. Get instant notifications for transactions, account changes, and on-chain activity.",,,no,,,341,2025-08-11,3,0,no,event-listening.mdx,Explanation,,,Merge,streaming/overview,,,Orphan landing page that overlaps with data-streaming. Fold any unique content into streaming/overview at week 4.,, -event-listening/quickstart,Solana Event Listening Quickstart: Real-Time Blockchain Events,Get started with Solana event listening in minutes using Helius webhooks and WebSockets. Monitor blockchain events and set up real-time notifications.,,,no,,,128,2025-10-31,1,0,no,event-listening/quickstart.mdx,,,,Delete,streaming/quickstart,,,Orphan duplicate of data-streaming/quickstart.,, -laserstream/websocket,LaserStream WebSocket: Real-Time Data Streaming,Stream real-time Solana blockchain data with LaserStream's enhanced WebSocket API. Faster response times and advanced filtering for live applications.,,,no,,,780,2026-03-04,1,0,no,laserstream/websocket.mdx,,,,Merge,websockets/overview,,,Orphan. Documents transactionSubscribe over LaserStream WebSocket — appears identical to Enhanced WebSockets. Confirm with Eng before merge into unified websockets/overview.,, -quickstart,Build Your First Solana App with Helius,Learn the fundamentals of building on Solana by creating your first application using Helius APIs. From setup to deployment in minutes.,,,no,,,528,2026-03-20,6,3,no,quickstart.mdx,Tutorial,,,Rewrite,quickstart/nft,,,,, -rpc/http/get-accounts,How to Get Solana Accounts: Complete RPC Guide,"Learn how to fetch Solana account data using Helius RPC methods. Get single accounts, multiple accounts, and batch retrieval with best practices.",,,no,,,106,2025-07-07,2,0,no,rpc/http/get-accounts.mdx,,,,Delete,,,,Orphan how-to that duplicates rpc/guides/getaccountinfo and rpc/guides/getmultipleaccounts.,, -rpc/http/get-transactions,How to Get Solana Transactions: Complete Retrieval Guide,"Learn how to retrieve and parse Solana transactions using Helius RPC methods and Enhanced Transaction API. Single, batch, and status checking.",,,no,,,61,2025-10-31,3,0,no,rpc/http/get-transactions.mdx,,,,Delete,,,,Orphan how-to that duplicates rpc/gettransactionsforaddress and rpc/guides/gettransaction.,, -sending-transactions/chooser,Send transactions,"Pick a transaction-sending path: Helius Sender, Jito Bundles, or standard sendTransaction. Comparison matrix and decision tree below.",,,no,,,395,,6,0,no,sending-transactions/chooser.mdx,Explanation,,,Keep,,,,,, -streaming/overview,Stream chain data,"Pick a streaming product: Shreds, LaserStream gRPC, WebSockets, or Webhooks. Comparison matrix and decision tree below.",,,no,,,366,,10,0,no,streaming/overview.mdx,Explanation,,,Keep,,,,,, validator-reporting/apy,Get Validator APY,Calculate validator Annual Percentage Yield with both gross APY (total validator earnings) and staker APY (what delegators receive after commissions),,,no,,,801,2025-12-19,3,3,no,validator-reporting/apy.mdx,Reference,,,Keep,,,,Private partner API. Intentionally not in public nav. Confirm with Eng whether to keep documenting publicly at all.,, validator-reporting/daily-forecast,Get Daily Rewards Forecast,"Per-day rewards forecast with weekend adjustments, matching the standard staking partner reporting methodology",,,no,,,385,2026-04-13,3,1,no,validator-reporting/daily-forecast.mdx,Reference,,,Keep,,,,Private partner API. Intentionally not in public nav. Confirm with Eng whether to keep documenting publicly at all.,, validator-reporting/earnings,Get Validator Earnings,"Comprehensive earnings data including voting, block production, rewards breakdown, and commission splits",,,no,,,394,2025-12-19,1,6,no,validator-reporting/earnings.mdx,Reference,,,Keep,,,,Private partner API. Intentionally not in public nav. Confirm with Eng whether to keep documenting publicly at all.,, diff --git a/billing/credits.mdx b/billing/credits.mdx index f52b322c..d465eabb 100644 --- a/billing/credits.mdx +++ b/billing/credits.mdx @@ -226,7 +226,7 @@ All WebSocket streaming at Helius is now [powered by LaserStream infrastructure] ### Enhanced WebSockets -[Enhanced WebSockets](/enhanced-websockets) are available on Developer, Business, and Professional plans. +[Enhanced WebSockets](/websockets/overview) are available on Developer, Business, and Professional plans. All Enhanced WSS usage is metered at **2 credits per 0.1 MB**. diff --git a/billing/plans.mdx b/billing/plans.mdx index 7b7b85c8..d797a303 100644 --- a/billing/plans.mdx +++ b/billing/plans.mdx @@ -122,7 +122,7 @@ To ensure continued service after you run out of monthly credits, [Autoscaling]( ### Data Add-Ons -Transform your Professional plan's pay-per-use model into predictable costs with monthly data allowances. Available for Pro plans only and covers both [LaserStream gRPC](https://www.helius.dev/docs/laserstream/grpc) and [Enhanced WebSockets](https://www.helius.dev/docs/enhanced-websockets) data usage. +Transform your Professional plan's pay-per-use model into predictable costs with monthly data allowances. Available for Pro plans only and covers both [LaserStream gRPC](https://www.helius.dev/docs/laserstream/grpc) and [Enhanced WebSockets](https://www.helius.dev/docs/websockets/overview) data usage. Available for Professional plans only. @@ -274,7 +274,7 @@ Both plans include the same features: 1M monthly credits, 10 RPC req/s, 2 DAS & -Data Add-Ons are fixed monthly data allowances for [LaserStream gRPC](/laserstream/grpc) and [Enhanced WebSockets](/enhanced-websockets) usage, available exclusively on the Professional plan. They replace pay-per-use metering with predictable monthly costs ranging from $500/month for 5 TB to $6,000/month for 100 TB. Any usage beyond your allowance is charged at 2 credits per 0.1 MB. For allowances above 100 TB, [contact sales](https://www.helius.dev/contact). +Data Add-Ons are fixed monthly data allowances for [LaserStream gRPC](/laserstream/grpc) and [Enhanced WebSockets](/websockets/overview) usage, available exclusively on the Professional plan. They replace pay-per-use metering with predictable monthly costs ranging from $500/month for 5 TB to $6,000/month for 100 TB. Any usage beyond your allowance is charged at 2 credits per 0.1 MB. For allowances above 100 TB, [contact sales](https://www.helius.dev/contact). diff --git a/chain-state/overview.mdx b/chain-state/overview.mdx index 2db44dd4..5a393eb1 100644 --- a/chain-state/overview.mdx +++ b/chain-state/overview.mdx @@ -4,8 +4,7 @@ sidebarTitle: "Overview" description: "Pick a data API: RPC, DAS, Enhanced Transactions, Wallet API, or indexed reads. Comparison matrix and decision tree below." --- -{/* Replaces /getting-data. Wired into nav at week 4 cutover. - Source-of-truth for the data-reads chooser per PRD §WS-3. */} +{/* Source-of-truth for the data-reads chooser per PRD §WS-3. */} diff --git a/data-streaming.mdx b/data-streaming.mdx deleted file mode 100644 index 0ad27786..00000000 --- a/data-streaming.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: "Solana Data Streaming" -sidebarTitle: "Overview" -description: "Stream real-time Solana blocks, account updates, transaction data, and blockchain events. LaserStream gRPC, Enhanced WebSockets, and Webhooks solutions." ---- - -## What is data streaming on Solana? - -Data streaming allows applications to receive real-time updates from the Solana blockchain as events occur on-chain. Instead of repeatedly polling for updates, streaming establishes persistent connections that push data to your application instantly when transactions are processed, accounts change, or blocks are produced. - -This is essential for applications that require up-to-the-second data such as: - -- **Trading applications** monitoring price changes and liquidations -- **DeFi protocols** tracking user interactions and state changes -- **NFT marketplaces** detecting sales, listings, and transfers -- **Analytics platforms** collecting comprehensive blockchain metrics -- **Wallets** showing real-time balance and transaction updates - -## Why choose Helius for data streaming? - - - - Direct connections to Solana leaders ensure sub-second data delivery - - - Multi-node redundancy and automatic failover for 99.9% uptime - - - Never miss data with automatic backfill capabilities - - - Endpoints in multiple regions for optimal performance worldwide - - - -## Helius Streaming Solutions - -We offer multiple streaming options to match your app's specific needs, from simple WebSocket connections to ultra-low latency raw data streaming for HFTs. - -### Shred Delivery (Beta) - -[Shred Delivery](/shred-delivery) is a specialized, ultra-low latency feed of raw Solana shreds delivered via UDP. Requires deshredding capabilities. - -#### Key Features - -- Earliest Access: Raw shreds delivered as they're produced by the network -- Unprocessed Data: Raw format allows for custom processing tailored to your trading strategies -- Validator Advantage: Helius is a [top validator](https://www.helius.dev/validator) by stake and receives shreds faster than validators with less stake and non-staked RPC nodes -- White Glove Provisioning: Managed access with dedicated engineering support -- Beta Access Only: Currently limited to qualified teams and HFTs - -#### Best For - -Raw shreds are ideal for latency-critical strategies where milliseconds determine profitability such as: - -- High-frequency trading desks -- Arbitrage traders -- Liquidation systems -- MEV searchers - - -Interested in trying Shred Delivery? [Apply for a 2-day trial](https://www.helius.dev/shreds-contact); we review every application. - - -### LaserStream (Developer+ Devnet, Business+ Mainnet) - -LaserStream provides ultra low-latency data streaming via gRPC, and includes advanced features such as historical replay, automatic reconnects, and multi-node reliability. - -#### Key Features - -- Turnkey: Get faster gRPC streams without the headaches of managing hardware or upgrades -- 24-Hour Historical Replay: Automatically backfill up to 24 hours of missed data -- Auto-Reconnection: Built-in connection management with intelligent retry logic -- Global Endpoints: Available in [9 regions](/laserstream#mainnet-endpoints) worldwide for optimal latency -- Drop-in Replacement: Compatible with existing Yellowstone gRPC implementations - -#### Preprocessed Transactions (Public Beta) - -In addition to streaming processed, confirmed, and finalized data, LaserStream can also serve [preprocessed transactions](/laserstream/preprocessed-transactions), or decoded shreds. - -Instead of waiting for full transaction processing, LaserStream decodes transactions directly from shreds as they arrive at the validator, delivering transaction data **~8 ms faster on average than the processed commitment level**. - -Preprocessed transactions are available to any **Professional plan or higher** subscriber, metered at the standard LaserStream rate of **20 credits per 1 MB**. - -#### Best For - -- Backend services -- High-throughput applications -- Mission-critical systems requiring guaranteed data delivery - - -Interested in trying LaserStream? [Apply for a 2-day trial](https://www.helius.dev/laserstream-contact); we review every application. - - -### Enhanced WebSockets - -[Enhanced WSS](/enhanced-websockets) are performance-optimized WebSockets [powered by the same infrastructure](https://www.helius.dev/blog/introducing-next-generation-enhanced-websockets) that powers LaserStream. Enhanced WSS include advanced filtering, and account and transaction subscriptions. - -#### Key Features - -- Faster Response Times: Optimized for lower latency than standard WebSockets -- Enhanced Filtering: Advanced subscription options for precise data targeting -- Account & Transaction Subscriptions: Monitor specific accounts or transaction patterns -- Next-gen Infrastructure: Powered by the same high-performance streaming backend thats used by LaserStream - -#### Best For - -Real-time frontend apps, moderate-volume backends, custom filtering requirements - -### Standard WebSockets - -Standard [Solana WebSocket API](/rpc/websocket) enhanced with Helius infrastructure reliability. - -#### Key Features - -- Full Compatibility: Works with any Solana WebSocket client library -- Standard Methods: All supported Solana subscription types (accounts, programs, logs, signatures, slots) -- Multiple Networks: Available on mainnet and devnet -- Helius Reliability: Enhanced uptime and performance over standard RPC nodes - -#### Best For - -Existing applications, standard use cases, broad compatibility requirements - -### Webhooks - -Event-driven, server-to-server [webhook](/webhooks) notifications for on-chain activities delivered to your endpoints. - -#### Key Features - -- Parsed Event Data: Human-readable transaction data for sales, swaps, and more -- Multiple Types: Enhanced, raw, and Discord webhook options -- Transaction Filtering: Subscribe to specific event types and addresses -- Reliable Delivery: Automatic retries and delivery confirmations - -#### Best For - -Event-driven architectures, notifications, integrations with external services - -## Getting Started - - - - Select the streaming method that best fits your app requirements and infra. - - - Sign up at [dashboard.helius.dev](https://dashboard.helius.dev) and obtain your API key. - - - Each solution has dedicated quickstart guides and code examples. - - - Use the Helius dashboard to monitor usage and scale your plan as needed. - - - - - Get up and running with your first streaming connection in minutes - - - - -## Support & Community - - - - Comprehensive API references and guides for all streaming methods - - - Join thousands of developers building on Solana with Helius - - - Priority support channels for business and professional customers - - - -Ready to start streaming Solana data? - -Choose your preferred method above and dive into the documentation! diff --git a/dedicated-nodes.mdx b/dedicated-nodes.mdx index 75942fa8..a75e74aa 100644 --- a/dedicated-nodes.mdx +++ b/dedicated-nodes.mdx @@ -29,7 +29,7 @@ Interested in trying LaserStream? [Apply for a 2-day trial](https://www.helius.d ## Access Includes -- **gRPC streaming** via [Yellowstone Geyser Plugin](/grpc) (primary use case) +- **gRPC streaming** via [Yellowstone Geyser Plugin](/laserstream/migration-from-yellowstone) (primary use case) - Standard RPC and WebSocket methods (basic functionality only) - Premium support - Node clients — Agave (recommended) or Jito Labs diff --git a/dedicated-nodes/getting-started.mdx b/dedicated-nodes/getting-started.mdx index 3ba710b3..2869d565 100644 --- a/dedicated-nodes/getting-started.mdx +++ b/dedicated-nodes/getting-started.mdx @@ -55,7 +55,7 @@ Dedicated nodes **cannot** send Jito Bundles on their own. To send Jito Bundles, ### Geyser Plugin (Recommended) -**We strongly recommend adding the [Yellowstone](https://github.com/helius-labs/yellowstone-grpc) Geyser Plugin**, which is the primary use case for dedicated nodes. It provides high-performance [gRPC streaming](/grpc) of slots, blocks, transactions, and account updates. +**We strongly recommend adding the [Yellowstone](https://github.com/helius-labs/yellowstone-grpc) Geyser Plugin**, which is the primary use case for dedicated nodes. It provides high-performance [gRPC streaming](/laserstream/migration-from-yellowstone) of slots, blocks, transactions, and account updates. ` -**Devnet:** `wss://devnet.helius-rpc.com/?api-key=` - -### Gatekeeper (Beta) - -To test our fastest WSS offering, try the new Gatekeeper (Beta) endpoint: - -`wss://beta.helius-rpc.com/?api-key=` - -#### Will the old Enhanced WSS endpoints continue to be supported? - -Yes. Use the **same unified WebSocket URLs** as Standard WSS (`wss://mainnet.helius-rpc.com` and `wss://devnet.helius-rpc.com`) for Enhanced WebSockets. - -## Troubleshooting - -WebSockets have a 10-minute inactivity timer. - -To keep the WebSocket connection alive, we recommended that you implement [health checks](/faqs/websockets#why-are-my-enhanced-websockets-connections-disconnecting) and that pings be sent every minute. \ No newline at end of file diff --git a/event-listening.mdx b/event-listening.mdx deleted file mode 100644 index 92997016..00000000 --- a/event-listening.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Solana Event Listening: Real-Time Blockchain Monitoring" -sidebarTitle: Overview -description: "Monitor Solana blockchain events in real-time with webhooks, websockets and gRPC. Get instant notifications for transactions, account changes, and on-chain activity." ---- - -## Why Use Event Listening? - -- **Real-time Updates**: Receive instant notifications when blockchain events occur -- **Reduced Infrastructure Costs**: Eliminate the need for constant polling -- **Scalable Architecture**: Handle high volumes of events efficiently -- **Flexible Event Filtering**: Configure exactly which events you want to monitor - -## Available Event Listening Options - -### Webhooks - -[Webhooks](/webhooks) are HTTP callbacks that deliver data to your application when events occur on the Solana blockchain. They're ideal for: - -- Tracking token transfers -- Monitoring NFT activities -- Detecting program interactions -- Receiving notifications about account changes - -Helius webhooks deliver comprehensive event data with detailed transaction information, making it easy to build reactive applications that respond to on-chain activity. - -### Websockets - -[Websockets](/rpc/websocket) provide a persistent connection between your application and the Solana blockchain, allowing for real-time bidirectional communication. They're particularly useful for: - -- Applications requiring immediate updates -- User interfaces that need to reflect blockchain state in real-time -- Cases where lower latency is critical -- Scenarios requiring continuous data streaming - -Unlike webhooks, websockets maintain an open connection, eliminating HTTP overhead for each event delivery and providing faster notifications. - -## Choosing Between Webhooks and Websockets - -- **Use Webhooks when**: You need reliable delivery with retry mechanisms, prefer a stateless approach, or want to process events asynchronously. - -- **Use Websockets when**: You need lowest possible latency, require bidirectional communication, or are building highly interactive applications. - -## Getting Started - -To begin using event listening capabilities: - -1. For webhooks: [Create a webhook](/webhooks) configured for your specific use case -2. For websockets: [Connect to our websocket endpoint](/rpc/websocket) -3. Set up your application to process the incoming events -4. Implement appropriate business logic based on the events received - -For common questions about implementation, check our [Webhooks FAQ](faqs/webhooks) or [Websockets FAQ](/faqs/websockets). - -## Use Cases - -- **NFT Marketplaces**: Track listing, sales, and transfers in real-time -- **Wallets**: Notify users of incoming transactions -- **DeFi Applications**: Monitor trades, liquidity changes, and protocol events -- **Gaming**: Capture in-game actions stored on-chain -- **Analytics Platforms**: Aggregate transaction data as it happens - -Ready to implement event listening in your application? Explore our detailed documentation on [Webhooks](/webhooks) or [Websockets](/rpc/websocket) to get started. \ No newline at end of file diff --git a/event-listening/quickstart.mdx b/event-listening/quickstart.mdx deleted file mode 100644 index 5d8ee65e..00000000 --- a/event-listening/quickstart.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "Solana Event Listening Quickstart: Real-Time Blockchain Events" -sidebarTitle: "Quickstart" -description: "Get started with Solana event listening in minutes using Helius webhooks and WebSockets. Monitor blockchain events and set up real-time notifications." ---- - -This guide will walk you through setting up your first event listener with Helius. - -## Prerequisites - -- A Helius API key (Get one from the [Helius Dashboard](https://dashboard.helius.dev)) -- A webhook endpoint that can receive POST requests (for webhook listeners) - -## Setup Options - -Helius offers two primary methods for event listening: - -1. **Webhooks** - Receive notifications when specific blockchain events occur -2. **WebSockets** - Real-time event streaming for responsive applications - -## Quick Setup: Webhooks - - - - ```bash - curl -X POST 'https://api-mainnet.helius-rpc.com/v0/webhooks' \ - -H 'Content-Type: application/json' \ - -d '{ - "accountAddresses": ["YOUR_ACCOUNT_ADDRESS"], - "transactionTypes": ["ANY"], - "webhookURL": "YOUR_WEBHOOK_URL", - "authHeader": {"key": "value"}, // optional - "webhookType": "enhanced" - }' \ - -H 'Authorization: Bearer YOUR_API_KEY' - ``` - - - Events matching your criteria will be sent to your webhook URL as POST requests. The payload will include: - - ```json - { - "accountData": [], - "description": "", - "events": {}, - "fee": 5000, - "feePayer": "YOUR_ACCOUNT_ADDRESS", - "signature": "TRANSACTION_SIGNATURE", - "slot": 1234567, - "timestamp": 1234567890000, - "type": "TRANSACTION_TYPE" - } - ``` - - - -## Quick Setup: WebSockets - - - - ```javascript - const WebSocket = require('ws'); - - // Connect to Helius WebSocket endpoint - const ws = new WebSocket('wss://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY'); - ``` - - - ```javascript - // Handle connection open - ws.on('open', () => { - console.log('Connected to Helius WebSocket'); - }); - - // Handle incoming messages - ws.on('message', (data) => { - const event = JSON.parse(data); - console.log('Received event:', event); - }); - ``` - - - -## Next Steps - -- [Learn more about Webhooks](/webhooks) -- Explore advanced event filtering options -- Set up notifications for specific transaction types - -For additional help, join our [Discord](https://discord.com/invite/6GXdee3gBj) or [Telegram](https://t.me/helius_help) communities. \ No newline at end of file diff --git a/faqs.mdx b/faqs.mdx index f656e8a6..62210329 100644 --- a/faqs.mdx +++ b/faqs.mdx @@ -53,7 +53,7 @@ description: "Find answers to common questions about Helius APIs, billing, platf **[Webhooks](/webhooks)** push events to a public HTTPS endpoint you operate — ideal when you want events delivered to your server without holding a - connection open. **[Enhanced WebSockets](/enhanced-websockets)** stream events + connection open. **[Enhanced WebSockets](/websockets/overview)** stream events over a persistent WSS connection — ideal for apps already using the standard Solana WebSocket interface. **[LaserStream](/laserstream)** is our gRPC streaming service with historical replay and multi-region failover — ideal for diff --git a/faqs/websockets.mdx b/faqs/websockets.mdx index 10cf6aed..f32f564c 100644 --- a/faqs/websockets.mdx +++ b/faqs/websockets.mdx @@ -21,7 +21,7 @@ Enhanced WebSockets have a 10-minute inactivity timer that disconnects idle conn 1. **Implement health checks**: Send pings every minute to keep connections alive 2. **Add reconnection logic**: Automatically reconnect when disconnections occur -3. **Use proper connection management**: Follow the patterns shown in our [Enhanced WebSockets documentation](/enhanced-websockets/transaction-subscribe) +3. **Use proper connection management**: Follow the patterns shown in our [Enhanced WebSockets documentation](/websockets/transaction-subscribe) Implement reconnection and ping logic as shown in our documentation, then add your application logic on top of this foundation. @@ -78,7 +78,7 @@ const subscriptionRequest = { }; ``` -**For Standard WebSockets**, use `logsSubscribe` or `signatureSubscribe` methods depending on your monitoring needs. See our [WebSocket guide](/rpc/websocket) for detailed examples of each subscription type. +**For Standard WebSockets**, use `logsSubscribe` or `signatureSubscribe` methods depending on your monitoring needs. See our [WebSocket guide](/websockets/overview) for detailed examples of each subscription type. --- diff --git a/getting-data.mdx b/getting-data.mdx deleted file mode 100644 index 0f768198..00000000 --- a/getting-data.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Solana Data APIs: Query Blockchain Data with Helius Tools" -sidebarTitle: 'Overview' -description: "Comprehensive Solana blockchain data APIs and tools for querying, indexing, and retrieving on-chain information. DAS API, Enhanced Transactions, and more." ---- - -## Get started - - - - Learn how historical data works on Solana and how to query it - - - The fastest, most developer-friendly way to backfill Solana data - - - Query token and native SOL transfer history for a wallet - - - Access comprehensive Solana data with Digital Asset Standard API - - - Retrieve enriched transaction data with detailed decoded information - - - Retrieve NFT and token metadata, ownership information, and price data for the top 10k tokens by 24h volume - - - Access token data, balances, and transfers - - diff --git a/glossary.mdx b/glossary.mdx index dbc774c3..3fcfd1af 100644 --- a/glossary.mdx +++ b/glossary.mdx @@ -53,7 +53,7 @@ See [Enhanced Transactions](/enhanced-transactions). Helius's persistent WSS streaming service with extended filtering and granular subscription controls beyond standard Solana WebSocket methods. Powered by the same infrastructure that powers LaserStream. -See [Enhanced WebSockets](/enhanced-websockets). +See [Enhanced WebSockets](/websockets/overview). ### Error Codes @@ -272,7 +272,7 @@ A webhook is an HTTP POST request sent by a server to a receiver URL when a subs ### WebSocket (WSS) -A WebSocket is a persistent bidirectional TCP connection upgraded from HTTP, used for push-based streaming of Solana data without repeated HTTP requests. WSS (WebSocket Secure) is the same protocol running over TLS, and is the variant used for production Solana connections. Helius's standard and [Enhanced WebSockets](/enhanced-websockets) both use WSS. +A WebSocket is a persistent bidirectional TCP connection upgraded from HTTP, used for push-based streaming of Solana data without repeated HTTP requests. WSS (WebSocket Secure) is the same protocol running over TLS, and is the variant used for production Solana connections. Helius's standard and [Enhanced WebSockets](/websockets/overview) both use WSS. --- diff --git a/grpc.mdx b/grpc.mdx deleted file mode 100644 index 2d1a7dfd..00000000 --- a/grpc.mdx +++ /dev/null @@ -1,278 +0,0 @@ ---- -title: "Solana Yellowstone gRPC: Real-Time Data Streaming" -sidebarTitle: Overview -description: "High-performance, real-time Solana blockchain data streaming using gRPC protocol with advanced filtering and ultra-low latency delivery for developers." ---- - -## What is Yellowstone gRPC? - -Yellowstone gRPC provides **ultra-low latency streaming** of Solana blockchain data by tapping directly into Solana leaders to receive shreds as they're produced. This delivers real-time data to your application with minimal delay. - - - - Binary protocol with efficient serialization for maximum throughput and minimal bandwidth usage - - - Bidirectional streaming with immediate subscription creation and cancellation - - - Precisely control what data you receive with account, transaction, and program filters - - - Subscribe to accounts, transactions, slots, blocks, and entries in a single stream - - - -## Stream Types - - - - **Monitor account changes in real-time** - - Track balance updates, data modifications, ownership changes, and account creation/deletion events with precise filtering options. - - - Learn how to stream account updates with filtering examples - - - - - **Stream transaction data and execution results** - - Receive transaction signatures, execution status, program interactions, and token balance changes as they happen. - - - Monitor transactions with program filtering and execution details - - - - - **Track network consensus and block production** - - Monitor slot updates, block creation, and network state changes across different commitment levels. - - - Stream slots and blocks with transaction details - - - - - **Low-level blockchain entry monitoring** - - Access fundamental execution units containing transaction batches and their results. - - - Stream block entries with transaction batches - - - - -## How to Access Yellowstone gRPC - -Choose the option that best fits your needs: - -### LaserStream - -[LaserStream](/laserstream/) is a multi-tenant, highly available gRPC service with automatic failover and [24-hour historical replay capabilities](/laserstream/historical-replay ). Ideal for most production applications. - - -Interested in trying LaserStream? [Apply for a 2-day trial](https://www.helius.dev/laserstream-contact); we review every application. - - -### Dedicated Nodes - -[Dedicated Nodes](/dedicated-nodes/) offer an exclusive gRPC endpoint with guaranteed resource isolation. Best for specialized requirements and advanced operators. - -### Compare gRPC Options - -Need help deciding? Read our [gRPC comparison guide](/laserstream/laserstream-vs-dedicated-nodes) to determine whether LaserStream or dedicated nodes is the best option for your use case. - -## Quickstart - -Ready to start streaming? - -Start by reading our comprehensive setup guide, or request a free LaserStream trial: - - - - Covers installation, authentication, and configuring your first stream - - - Apply for a 2-day LaserStream trial before upgrading or buying a dedicated node - - - -## Subscription Request Structure - -Every gRPC subscription requires a properly structured request. Here's how to build one: - -### Core Parameters - - - **Commitment level for data consistency** - - - `processed` - Transaction processed by the node - - `confirmed` - Transaction confirmed by cluster - - `finalized` - Transaction finalized by cluster - - - - **Keep connection alive** - - Set to `true` to receive pong messages every 15 seconds, preventing connection timeouts from load balancers or proxies. - - - - **Optimize data transfer** - - Request specific byte ranges from account data: - ```json - [ - { "offset": 0, "length": 100 }, - { "offset": 200, "length": 50 } - ] - ``` - - -### Filter Configuration - - - - Array of account public keys to monitor (logical OR) - - - - Array of owner public keys to monitor (logical OR) - - - - DataSize and Memcmp filters (logical AND): - ```json - [ - { "dataSize": 165 }, - { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } } - ] - ``` - - - - When multiple filter types are used, they operate as logical AND. Within arrays, values operate as logical OR. - - - - - - Include/exclude vote transactions - - - - Include/exclude failed transactions - - - - Monitor specific transaction signature - - - - Include transactions involving any of these accounts (logical OR) - - - - Exclude transactions involving any of these accounts - - - - Include transactions involving all of these accounts (logical AND) - - - - - - Filter transactions and accounts within blocks - - - - Include all transactions within the block - - - - Include all account updates within the block - - - - Include all entries within the block - - - - - - When `true`, only receive slot updates for the specified commitment level. When `false`, receive updates for all commitment levels. - - - ---- - -## Example: Basic Transaction Monitoring - -Here's a complete example to get you started: - -```typescript -import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc"; - -const client = new Client("your-grpc-endpoint", "your-api-token", { - "grpc.max_receive_message_length": 64 * 1024 * 1024 -}); - -const stream = await client.subscribe(); - -// Handle incoming data -stream.on("data", (data) => { - if (data.transaction) { - console.log(`Transaction: ${data.transaction.signature}`); - console.log(`Success: ${!data.transaction.meta?.err}`); - } -}); - -// Subscribe to transactions with complete request structure -const subscribeRequest: SubscribeRequest = { - transactions: { - client: { - accountInclude: [ - "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program - "11111111111111111111111111111111" // System Program - ], - accountExclude: [], - accountRequired: [], - vote: false, - failed: false - } - }, - commitment: CommitmentLevel.CONFIRMED, - ping: { id: 1 } -}; - -stream.write(subscribeRequest); -``` - - -This is a basic example. For production use, implement proper error handling, reconnection logic, and data processing. See our detailed guides for complete implementations. - - ---- - -## Ready to Start? - - - - Installation, authentication, and first stream implementation - - - Real-world example: monitor Pump AMM transactions - - - -## Advanced Resources - -- **[Yellowstone gRPC Source Repository](https://github.com/rpcpool/yellowstone-grpc)** - Complete protobuf definitions and examples -- **[Discord Community](https://discord.com/invite/6GXdee3gBj)** - Get help from developers and Helius team -- **[LaserStream Documentation](/laserstream/)** - Enhanced gRPC service with additional features diff --git a/grpc/quickstart.mdx b/grpc/quickstart.mdx deleted file mode 100644 index e0f927f9..00000000 --- a/grpc/quickstart.mdx +++ /dev/null @@ -1,595 +0,0 @@ ---- -title: "Solana Yellowstone gRPC Quickstart: Real-Time Data Streaming" -sidebarTitle: "Quickstart" -description: "Complete setup guide for streaming real-time Solana data with Yellowstone gRPC. From installation to your first working stream with auto-reconnection." ---- - -## What You'll Build - -By the end of this guide, you'll have a working gRPC stream that monitors Solana account updates in real-time with automatic reconnection and error handling. - - - - Select how you want to access Yellowstone gRPC: - - - - **Recommended for most users** - - - Multi-tenant, highly available - - Automatic failover and backfill - - Quick setup with API key - - Developer+ (devnet), Business+ (mainnet) - - [Get LaserStream Access →](/laserstream/) - - - **For high-volume or custom needs** - - - Exclusive gRPC endpoint - - Guaranteed resources - - [Get Dedicated Node →](/dedicated-nodes/) - - - - - - Create a new project and install dependencies: - - - - ```bash - mkdir solana-grpc-stream - cd solana-grpc-stream - npm init -y - npm install @triton-one/yellowstone-grpc bs58 - npm install typescript ts-node @types/node --save-dev - npx tsc --init - ``` - - - - ```bash - cargo new solana-grpc-stream - cd solana-grpc-stream - ``` - - Add to `Cargo.toml`: - ```toml - [dependencies] - yellowstone-grpc-client = "1.13.0" - yellowstone-grpc-proto = "1.13.0" - tokio = { version = "1.0", features = ["full"] } - anyhow = "1.0" - futures = "0.3" - tonic = "0.10" - ``` - - - - ```bash - mkdir solana-grpc-stream - cd solana-grpc-stream - go mod init solana-grpc-stream - go get github.com/rpcpool/yellowstone-grpc/examples/golang@latest - go get google.golang.org/grpc@v1.67.1 - ``` - - - - - - Obtain your gRPC endpoint and authentication: - - - - 1. Sign up for Developer+ plan (devnet) or Business+ plan (mainnet) at [dashboard.helius.dev](https://dashboard.helius.dev) - 2. Get your API key from the dashboard - 3. Choose your regional endpoint: - - **Mainnet Endpoints:** - - US East: `https://laserstream-mainnet-ewr.helius-rpc.com` - - US West: `https://laserstream-mainnet-slc.helius-rpc.com` - - Europe: `https://laserstream-mainnet-fra.helius-rpc.com` - - Asia: `https://laserstream-mainnet-tyo.helius-rpc.com` - - **Devnet:** `https://laserstream-devnet-ewr.helius-rpc.com` - - - - 1. Order a dedicated node from [dashboard.helius.dev](https://dashboard.helius.dev/dedicated-nodes) - 2. Once provisioned, you'll receive: - - Your gRPC endpoint (typically `your-node.rpc.helius.dev:2053`) - - Your authentication token - - - - - - Create a robust stream manager with the following complete example: - - - - Create `stream-manager.ts`: - - ```typescript - import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc"; - import * as bs58 from 'bs58'; - - export class StreamManager { - private client: Client; - private stream: any; - private isConnected = false; - private reconnectAttempts = 0; - private readonly maxReconnectAttempts = 10; - private readonly baseReconnectDelay = 1000; // 1 second - - constructor( - private endpoint: string, - private apiKey: string, - private onData: (data: any) => void, - private onError?: (error: any) => void - ) { - this.client = new Client(endpoint, apiKey, { - "grpc.max_receive_message_length": 64 * 1024 * 1024 - }); - } - - async connect(subscribeRequest: SubscribeRequest): Promise { - try { - console.log(`Connecting to ${this.endpoint}...`); - this.stream = await this.client.subscribe(); - this.isConnected = true; - this.reconnectAttempts = 0; - - // Set up event handlers - this.stream.on("data", this.handleData.bind(this)); - this.stream.on("error", this.handleStreamError.bind(this)); - this.stream.on("end", () => this.handleDisconnect(subscribeRequest)); - this.stream.on("close", () => this.handleDisconnect(subscribeRequest)); - - // Send subscription request - await this.writeRequest(subscribeRequest); - - // Start keepalive - this.startKeepalive(); - - console.log("✅ Connected and subscribed successfully"); - } catch (error) { - console.error("Connection failed:", error); - await this.reconnect(subscribeRequest); - } - } - - private async writeRequest(request: SubscribeRequest): Promise { - return new Promise((resolve, reject) => { - this.stream.write(request, (err: any) => { - if (err) reject(err); - else resolve(); - }); - }); - } - - private handleData(data: any): void { - try { - // Convert buffers to readable format - const processedData = this.processBuffers(data); - this.onData(processedData); - } catch (error) { - console.error("Error processing data:", error); - } - } - - private processBuffers(obj: any): any { - if (!obj) return obj; - - if (Buffer.isBuffer(obj) || obj instanceof Uint8Array) { - return bs58.default.encode(obj); - } - - if (Array.isArray(obj)) { - return obj.map(item => this.processBuffers(item)); - } - - if (typeof obj === 'object') { - return Object.fromEntries( - Object.entries(obj).map(([k, v]) => [k, this.processBuffers(v)]) - ); - } - - return obj; - } - - private handleStreamError(error: any): void { - console.error("Stream error:", error); - this.isConnected = false; - if (this.onError) this.onError(error); - } - - private async handleDisconnect(subscribeRequest: SubscribeRequest): Promise { - if (this.isConnected) { - console.log("Stream disconnected, attempting to reconnect..."); - this.isConnected = false; - await this.reconnect(subscribeRequest); - } - } - - private async reconnect(subscribeRequest: SubscribeRequest): Promise { - if (this.reconnectAttempts >= this.maxReconnectAttempts) { - console.error("Max reconnection attempts reached. Giving up."); - return; - } - - this.reconnectAttempts++; - const delay = this.baseReconnectDelay * Math.pow(2, Math.min(this.reconnectAttempts - 1, 5)); - - console.log(`Reconnect attempt ${this.reconnectAttempts}/${this.maxReconnectAttempts} in ${delay}ms...`); - - setTimeout(() => { - this.connect(subscribeRequest).catch(console.error); - }, delay); - } - - private startKeepalive(): void { - setInterval(() => { - if (this.isConnected) { - const pingRequest: SubscribeRequest = { - ping: { id: Date.now() }, - accounts: {}, - accountsDataSlice: [], - transactions: {}, - slots: {}, - blocks: {}, - blocksMeta: {}, - entry: {}, - transactionsStatus: {} - }; - - this.writeRequest(pingRequest).catch(console.error); - } - }, 30000); // 30 seconds - } - - disconnect(): void { - if (this.stream) { - this.stream.end(); - } - this.client.close(); - this.isConnected = false; - } - } - ``` - - Create `main.ts`: - - ```typescript - import { StreamManager } from './stream-manager'; - import { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc"; - - // Configuration - const ENDPOINT = "your-grpc-endpoint"; // LaserStream or Dedicated Node endpoint - const API_KEY = "YOUR_API_KEY"; - - // USDC Token Mint for example - const USDC_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"; - - async function main() { - const streamManager = new StreamManager( - ENDPOINT, - API_KEY, - handleAccountUpdate, - handleError - ); - - // Subscribe to USDC mint account updates - const subscribeRequest: SubscribeRequest = { - accounts: { - accountSubscribe: { - account: [USDC_MINT], - owner: [], - filters: [] - } - }, - accountsDataSlice: [], - commitment: CommitmentLevel.CONFIRMED, - slots: {}, - transactions: {}, - transactionsStatus: {}, - blocks: {}, - blocksMeta: {}, - entry: {} - }; - - console.log("🚀 Starting USDC mint account monitoring..."); - await streamManager.connect(subscribeRequest); - - // Handle graceful shutdown - process.on('SIGINT', () => { - console.log('\n🛑 Shutting down...'); - streamManager.disconnect(); - process.exit(0); - }); - } - - function handleAccountUpdate(data: any): void { - if (data.account) { - const account = data.account.account; - console.log('\n📊 Account Update:'); - console.log(` Account: ${account.pubkey}`); - console.log(` Owner: ${account.owner}`); - console.log(` Lamports: ${account.lamports}`); - console.log(` Data Length: ${account.data?.length || 0} bytes`); - console.log(` Slot: ${data.account.slot}`); - console.log(` Timestamp: ${new Date().toISOString()}`); - } - - if (data.pong) { - console.log(`💓 Keepalive pong received (id: ${data.pong.id})`); - } - } - - function handleError(error: any): void { - console.error('❌ Stream error:', error.message); - } - - main().catch(console.error); - ``` - - Run your stream: - ```bash - npx ts-node main.ts - ``` - - - - Create `src/main.rs`: - - ```rust - use yellowstone_grpc_client::GeyserGrpcClient; - use yellowstone_grpc_proto::prelude::*; - use futures::StreamExt; - use std::collections::HashMap; - use tokio::time::{sleep, Duration}; - - #[tokio::main] - async fn main() -> anyhow::Result<()> { - let endpoint = "your-grpc-endpoint"; // Replace with your endpoint - let token = Some("YOUR_API_KEY".to_string()); // Replace with your API key - - let mut client = GeyserGrpcClient::connect(endpoint, token, None).await?; - - // USDC mint account - let usdc_mint = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"; - - let mut accounts = HashMap::new(); - accounts.insert( - "usdc_mint".to_string(), - SubscribeRequestFilterAccounts { - account: vec![usdc_mint.to_string()], - owner: vec![], - filters: vec![], - } - ); - - let mut stream = client.subscribe_once( - accounts, - HashMap::new(), // slots - HashMap::new(), // transactions - HashMap::new(), // blocks - HashMap::new(), // blocks_meta - None, // commitment - HashMap::new(), // accounts_data_slice - Some(CommitmentLevel::Confirmed), - HashMap::new(), // entry - ).await?; - - println!("🚀 Connected! Monitoring USDC mint account..."); - - while let Some(message) = stream.next().await { - match message { - Ok(msg) => { - if let Some(account) = msg.update_oneof { - match account { - subscribe_update::UpdateOneof::Account(account_update) => { - println!("\n📊 Account Update:"); - println!(" Account: {}", account_update.account.as_ref() - .map(|a| &a.pubkey).unwrap_or(&"N/A".to_string())); - println!(" Lamports: {}", account_update.account.as_ref() - .map(|a| a.lamports).unwrap_or(0)); - println!(" Slot: {}", account_update.slot); - } - _ => {} // Handle other update types as needed - } - } - } - Err(error) => { - eprintln!("❌ Stream error: {}", error); - sleep(Duration::from_secs(1)).await; - } - } - } - - Ok(()) - } - ``` - - Run your stream: - ```bash - cargo run - ``` - - - - Create `main.go`: - - ```go - package main - - import ( - "context" - "fmt" - "log" - "time" - - "github.com/rpcpool/yellowstone-grpc/examples/golang/pkg/grpc" - pb "github.com/rpcpool/yellowstone-grpc/examples/golang/pkg/proto" - "google.golang.org/grpc/metadata" - ) - - func main() { - endpoint := "your-grpc-endpoint" // Replace with your endpoint - apiKey := "YOUR_API_KEY" // Replace with your API key - - client, err := grpc.NewGrpcConnection(context.Background(), endpoint) - if err != nil { - log.Fatalf("Failed to connect: %v", err) - } - defer client.Close() - - // Add authentication - ctx := metadata.AppendToOutgoingContext(context.Background(), "x-token", apiKey) - - // USDC mint account - usdcMint := "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" - - stream, err := client.Subscribe(ctx) - if err != nil { - log.Fatalf("Failed to subscribe: %v", err) - } - - // Send subscription request - request := &pb.SubscribeRequest{ - Accounts: map[string]*pb.SubscribeRequestFilterAccounts{ - "usdc_mint": { - Account: []string{usdcMint}, - Owner: []string{}, - Filters: []*pb.SubscribeRequestFilterAccountsFilter{}, - }, - }, - Commitment: pb.CommitmentLevel_CONFIRMED, - } - - if err := stream.Send(request); err != nil { - log.Fatalf("Failed to send request: %v", err) - } - - fmt.Println("🚀 Connected! Monitoring USDC mint account...") - - for { - response, err := stream.Recv() - if err != nil { - log.Printf("❌ Stream error: %v", err) - time.Sleep(time.Second) - continue - } - - if account := response.GetAccount(); account != nil { - fmt.Printf("\n📊 Account Update:\n") - fmt.Printf(" Account: %s\n", account.Account.Pubkey) - fmt.Printf(" Lamports: %d\n", account.Account.Lamports) - fmt.Printf(" Slot: %d\n", account.Slot) - fmt.Printf(" Timestamp: %s\n", time.Now().Format(time.RFC3339)) - } - } - } - ``` - - Run your stream: - ```bash - go run main.go - ``` - - - - - - Run your application and verify it's working: - - 1. **Start your stream** using the command for your language - 2. **Look for connection confirmation** in the console - 3. **Wait for account updates** - you should see periodic updates to the USDC mint account - 4. **Test reconnection** by temporarily disconnecting your internet - 5. **Verify keepalive** by watching for pong messages every 30 seconds - - **Expected output:** - ``` - 🚀 Connected! Monitoring USDC mint account... - ✅ Connected and subscribed successfully - 💓 Keepalive pong received (id: 1703123456789) - - 📊 Account Update: - Account: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v - Owner: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb - Lamports: 1461600 - Data Length: 82 bytes - Slot: 275123456 - Timestamp: 2024-01-15T10:30:45.123Z - ``` - - - -## What's Next? - -Now that you have a working gRPC stream, explore these monitoring guides: - - - - Advanced account filtering and data slicing techniques - - - Stream transactions with program filtering and execution details - - - Monitor network consensus and block production - - - Real-world example: monitor DeFi protocol data - - - -## Troubleshooting - - - **Symptoms:** Connection timeouts, authentication errors - - **Solutions:** - - Verify your endpoint URL and API key - - Check if your plan includes gRPC access - - Ensure you're using the correct port (typically 2053 for Dedicated Nodes) - - For LaserStream devnet, you need at least a Developer plan. For mainnet, you need at least a Business plan - - - - **Symptoms:** Stream connects but no account updates appear - - **Solutions:** - - USDC mint updates are infrequent - try monitoring a more active account - - Check your commitment level (try `PROCESSED` for more frequent updates) - - Verify your account filter configuration - - Monitor a token account instead of the mint for more activity - - - - **Symptoms:** Frequent disconnections, reconnection loops - - **Solutions:** - - Implement exponential backoff (included in examples above) - - Check network stability - - Ensure keepalive pings are working (every 30 seconds) - - Monitor server-side rate limits - - -## Best Practices - - -**Production Readiness Checklist:** - -- ✅ Implement exponential backoff for reconnections -- ✅ Use keepalive pings every 30 seconds -- ✅ Handle all stream events (data, error, end, close) -- ✅ Process data asynchronously to avoid blocking -- ✅ Monitor connection health and alert on failures -- ✅ Use appropriate commitment levels for your use case -- ✅ Filter data as specifically as possible to reduce bandwidth - diff --git a/index.mdx b/index.mdx index fb69ab31..3f0d6611 100644 --- a/index.mdx +++ b/index.mdx @@ -79,10 +79,10 @@ Want to try Shred Delivery? [Apply for a 2-day trial](https://www.helius.dev/shr Ultra-low latency data streaming. Get blockchain data faster than anyone else. - + Advanced WebSocket APIs with powerful filtering and granular subscription controls. - + Battle-tested WSS connections for account and transaction monitoring. diff --git a/grpc/account-monitoring.mdx b/laserstream/guides/account-monitoring.mdx similarity index 97% rename from grpc/account-monitoring.mdx rename to laserstream/guides/account-monitoring.mdx index 70696042..cd62350e 100644 --- a/grpc/account-monitoring.mdx +++ b/laserstream/guides/account-monitoring.mdx @@ -9,7 +9,7 @@ description: Monitor Solana account changes in real-time with advanced filtering Account monitoring lets you track balance changes, data modifications, ownership transfers, and account creation/deletion events across Solana in real-time. This guide covers filtering strategies and implementation patterns for different use cases. -**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/grpc/quickstart) and have a working stream setup. +**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/laserstream/migration-from-yellowstone) and have a working stream setup. ## Account Filtering Options @@ -390,10 +390,10 @@ Common account monitoring errors and solutions: ## Next Steps - + Learn to correlate account changes with transaction data - + Real-world example: monitoring DeFi protocols diff --git a/grpc/entry-monitoring.mdx b/laserstream/guides/entry-monitoring.mdx similarity index 98% rename from grpc/entry-monitoring.mdx rename to laserstream/guides/entry-monitoring.mdx index f12cd80c..c4a896e4 100644 --- a/grpc/entry-monitoring.mdx +++ b/laserstream/guides/entry-monitoring.mdx @@ -9,7 +9,7 @@ description: Monitor low-level Solana blockchain entries, transaction batches, a Entry monitoring provides access to the fundamental execution units of the Solana blockchain. Entries contain batches of transactions and their execution results, offering the lowest-level view of blockchain activity. -**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/grpc/quickstart) and have a working stream setup. +**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/laserstream/migration-from-yellowstone) and have a working stream setup. @@ -398,10 +398,10 @@ function handleFilteredEntries(data: any): void { ## Next Steps - + Advanced real-world example: Stream Pump AMM data - + Go back to transaction monitoring for practical applications diff --git a/grpc/slot-and-block-monitoring.mdx b/laserstream/guides/slot-and-block-monitoring.mdx similarity index 97% rename from grpc/slot-and-block-monitoring.mdx rename to laserstream/guides/slot-and-block-monitoring.mdx index 07b88ccc..4cbb7b98 100644 --- a/grpc/slot-and-block-monitoring.mdx +++ b/laserstream/guides/slot-and-block-monitoring.mdx @@ -9,7 +9,7 @@ description: Monitor Solana network consensus, block production, and network sta Slot and block monitoring provides insights into Solana's network consensus, block production timing, and network health. Track slot progression, block finalization, and network performance metrics in real-time. -**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/grpc/quickstart) and have a working stream setup. +**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/laserstream/migration-from-yellowstone) and have a working stream setup. ## Monitoring Types @@ -494,10 +494,10 @@ Common issues and solutions: ## Next Steps - + Learn about low-level blockchain entry monitoring - + Real-world example: monitoring Pump AMM data \ No newline at end of file diff --git a/grpc/stream-pump-amm-data.mdx b/laserstream/guides/stream-pump-amm-data.mdx similarity index 98% rename from grpc/stream-pump-amm-data.mdx rename to laserstream/guides/stream-pump-amm-data.mdx index c992e389..83d3bc8f 100644 --- a/grpc/stream-pump-amm-data.mdx +++ b/laserstream/guides/stream-pump-amm-data.mdx @@ -9,7 +9,7 @@ description: "Complete real-world example of monitoring Solana Pump.fun AMM data This comprehensive example demonstrates how to build a production-ready Pump.fun AMM monitoring system using Yellowstone gRPC. You'll learn to track token launches, price movements, trading activity, and market analytics in real-time. -**Prerequisites:** This guide builds on concepts from [Account Monitoring](/grpc/account-monitoring), [Transaction Monitoring](/grpc/transaction-monitoring), and assumes familiarity with Pump.fun's architecture. +**Prerequisites:** This guide builds on concepts from [Account Monitoring](/laserstream/guides/account-monitoring), [Transaction Monitoring](/laserstream/guides/transaction-monitoring), and assumes familiarity with Pump.fun's architecture. ## What We'll Build @@ -471,7 +471,7 @@ The key to success with gRPC monitoring is: With these foundations, you can build sophisticated monitoring and analytics systems for any Solana application. - + Return to the quickstart to begin your own project diff --git a/grpc/transaction-monitoring.mdx b/laserstream/guides/transaction-monitoring.mdx similarity index 97% rename from grpc/transaction-monitoring.mdx rename to laserstream/guides/transaction-monitoring.mdx index 64583c8e..1437d231 100644 --- a/grpc/transaction-monitoring.mdx +++ b/laserstream/guides/transaction-monitoring.mdx @@ -9,7 +9,7 @@ description: Stream Solana transactions in real-time with program filtering, exe Transaction monitoring enables you to track transaction execution, success/failure status, program interactions, and token balance changes across Solana in real-time. This guide covers filtering strategies and practical implementations for different transaction monitoring use cases. -**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/grpc/quickstart) and have a working stream setup. +**Prerequisites:** This guide assumes you've completed the [Yellowstone gRPC Quickstart](/laserstream/migration-from-yellowstone) and have a working stream setup. ## Transaction Filtering Options @@ -436,10 +436,10 @@ Common transaction monitoring errors and solutions: ## Next Steps - + Learn to monitor network consensus and block production - + Real-world example: monitoring Pump AMM data diff --git a/laserstream/migration-from-yellowstone.mdx b/laserstream/migration-from-yellowstone.mdx new file mode 100644 index 00000000..aaed9f5c --- /dev/null +++ b/laserstream/migration-from-yellowstone.mdx @@ -0,0 +1,200 @@ +--- +title: "Migrate from Yellowstone gRPC" +sidebarTitle: "Migrate from Yellowstone" +description: "LaserStream is wire-compatible with Yellowstone gRPC. Switch by changing your endpoint URL — the rest of your code stays." +--- + +LaserStream speaks the Yellowstone gRPC protocol. If you have an existing Yellowstone client, the migration is one URL change. + +## Why migrate + +Yellowstone gRPC running against a Dedicated Node gives you raw access — and raw responsibility for everything that goes wrong with it. LaserStream wraps the same protocol with managed infrastructure: + +- **24-hour historical replay** — backfill missed slots automatically. +- **Auto-reconnection** in the SDK with exponential backoff and subscription restoration. +- **Multi-region failover** across 9 endpoints worldwide; client SDKs can route around regional outages. +- **No node management** — no provisioning, patching, or monitoring a single point of failure. +- **Integrated billing** — same credit pool as the rest of your Helius usage. + +For the full comparison and when raw nodes still make sense, see [LaserStream vs Dedicated Nodes](/laserstream/laserstream-vs-dedicated-nodes). + +## What stays the same + +- The wire protocol — `Subscribe`, `SubscribeRequest`, every filter and field. +- The `@triton-one/yellowstone-grpc` client (TypeScript/Node). +- The `yellowstone-grpc-client` and `yellowstone-grpc-proto` crates (Rust). +- All filter shapes: `accounts`, `transactions`, `slots`, `blocks`, `entry`, `accounts_data_slice`, `commitment`. + +## What changes + +### 1. Endpoint URL + +Replace your Yellowstone endpoint with one of LaserStream's regional Mainnet endpoints. Pick the closest region to your service: + +| Region | Endpoint | +| --- | --- | +| US East | `https://laserstream-mainnet-ewr.helius-rpc.com` | +| US West | `https://laserstream-mainnet-slc.helius-rpc.com` | +| Europe | `https://laserstream-mainnet-fra.helius-rpc.com` | +| Asia | `https://laserstream-mainnet-tyo.helius-rpc.com` | + +Devnet: `https://laserstream-devnet-ewr.helius-rpc.com`. + +For the full regional list (9 endpoints worldwide), see the [LaserStream overview](/laserstream#mainnet-endpoints). + +### 2. Authentication token + +Your Helius API key from [dashboard.helius.dev](https://dashboard.helius.dev) becomes the gRPC token. No additional credential setup. + +```typescript +// Before — Yellowstone on a Dedicated Node +const client = new Client( + "your-node.rpc.helius.dev:2053", + "your-node-token", + { "grpc.max_receive_message_length": 64 * 1024 * 1024 } +); + +// After — LaserStream +const client = new Client( + "https://laserstream-mainnet-ewr.helius-rpc.com", + "YOUR_HELIUS_API_KEY", + { "grpc.max_receive_message_length": 64 * 1024 * 1024 } +); +``` + +### 3. Optional: switch to the Helius LaserStream SDK + +The [`helius-laserstream`](/laserstream/clients) SDK wraps Yellowstone with built-in reconnection and replay. The API is similar but optimized for the managed service: + +```typescript +import { subscribe, LaserstreamConfig } from "helius-laserstream"; + +const config: LaserstreamConfig = { + apiKey: "YOUR_HELIUS_API_KEY", + endpoint: "https://laserstream-mainnet-ewr.helius-rpc.com", +}; + +await subscribe(config, subscribeRequest, handleData, handleError); +``` + +You can keep using the raw Yellowstone client if you've already built reconnection logic — it works against LaserStream unchanged. + +## Plan requirements + +- **Mainnet:** Business plan or higher. +- **Devnet:** Developer plan or higher. +- **LaserStream Preprocessed Transactions:** Professional plan or higher. + +See [billing/plans](/billing/plans) for the full plan matrix. + +## Subscription request structure + +The `SubscribeRequest` shape is identical to Yellowstone. Filters operate as logical AND across types and logical OR within an array. + +### Account filters + + + Public keys to monitor. + + + + Owner public keys (e.g. SPL Token Program for all token accounts). + + + + `dataSize` and `memcmp` filters: + ```json + [ + { "dataSize": 165 }, + { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } } + ] + ``` + + +### Transaction filters + +Include or exclude vote transactions. + +Include or exclude failed transactions. + + + Include transactions involving any of these accounts (logical OR). + + + + Exclude transactions involving any of these accounts. + + + + Include only transactions involving all of these accounts (logical AND). + + +For the complete filter reference (slots, blocks, entries, data-slicing), see [`api-reference/laserstream/grpc/subscribe`](/api-reference/laserstream/grpc/subscribe). + +## Quick example: account subscription + +```typescript +import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc"; + +const client = new Client( + "https://laserstream-mainnet-ewr.helius-rpc.com", + "YOUR_HELIUS_API_KEY", + { "grpc.max_receive_message_length": 64 * 1024 * 1024 } +); + +const stream = await client.subscribe(); + +stream.on("data", (data) => { + if (data.account) { + console.log("account update", data.account.account.pubkey); + } +}); + +const request: SubscribeRequest = { + accounts: { + usdc: { + account: ["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"], + owner: [], + filters: [], + }, + }, + accountsDataSlice: [], + commitment: CommitmentLevel.CONFIRMED, + slots: {}, + transactions: {}, + transactionsStatus: {}, + blocks: {}, + blocksMeta: {}, + entry: {}, +}; + +stream.write(request); +``` + +This is the same client and the same request shape you used with Yellowstone. Only the endpoint URL changed. + +## Per-stream guides + +The Yellowstone monitoring guides moved under LaserStream's namespace and apply unchanged: + + + + Filter account updates by owner, data shape, and offset. + + + Stream transactions filtered by program, signer, or signature. + + + Track network consensus and block production. + + + Low-level entry stream for shred-aware indexers. + + + +## Next steps + +- [LaserStream overview](/laserstream) — full feature set, regional endpoints, SDK list. +- [Historical replay](/laserstream/historical-replay) — backfill up to 24 hours of missed data after a reconnect. +- [Preprocessed transactions](/laserstream/preprocessed-transactions) — sub-processed-commitment latency for trading. +- [Streaming chooser](/streaming/overview) — when WebSockets, Webhooks, or Shreds fit better than gRPC. diff --git a/laserstream/websocket.mdx b/laserstream/websocket.mdx deleted file mode 100644 index 75890384..00000000 --- a/laserstream/websocket.mdx +++ /dev/null @@ -1,489 +0,0 @@ ---- -title: "LaserStream WebSocket: Real-Time Data Streaming" -"og:title": "LaserStream WebSocket - Helius" -sidebarTitle: "WebSocket" -description: "Stream real-time Solana blockchain data with LaserStream's enhanced WebSocket API. Faster response times and advanced filtering for live applications." -"og:description": "Stream real-time Solana data with LaserStream's enhanced WebSocket API. Faster response times and advanced filtering" ---- - - - -### Overview - -LaserStream offers **Enhanced WebSockets** (distinct from standard Solana WebSockets), delivering **faster response times** and **additional filters**. Current methods: - -* `transactionSubscribe` -* `accountSubscribe` - - -WebSockets have a 10-minute inactivity timer. Use health checks or send pings every minute to keep the connection alive. - - - -**Looking for Atlas WebSockets?**\ -If you need information on Atlas Enhanced WebSockets, please see our [Disclaimer](#disclaimer-transition-from-atlas-enhanced-websockets). - - -*** - -### Quickstart - -#### 1. Create a Basic WebSocket Client - -```bash -mkdir laserstream-enhanced-ws-demo -cd laserstream-enhanced-ws-demo -npm init -y -npm install ws -``` - -_(You only need the `ws` library for a Node.js WebSocket client. No additional libraries are strictly required.)_ - -#### 2. Obtain Your API Key - -Generate a key from the [Helius Dashboard](https://dashboard.helius.dev/). - -#### 3. Minimal Code Example - -Create an **`index.js`** file: - -```js -// index.js - -const WebSocket = require('ws'); - -// 1. Use the LaserStream Enhanced WebSockets endpoint (Mainnet example): -const WS_URL = `laserstream-ws-url`; - -const ws = new WebSocket(WS_URL); - -// 2. Define a transactionSubscribe request for real-time token transactions -// Replace "accountInclude" with any accounts you want to track -function buildSubscriptionRequest() { - return { - jsonrpc: "2.0", - id: 1, - method: "transactionSubscribe", - params: [ - { - vote: false, - failed: false, - accountInclude: ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"], - accountExclude: [], - accountRequired: [] - // You can add "signature" or "fromSlot" if needed - }, - { - commitment: "confirmed", - encoding: "jsonParsed", - transactionDetails: "full", - showRewards: false, - maxSupportedTransactionVersion: 0 - // fromSlot: 224339000 // Uncomment for replay from a specific slot - } - ] - }; -} - -// 3. Optional: Keep the connection alive (ping every 30s) -function startPing(ws) { - setInterval(() => { - if (ws.readyState === WebSocket.OPEN) { - ws.ping(); - console.log("Ping sent"); - } - }, 30000); -} - -// 4. Set up WebSocket event handlers -ws.on('open', () => { - console.log("Enhanced WebSocket is open"); - // Send the subscription request - const request = buildSubscriptionRequest(); - ws.send(JSON.stringify(request)); - startPing(ws); -}); - -ws.on('message', (data) => { - try { - const msg = JSON.parse(data); - console.log("Received:", msg); - } catch (e) { - console.error("Failed to parse JSON:", e); - } -}); - -ws.on('error', (err) => { - console.error("WebSocket error:", err); -}); - -ws.on('close', () => { - console.log("WebSocket is closed"); -}); -``` - -#### **4. Replace Your Endpoint and API Key** - -Replace the placeholder **`laserstream-ws-url`** with your actual WebSocket URL, and include your `api-key` as follows: - -```js -const WS_URL = `wss:///?api-key=`; -``` - -Make sure to use the key you obtained from the [Helius Dashboard](https://dashboard.helius.dev). - -#### 5. Run and View Results - -```bash -node index.js -``` - -You'll start receiving transaction events whenever **confirmed** token transactions involve `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`. Expect JSON objects showing transaction details and slots. - -*** - -### Transaction Subscribe - -The transactionSubscribe websocket method enables real-time transaction events. To use it, provide a `TransactionSubscribeFilter` and optionally include `TransactionSubscribeOptions` for further customization. - -#### **TransactionSubscribeFilter** - -`vote`: A boolean flag to include/exclude vote-related transactions. - -`failed`: A boolean flag to include/exclude transactions that failed. - -`signature`: Filters updates to a specific transaction based on its signature. - -`accountInclude`: A list of accounts for which you want to receive transaction updates. This means that only one of the accounts must be included in the transaction updates (e.g., Account 1 OR Account 2). - -`accountExclude`: A list of accounts you want to exclude from transaction updates. - -`accountRequired`: Transactions must involve these specified accounts to be included in updates. This means that all of the accounts must be included in the transaction updates (e.g., Account 1 AND Account 2). - - -You can include up to 50,000 addresses in the `accountInclude`, `accountExclude` and `accountRequired` arrays. - - -#### **TransactionSubscribeOptions (Optional)** - -`commitment`: Specifies the commitment level for fetching data, dictating at what stage of the transaction lifecycle updates are sent. The possible values are **processed**, **confirmed** and **finalized** - -`encoding`: Sets the encoding format of the returned transaction data. The possible values are **base58**, **base64** and **jsonParsed** - -`transactionDetails` : Determines the level of detail for the returned transaction data. The possible values are **full, signatures, accounts** and **none** - -`showRewards`: A boolean flag indicating if reward data should be included in the transaction updates. - -`maxSupportedTransactionVersion`: Specifies the highest version of transactions you want to receive updates. To get Versioned Transactions, set the value to 1. - -`fromSlot`: Begin the subscription from a specific Solana slot, replaying any relevant transactions from that slot forward until you catch up to real-time data. - - -`maxSupportedTransactionVersion` is required to return the accounts and full-level details of a given transaction (i.e., `transactionDetails: "accounts" | "full"`). - - -#### Transaction Subscribe Example - -
- -Example Payload - -```json -{ - "jsonrpc": "2.0", - "id": 420, - "method": "transactionSubscribe", - "params": [ - { - "vote": false, - "failed": false, - "signature": "2dd5zTLrSs2udfNsegFRCnzSyQcPrM9svX6m1UbEM5bSdXXFj3XpqaodtKarLYFP2mTVUsV27sRDdZCgcKhjeD9S", - "accountInclude": ["pqx3fvvh6b2eZBfLhTtQ5KxzU3CginmgGTmDCjk8TPP"], - "accountExclude": ["FbfwE8ZmVdwUbbEXdq4ofhuUEiAxeSk5kaoYrJJekpnZ"], - "accountRequired": ["As1XYY9RdGkjs62isDhLKG3yxMCMatnbanXrqU85XvXW"] - }, - { - "commitment": "processed", - "encoding": "base64", - "transactionDetails": "full", - "showRewards": true, - "maxSupportedTransactionVersion": 0 - } - ] -} -``` - -
- -
- -Example Notifications - -```json -{ - "jsonrpc": "2.0", - "method": "transactionNotification", - "params": { - "subscription": 4743323479349712, - "result": { - "transaction": { - "transaction": [ - "Ae6zfSExLsJ/E1+q0jI+3ueAtSoW+6HnuDohmuFwagUo2BU4OpkSdUKYNI1dJfMOonWvjaumf4Vv1ghn9f3Avg0BAAEDGycH0OcYRpfnPNuu0DBQxTYPWpmwHdXPjb8y2P200JgK3hGiC2JyC9qjTd2lrug7O4cvSRUVWgwohbbefNgKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0HcpwKokfYDDAJTaF/TWRFWm0Gz5/me17PRnnywHurMBAgIAAQwCAAAAoIYBAAAAAAA=", - "base64" - ], - "meta": { - "err": null, - "status": { - "Ok": null - }, - "fee": 5000, - "preBalances": [ - 28279852264, - 158122684, - 1 - ], - "postBalances": [ - 28279747264, - 158222684, - 1 - ], - "innerInstructions": [], - "logMessages": [ - "Program 11111111111111111111111111111111 invoke [1]", - "Program 11111111111111111111111111111111 success" - ], - "preTokenBalances": [], - "postTokenBalances": [], - "rewards": null, - "loadedAddresses": { - "writable": [], - "readonly": [] - }, - "computeUnitsConsumed": 0 - } - }, - "signature": "5moMXe6VW7L7aQZskcAkKGQ1y19qqUT1teQKBNAAmipzdxdqVLAdG47WrsByFYNJSAGa9TByv15oygnqYvP6Hn2p", - "slot": 224341380, - "transactionIndex": 42 - } - } -} -``` - -
- -
- -Code Example - -In this example, we are subscribing to transactions that contain the Raydium account `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8`. Whenever a transaction occurs that contains `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8`in the `accountKeys` of the transaction, we will receive a websocket notification. - -Based on the subscription options, the transaction notification will be sent at the `processed` commitment level,`jsonParsed`encoding, `full` transaction details, and will show rewards. - -```javascript -const WebSocket = require('ws'); - -// Create a WebSocket connection -const ws = new WebSocket('wss:///?api-key='); - -// Function to send a request to the WebSocket server -function sendRequest(ws) { - const request = { - jsonrpc: "2.0", - id: 420, - method: "transactionSubscribe", - params: [ - { - accountInclude: ["675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"] - }, - { - commitment: "processed", - encoding: "jsonParsed", - transactionDetails: "full", - showRewards: true, - maxSupportedTransactionVersion: 0 - } - ] - }; - ws.send(JSON.stringify(request)); -} - -// Function to send a ping to the WebSocket server -function startPing(ws) { - setInterval(() => { - if (ws.readyState === WebSocket.OPEN) { - ws.ping(); - console.log('Ping sent'); - } - }, 30000); // Ping every 30 seconds -} - -// Define WebSocket event handlers - -ws.on('open', function open() { - console.log('WebSocket is open'); - sendRequest(ws); // Send a request once the WebSocket is open - startPing(ws); // Start sending pings -}); - -ws.on('message', function incoming(data) { - const messageStr = data.toString('utf8'); - try { - const messageObj = JSON.parse(messageStr); - console.log('Received:', messageObj); - } catch (e) { - console.error('Failed to parse JSON:', e); - } -}); - -ws.on('error', function error(err) { - console.error('WebSocket error:', err); -}); - -ws.on('close', function close() { - console.log('WebSocket is closed'); -}); -``` - -
- -*** - -### Account Subscribe - -Solana's Websockets supports a method that allows you to subscribe to an account and receive notifications via the websocket connection whenever there are changes to the lamports or data associated with a matching account public key. This method aligns directly with the Solana [Websocket API specification](/rpc/websocket). - -#### **Parameters** - -`string`: The account public key, sent in base58 format (required). - -`object`: An optional object used to pass additional parameters. - -* `encoding`: Specifies the format for data returned in the AccountNotification. Supported values: **base58**, **base64**, **base64+zstd**, **jsonParsed** (default is **base58**). -* `commitment`: Defines the commitment level for the transaction. Supported values: **finalized**, **confirmed**, **processed** (default is **finalized**). -* `fromSlot`: Replay from this slot, receiving historical changes for the account up to the current slot. - -#### Account Subscribe Example - -
- -Example Payload - -```bash -{ - "jsonrpc": "2.0", - "id": 420, - "method": "accountSubscribe", - "params": [ - "SysvarC1ock11111111111111111111111111111111", - { - "encoding": "jsonParsed", - "commitment": "finalized" - } - ] -} -``` - -
- -
- -Example Notification - -```json -{ - "jsonrpc": "2.0", - "method": "accountNotification", - "params": { - "subscription": 237508762798666, - "result": { - "context": {"slot": 235781083}, - "value": { - "lamports": 1169280, - "data": "BvEhEb6hixL3QPn41gHcyi2CDGKt381jbNKFFCQr6XDTzCTXCuSUG9D", - "owner": "Sysvar1111111111111111111111111111111111111", - "executable": false, - "rentEpoch": 361, - "space": 40 - } - } - } -} -``` - -
- -
- -Code Example - -In this example, we are subscribing to account changes for the account `SysvarC1ock11111111111111111111111111111111` . \ -\ -We will see an update whenever a change occurs to the account data or the lamports for this account.\ -This happens at a frequent interval for this specific account as the `slot` and `unixTimestamp` are both a part of the returned account data. - -```javascript -// Create a WebSocket connection -const ws = new WebSocket('wss:///?api-key='); - -// Function to send a request to the WebSocket server -function sendRequest(ws) { - const request = { - jsonrpc: "2.0", - id: 420, - method: "accountSubscribe", - params: [ - "SysvarC1ock11111111111111111111111111111111", // pubkey of account we want to subscribe to - { - encoding: "jsonParsed", // base58, base64, base64+zstd, jsonParsed - commitment: "confirmed", // defaults to finalized if unset - } - ] - }; - ws.send(JSON.stringify(request)); -} - -// Function to send a ping to the WebSocket server -function startPing(ws) { - setInterval(() => { - if (ws.readyState === WebSocket.OPEN) { - ws.ping(); - console.log('Ping sent'); - } - }, 30000); // Ping every 30 seconds -} - -// Define WebSocket event handlers - -ws.on('open', function open() { - console.log('WebSocket is open'); - sendRequest(ws); // Send a request once the WebSocket is open - startPing(ws); // Start sending pings -}); - -ws.on('message', function incoming(data) { - const messageStr = data.toString('utf8'); - try { - const messageObj = JSON.parse(messageStr); - console.log('Received:', messageObj); - } catch (e) { - console.error('Failed to parse JSON:', e); - } -}); - -ws.on('error', function error(err) { - console.error('WebSocket error:', err); -}); - -ws.on('close', function close() { - console.log('WebSocket is closed'); -}); -``` - -
- -*** - -### Disclaimer: Atlas Enhanced WebSockets - -Atlas Enhanced WebSockets are **powered by LaserStream under the hood**. You can continue using the same Atlas endpoints and still have access to LaserStream's advanced capabilities—such as **`fromSlot`** replay—without needing to migrate. If you're already on Atlas, **no changes** are required; if you prefer the dedicated LaserStream endpoints, you can use those as well. diff --git a/llms.txt b/llms.txt index bbd4b817..5d997569 100644 --- a/llms.txt +++ b/llms.txt @@ -205,9 +205,9 @@ https://www.helius.dev/docs/api-reference/zk-compression/llms.txt ## Guides - Quickstart: https://www.helius.dev/docs/quickstart.md -- Getting Data: https://www.helius.dev/docs/getting-data.md -- Data Streaming: https://www.helius.dev/docs/data-streaming.md -- Data Streaming quickstart: https://www.helius.dev/docs/data-streaming/quickstart.md +- Getting Data: https://www.helius.dev/docs/chain-state/overview.md +- Data Streaming: https://www.helius.dev/docs/streaming/overview.md +- Data Streaming quickstart: https://www.helius.dev/docs/streaming/quickstart.md - Authentication: https://www.helius.dev/docs/api-reference/authentication.md - Endpoints: https://www.helius.dev/docs/api-reference/endpoints.md - Autoscaling: https://www.helius.dev/docs/billing/autoscaling.md diff --git a/nfts/cnft-event-listening.mdx b/nfts/cnft-event-listening.mdx index 368b296a..504e1e4b 100644 --- a/nfts/cnft-event-listening.mdx +++ b/nfts/cnft-event-listening.mdx @@ -47,7 +47,7 @@ Choose based on your needs: Standard WebSockets for simplicity, Enhanced WebSock #### 3.1 Standard WebSockets -[**Standard WebSockets**](/rpc/websocket) +[**Standard WebSockets**](/websockets/overview) * **Persistent connection**: You subscribe to accounts or programs, and Solana pushes updates. @@ -116,7 +116,7 @@ ws.on('close', () => { #### 3.2 Enhanced WebSockets -* [**Enhanced WSS**](/enhanced-websockets) with advanced filters (`accountInclude`, `accountRequired`, etc.). +* [**Enhanced WSS**](/websockets/overview) with advanced filters (`accountInclude`, `accountRequired`, etc.). * **Real-time filtering** ensures you only get the transactions you care about. * **Reduces parsing overhead** because you only receive transactions relevant to your addresses. @@ -336,7 +336,7 @@ When your webhook endpoint receives a notification, it will contain structured d #### 3.4 gRPC (Yellowstone) -[**gRPC**](/grpc) is the most flexible and high-performance event listening solution, available through **LaserStream** or **Dedicated Nodes**. +[**gRPC**](/laserstream/migration-from-yellowstone) is the most flexible and high-performance event listening solution, available through **LaserStream** or **Dedicated Nodes**. * **Advanced filtering** (memcmp, owners, accounts, etc.). * **Enterprise-level** throughput for large-scale apps. diff --git a/quickstart.mdx b/quickstart.mdx index f6d821d3..223d9728 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -201,7 +201,7 @@ Now that you understand the basics, explore these advanced features: Search NFTs by traits, fetch collection stats, and work with token metadata at scale. - + Stream live blockchain data with sub-second latency using gRPC or enhanced WebSockets. diff --git a/rpc/guides/overview.mdx b/rpc/guides/overview.mdx index 3cb315ff..0842848a 100644 --- a/rpc/guides/overview.mdx +++ b/rpc/guides/overview.mdx @@ -282,7 +282,7 @@ Helper methods for system information, validation, and advanced queries. Advanced techniques for optimizing RPC performance - + Explore real-time subscriptions and streaming data diff --git a/rpc/how-to-index-solana-data.mdx b/rpc/how-to-index-solana-data.mdx index 0b66ed45..8d00472d 100644 --- a/rpc/how-to-index-solana-data.mdx +++ b/rpc/how-to-index-solana-data.mdx @@ -345,7 +345,7 @@ Use the following subscription to index all new token transfers: ### Method 2: Use Enhanced WebSockets -[Enhanced WebSockets](/enhanced-websockets) are powered by the same infrastructure as LaserStream, and it is a cost-effective real-time streaming alternative to LaserStream gRPC. +[Enhanced WebSockets](/websockets/overview) are powered by the same infrastructure as LaserStream, and it is a cost-effective real-time streaming alternative to LaserStream gRPC. You should use Enhanced WSS when: @@ -363,7 +363,7 @@ However, there are a few trade-offs to consider when choosing Enhanced WSS: #### How to Use Enhanced WebSockets for Indexing -To update an index that stores all token transfers, you would subscribe to [`transactionSubscribe`](/enhanced-websockets/transaction-subscribe) like this: +To update an index that stores all token transfers, you would subscribe to [`transactionSubscribe`](/websockets/transaction-subscribe) like this: ```ts { diff --git a/rpc/http/get-accounts.mdx b/rpc/http/get-accounts.mdx deleted file mode 100644 index 727f3bab..00000000 --- a/rpc/http/get-accounts.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "How to Get Solana Accounts: Complete RPC Guide" -sidebarTitle: "Get Accounts" -description: "Learn how to fetch Solana account data using Helius RPC methods. Get single accounts, multiple accounts, and batch retrieval with best practices." ---- - -Solana accounts store all raw data on the blockchain. This guide demonstrates how to efficiently retrieve account data using Helius APIs. - -## Using RPC Methods - -The most direct way to read account data is through Solana RPC methods: -```typescript -// Replace YOUR_API_KEY with the API key from your Helius dashboard -const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "1", - method: "getAccountInfo", - params: ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri", { encoding: "jsonParsed" }], - }), -}); -const data = await response.json(); -console.log("Account data:", data.result.value); -``` - - - getAccountInfo - - -## Common Parameters - -- `encoding`: Choose from `base58`, `base64`, or `jsonParsed` (recommended) -- `commitment`: Data consistency level (`processed`, `confirmed`, or `finalized`) -- `dataSlice`: Fetch only a specific portion of the account data - -## Getting Multiple Accounts - -For batch retrieval, use `getMultipleAccounts`: - -```typescript -const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - jsonrpc: '2.0', - id: '1', - method: 'getMultipleAccounts', - params: [ - ['83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri', 'SysvarC1ock11111111111111111111111111111111', 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'], - { encoding: 'jsonParsed' } - ] - }) -}); -const data = await response.json(); -console.log("Multiple accounts data:", data.result.value); -``` - - - getMultipleAccounts - - -## Best Practices - -- Use account subscriptions via WebSockets for real-time updates -- For large-scale data needs, consider using the Helius DAS API or LaserStream -- Cache account data when appropriate to reduce API calls \ No newline at end of file diff --git a/rpc/http/get-transactions.mdx b/rpc/http/get-transactions.mdx deleted file mode 100644 index 939cacd5..00000000 --- a/rpc/http/get-transactions.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "How to Get Solana Transactions: Complete Retrieval Guide" -sidebarTitle: "Get Transactions" -description: "Learn how to retrieve and parse Solana transactions using Helius RPC methods and Enhanced Transaction API. Single, batch, and status checking." ---- - -Transactions represent all state changes on Solana. Helius provides multiple ways to read transaction data, from raw RPC methods to enhanced transaction APIs. - -## Getting a Single Transaction - -Retrieve transaction details using the standard RPC method: - -```typescript -const response = await fetch("https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY", { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - jsonrpc: '2.0', - id: '1', - method: 'getTransaction', - params: [ - '5brUqZacYhjphkFufZsdJoWA3ACTDh7wX5o4ewHiUGPK5zrLWExsFJb1o83q4SidvgegANZMFqocC4cPyymSEdyt', - { - encoding: 'json', - maxSupportedTransactionVersion: 0 - } - ] - }) -}); -const data = await response.json(); -console.log('Transaction data:', data); -``` - - - getTransaction - - -## Enhanced Transaction History - -For richer transaction history with parsed data: - -```typescript -const API_KEY = 'YOUR_API_KEY'; -const WALLET_ADDRESS = 'DjPi9wgUDTtYuuL6ZNvhgKJgC8gHaRKtHq6K5ESWbGKt'; - -const response = await fetch(`https://api-mainnet.helius-rpc.com/v0/addresses/${WALLET_ADDRESS}/transactions?api-key=${API_KEY}&limit=10`, { - method: 'GET', -}); -const transactions = await response.json(); -console.log('Enhanced transaction history:', transactions); -``` - - - Get Enhanced Transactions By Address - - -## Transaction Status Checking - -Check the status of multiple transactions: - -```typescript -const response = await fetch("https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY", { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - jsonrpc: '2.0', - id: '1', - method: 'getSignatureStatuses', - params: [ - [ - '5iT4xEsUHJXWuUfX7ypPoP2h2KGLmomsSfdTnjaV67NhRiUptvFTpVM4Gdeve2Mr6Ye8mgFPx4ESLxEPMsK6pmVS', - '4aRAsUtUSKbz5UAw3z3HZs2wU2NuY614RRfugE8BpfidKrkvjU49VXdSLsT7EPKNRA9KZH1yqkiVKK8aNBoAEdMU' - ], - { - searchTransactionHistory: true - } - ] - }) -}); -const statuses = await response.json(); -console.log('Transaction statuses:', statuses.result); -``` - - - getSignatureStatuses - \ No newline at end of file diff --git a/rpc/overview.mdx b/rpc/overview.mdx index c25bb6c2..39ac9d26 100644 --- a/rpc/overview.mdx +++ b/rpc/overview.mdx @@ -276,7 +276,7 @@ Choose your preferred language to test your RPC connection: > Learn advanced techniques to maximize RPC performance and minimize costs - + Set up streams for live blockchain events
diff --git a/rpc/websocket.mdx b/rpc/websocket.mdx deleted file mode 100644 index 3328cbf5..00000000 --- a/rpc/websocket.mdx +++ /dev/null @@ -1,727 +0,0 @@ ---- -title: "Solana WebSocket: Real-Time Blockchain Data Streaming" -sidebarTitle: Overview -description: "Stream real-time Solana blockchain data with WebSockets, now powered by LaserStream for up to 200 ms faster responses vs. standard Agave RPC-based WebSockets." ---- - -## What are Solana WebSockets and why use them? - -WebSockets provide a persistent, real-time connection between your application and the Solana blockchain. Unlike traditional HTTP requests where you repeatedly ask "has anything changed?", WebSockets let the blockchain notify you instantly when something happens. - - - - Get instantly notified when Solana accounts change, transactions occur, or when new blocks are produced - - - One persistent connection instead of polling hundreds of HTTP requests - - - Sub-second response times for time-critical trading and monitoring apps - - - Up to 200 ms faster than standard RPC-based WSS - - - -## Core Concepts - -### Subscription Types - - - - Monitor changes to specific accounts like wallet balances, token accounts, or program data. - - **Use cases:** - - Wallet balance tracking - - Token account monitoring - - Smart contract state changes - - NFT ownership updates - - - - Watch all accounts owned by a specific program for any changes. - - **Use cases:** - - DEX trade monitoring - - DeFi protocol tracking - - NFT marketplace activity - - Gaming asset changes - - - - Get notified when specific transactions are confirmed or when transactions mention certain accounts. - - **Use cases:** - - Payment confirmations - - Transaction status tracking - - Multi-signature approvals - - Contract execution monitoring - - - - Monitor blockchain progression and finality at the slot level. - - **Use cases:** - - Block explorer applications - - Network health monitoring - - Consensus tracking - - Performance analytics - - - -### Commitment Levels - -Understanding commitment levels is crucial for reliable applications: - - - - **Fastest** - Transaction processed by a validator but not confirmed - - Latency: ~400ms - - Risk: Can be dropped or reordered - - Use for: Real-time UI updates (with caution) - - - - **Balanced** - Majority of cluster has voted on the slot - - Latency: ~2-3 seconds - - Risk: Low chance of being dropped - - Use for: Most applications - - - - **Safest** - Supermajority of cluster has voted on the slot - - Latency: ~15-30 seconds - - Risk: Extremely unlikely to be dropped - - Use for: Financial applications, high-value transactions - - - - -**Want to learn more about commitment levels?** Read our comprehensive blog post: [Understanding Solana Commitment Levels](https://www.helius.dev/blog/solana-commitment-levels) - - -## Available WebSocket Methods - -The examples in this guide cover the most commonly used WebSocket methods, but Solana's WebSocket API offers many more subscription types for specialized use cases. - - - **Explore all 18+ WebSocket methods**. Each method includes detailed parameters, response formats, and examples. - - -## How to Implement Reconnection Logic - -WebSocket connections can disconnect for various reasons - network issues, server maintenance, or temporary outages. Production applications **must** implement reconnection logic to ensure reliability. - -### Why Disconnections Happen - - - - - Internet connectivity problems - - WiFi handoffs on mobile devices - - Corporate firewall timeouts - - ISP routing changes - - - - - Planned maintenance windows - - Load balancer restarts - - RPC node updates - - Temporary overload protection - - - - - Browser tab backgrounding - - Mobile app suspension - - Computer sleep/hibernation - - Process crashes or restarts - - - -### Detecting Disconnections - - - - ```javascript [expandable] - class ConnectionMonitor { - constructor(ws) { - this.ws = ws; - this.pingInterval = null; - this.lastPong = Date.now(); - this.isConnected = false; - - this.setupEventListeners(); - this.startPingMonitoring(); - } - - setupEventListeners() { - this.ws.onopen = () => { - console.log('Connected'); - this.isConnected = true; - this.lastPong = Date.now(); - }; - - this.ws.onclose = (event) => { - console.log('Disconnected:', event.code, event.reason); - this.isConnected = false; - this.stopPingMonitoring(); - }; - - this.ws.onerror = (error) => { - console.error('WebSocket error:', error); - this.isConnected = false; - }; - - // Listen for pong responses (server acknowledgment) - this.ws.onmessage = (event) => { - const data = JSON.parse(event.data); - if (data.method === 'pong') { - this.lastPong = Date.now(); - } - // Handle other messages... - }; - } - - startPingMonitoring() { - this.pingInterval = setInterval(() => { - if (this.isConnected) { - // Send ping to check connection health - this.ws.send(JSON.stringify({ - jsonrpc: '2.0', - method: 'ping', - id: Date.now() - })); - - // Check if we received a pong recently - const timeSinceLastPong = Date.now() - this.lastPong; - if (timeSinceLastPong > 30000) { // 30 seconds timeout - console.warn('No pong received, connection may be stale'); - this.ws.close(); - } - } - }, 10000); // Ping every 10 seconds - } - - stopPingMonitoring() { - if (this.pingInterval) { - clearInterval(this.pingInterval); - this.pingInterval = null; - } - } - } - ``` - - - - ```javascript [expandable] - const WebSocket = require('ws'); - - class NodeConnectionMonitor { - constructor(url) { - this.url = url; - this.ws = null; - this.pingInterval = null; - this.isAlive = false; - } - - connect() { - this.ws = new WebSocket(this.url); - - this.ws.on('open', () => { - console.log('Connected'); - this.isAlive = true; - this.startHeartbeat(); - }); - - this.ws.on('close', () => { - console.log('Disconnected'); - this.isAlive = false; - this.stopHeartbeat(); - }); - - this.ws.on('error', (error) => { - console.error('WebSocket error:', error); - this.isAlive = false; - }); - - // Built-in ping/pong handling - this.ws.on('pong', () => { - this.isAlive = true; - }); - } - - startHeartbeat() { - this.pingInterval = setInterval(() => { - if (!this.isAlive) { - console.log('Connection lost, terminating'); - return this.ws.terminate(); - } - - this.isAlive = false; - this.ws.ping(); - }, 30000); // Ping every 30 seconds - } - - stopHeartbeat() { - if (this.pingInterval) { - clearInterval(this.pingInterval); - this.pingInterval = null; - } - } - } - ``` - - - -### Reconnection Strategies - - - - ```javascript [expandable] - class ExponentialBackoffReconnector { - constructor(url, maxRetries = 10) { - this.url = url; - this.maxRetries = maxRetries; - this.retryCount = 0; - this.baseDelay = 1000; // Start with 1 second - this.maxDelay = 30000; // Cap at 30 seconds - this.ws = null; - this.subscriptions = new Map(); - this.isReconnecting = false; - } - - connect() { - if (this.isReconnecting) return; - - try { - this.ws = new WebSocket(this.url); - this.setupEventHandlers(); - } catch (error) { - console.error('Failed to create WebSocket:', error); - this.scheduleReconnect(); - } - } - - setupEventHandlers() { - this.ws.onopen = () => { - console.log('Connected successfully'); - this.retryCount = 0; // Reset retry count on successful connection - this.isReconnecting = false; - this.resubscribeAll(); // Restore subscriptions - }; - - this.ws.onclose = (event) => { - console.log('Connection closed:', event.code); - if (!this.isReconnecting) { - this.scheduleReconnect(); - } - }; - - this.ws.onerror = (error) => { - console.error('WebSocket error:', error); - }; - } - - scheduleReconnect() { - if (this.retryCount >= this.maxRetries) { - console.error('Max retry attempts reached. Giving up.'); - return; - } - - this.isReconnecting = true; - this.retryCount++; - - // Calculate delay with exponential backoff + jitter - const delay = Math.min( - this.baseDelay * Math.pow(2, this.retryCount - 1), - this.maxDelay - ); - - // Add jitter to prevent thundering herd - const jitteredDelay = delay + (Math.random() * 1000); - - console.log(`Reconnecting in ${jitteredDelay}ms (attempt ${this.retryCount}/${this.maxRetries})`); - - setTimeout(() => { - this.connect(); - }, jitteredDelay); - } - - subscribe(method, params, callback) { - const id = this.generateId(); - this.subscriptions.set(id, { method, params, callback }); - - if (this.ws && this.ws.readyState === WebSocket.OPEN) { - this.sendSubscription(id, method, params); - } - - return id; - } - - resubscribeAll() { - console.log(`Restoring ${this.subscriptions.size} subscriptions`); - for (const [id, sub] of this.subscriptions) { - this.sendSubscription(id, sub.method, sub.params); - } - } - - sendSubscription(id, method, params) { - this.ws.send(JSON.stringify({ - jsonrpc: '2.0', - id: id, - method: method, - params: params - })); - } - - generateId() { - return Date.now() + Math.random(); - } - } - ``` - - - - ```javascript [expandable] - class CircuitBreakerWebSocket { - constructor(url, options = {}) { - this.url = url; - this.failureThreshold = options.failureThreshold || 5; - this.recoveryTimeout = options.recoveryTimeout || 60000; - this.checkInterval = options.checkInterval || 10000; - - this.state = 'CLOSED'; // CLOSED, OPEN, HALF_OPEN - this.failureCount = 0; - this.lastFailureTime = null; - this.ws = null; - this.subscriptions = new Map(); - } - - connect() { - if (this.state === 'OPEN') { - if (Date.now() - this.lastFailureTime > this.recoveryTimeout) { - console.log('Circuit breaker moving to HALF_OPEN state'); - this.state = 'HALF_OPEN'; - } else { - console.log('Circuit breaker is OPEN, connection blocked'); - return false; - } - } - - try { - this.ws = new WebSocket(this.url); - this.setupEventHandlers(); - return true; - } catch (error) { - this.recordFailure(); - return false; - } - } - - setupEventHandlers() { - this.ws.onopen = () => { - console.log('Connected - Circuit breaker CLOSED'); - this.state = 'CLOSED'; - this.failureCount = 0; - this.resubscribeAll(); - }; - - this.ws.onclose = () => { - this.recordFailure(); - }; - - this.ws.onerror = (error) => { - console.error('WebSocket error:', error); - this.recordFailure(); - }; - } - - recordFailure() { - this.failureCount++; - this.lastFailureTime = Date.now(); - - console.log(`Failure recorded: ${this.failureCount}/${this.failureThreshold}`); - - if (this.failureCount >= this.failureThreshold) { - console.log('Circuit breaker opened due to repeated failures'); - this.state = 'OPEN'; - } - } - - startHealthCheck() { - setInterval(() => { - if (this.state === 'OPEN' || - (this.ws && this.ws.readyState !== WebSocket.OPEN)) { - this.connect(); - } - }, this.checkInterval); - } - } - ``` - - - -### Testing Reconnection Logic - - - - ```javascript [expandable] - // Test disconnection scenarios - class NetworkSimulator { - constructor(wsManager) { - this.wsManager = wsManager; - } - - // Simulate network outage - simulateNetworkOutage(duration = 5000) { - console.log('Simulating network outage...'); - - // Force close the connection - if (this.wsManager.ws) { - this.wsManager.ws.close(1006, 'Network outage simulation'); - } - - // Block reconnection temporarily - const originalConnect = this.wsManager.connect.bind(this.wsManager); - this.wsManager.connect = () => { - console.log('Connection blocked during outage simulation'); - }; - - // Restore connection after duration - setTimeout(() => { - console.log('Network restored'); - this.wsManager.connect = originalConnect; - this.wsManager.connect(); - }, duration); - } - - // Simulate intermittent connectivity - simulateIntermittentConnectivity() { - setInterval(() => { - if (Math.random() < 0.1) { // 10% chance every 10 seconds - console.log('Simulating connection drop...'); - this.wsManager.ws?.close(1006, 'Intermittent connectivity'); - } - }, 10000); - } - } - - // Usage - const simulator = new NetworkSimulator(wsManager); - simulator.simulateNetworkOutage(10000); // 10 second outage - ``` - - - - ```javascript [expandable] - // Jest test example - describe('WebSocket Reconnection', () => { - let wsManager; - - beforeEach(() => { - wsManager = new ProductionWebSocketManager({ - endpoint: 'ws://localhost:8080', - apiKey: 'test-key' - }); - }); - - test('should reconnect after connection loss', async () => { - const reconnectPromise = new Promise((resolve) => { - wsManager.on('connected', resolve); - }); - - await wsManager.connect(); - - // Simulate connection loss - wsManager.ws.close(1006, 'Test disconnection'); - - // Wait for reconnection - await reconnectPromise; - - expect(wsManager.connectionState).toBe('CONNECTED'); - expect(wsManager.metrics.reconnections).toBeGreaterThan(0); - }); - - test('should restore subscriptions after reconnection', async () => { - await wsManager.connect(); - - const messages = []; - const subscriptionId = wsManager.subscribe( - 'accountSubscribe', - ['test-account', {}], - (data) => messages.push(data) - ); - - // Verify subscription exists - expect(wsManager.subscriptions.has(subscriptionId)).toBe(true); - - // Simulate disconnection and reconnection - wsManager.ws.close(1006, 'Test disconnection'); - - await new Promise(resolve => wsManager.on('connected', resolve)); - - // Verify subscription was restored - const subscription = wsManager.subscriptions.get(subscriptionId); - expect(subscription.pending).toBe(true); // Should be re-subscribing - }); - }); - ``` - - - - -**Critical for Production**: Implementing proper reconnection logic is not optional for production applications. WebSocket connections will disconnect - plan for it, test it, and monitor it in production. - - -## Troubleshooting - - - - **Symptoms**: WebSocket fails to connect initially - - **Solutions**: - - Verify your API key is correct and has sufficient credits - - Check the endpoint URL format: `wss://mainnet.helius-rpc.com?api-key=YOUR_KEY` - - Ensure your firewall allows WebSocket connections on port 443 - - Test with a simple ping first to verify basic connectivity - - - - **Symptoms**: Connection drops every few minutes - - **Solutions**: - - Implement proper ping/pong heartbeat (shown in reconnection examples above) - - Check your network stability and corporate firewall settings - - Monitor your subscription count - too many can cause instability - - Verify you're handling the connection lifecycle properly - - - - **Symptoms**: Not receiving expected subscription updates - - **Solutions**: - - Verify your subscription is confirmed (check the response) - - Ensure the account/program you're monitoring has actual activity - - Monitor your connection state - missed messages often indicate disconnections - - - - **Symptoms**: Slow message delivery, delays in updates - - **Solutions**: - - Use "confirmed" instead of "finalized" commitment - - Reduce the number of active subscriptions - - Optimize your message processing logic - - Consider using multiple connections to distribute load - - Check your network connection quality - - - - **Symptoms**: Application memory usage grows over time - - **Solutions**: - - Implement proper subscription cleanup - - Remove event listeners when components unmount - - Clear message logs periodically - - Monitor subscription count and enforce limits - - Use weak references for callback functions where possible - - - -## Migration from Standard RPC - -If you're currently using HTTP polling, here's how to migrate to WebSockets: - -```javascript [expandable] -// Old approach - HTTP polling -class HTTPAccountMonitor { - constructor(connection, accountAddress) { - this.connection = connection; - this.accountAddress = accountAddress; - this.interval = null; - this.lastKnownBalance = null; - } - - start() { - this.interval = setInterval(async () => { - try { - const accountInfo = await this.connection.getAccountInfo( - new PublicKey(this.accountAddress) - ); - - const currentBalance = accountInfo?.lamports || 0; - - if (this.lastKnownBalance !== currentBalance) { - console.log(`Balance changed: ${currentBalance}`); - this.lastKnownBalance = currentBalance; - } - } catch (error) { - console.error('Failed to fetch account info:', error); - } - }, 2000); // Poll every 2 seconds - } - - stop() { - if (this.interval) { - clearInterval(this.interval); - this.interval = null; - } - } -} - -// New approach - WebSocket subscription -class WebSocketAccountMonitor { - constructor(wsManager, accountAddress) { - this.wsManager = wsManager; - this.accountAddress = accountAddress; - this.subscriptionId = null; - } - - start() { - this.subscriptionId = this.wsManager.subscribe( - 'accountSubscribe', - [ - this.accountAddress, - { encoding: 'jsonParsed', commitment: 'confirmed' } - ], - (data) => { - const currentBalance = data.value.lamports; - console.log(`Balance changed: ${currentBalance}`); - - // Handle the change immediately - no polling delay! - } - ); - } - - stop() { - if (this.subscriptionId) { - this.wsManager.unsubscribe(this.subscriptionId); - this.subscriptionId = null; - } - } -} -``` - -## Enhanced Capabilities - -For apps requiring even more advanced features, consider using [LaserStream gRPC](/laserstream): - - - - Catch up on missed data when your app was offline - - - Better reliability via data from multiple validators - - - Handle more subscriptions and higher message rates - - - Advanced monitoring, analytics, and data pipelines - - - -## Get Started - -Ready to Get Started? - -Check out our [WebSocket Quickstart Guide](/rpc/websocket/quickstart) for practical examples and a step-by-step implementation. diff --git a/rpc/websocket/stream-pump-amm-data.mdx b/rpc/websocket/stream-pump-amm-data.mdx deleted file mode 100644 index a17b4fa2..00000000 --- a/rpc/websocket/stream-pump-amm-data.mdx +++ /dev/null @@ -1,248 +0,0 @@ ---- -title: "How to Stream Solana Pump AMM Data" -sidebarTitle: "Stream Pump AMM Data" -description: "Learn how to stream live Solana Pump AMM data using Standard WebSocket. Log-based monitoring available on all plans with automatic reconnection." ---- - -## Using Standard WebSockets - -

- Standard Solana WebSockets provide a simple integration and are available on all Helius plans, making it a convenient choice for developers. Standard WSS also uses Solana PubSub `logsSubscribe`, so you receive log messages only. -

- - - Standard WebSockets are now powered by LaserStream, and provide up to 200 ms faster responses compared to traditional RPC-based WebSockets. - - -### How it works - -Connect to the [Standard WebSocket endpoint](https://www.helius.dev/docs/api-reference/endpoints), subscribe to logs mentioning the [Pump AMM program](https://orbmarkets.io/address/pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA/history), and process the incoming log data. - -The example below includes automatic reconnection logic with exponential backoffs. - -## Requirements - - -
    -
  • Node.js ≥ 18 (tested with v20)
  • -
  • TypeScript ≥ 5 if you plan to run the .ts samples with ts‑node
  • -
  • Any Helius plan – works with all plan tiers
  • -
  • An environment variable named HELIUS_API_KEY that stores your API key
  • -
- - - Install dependencies globally: npm i -g typescript ts‑node - -
- -## Implementation - - - - ```bash - npm install ws - ``` - - - - Create a file named `standard-ws-pump.ts` with the following code: - - ```ts - // standard-ws-pump.ts - import WebSocket from 'ws'; - - // Configuration - const MAX_RETRIES = 5; - const INITIAL_RETRY_DELAY = 1000; // 1 second - let retryCount = 0; - let retryTimeout: NodeJS.Timeout | null = null; - let subscriptionId: number | null = null; - - // Create a WebSocket connection - let ws: WebSocket; - - function connect() { - ws = new WebSocket(`wss://mainnet.helius-rpc.com/?api-key=${process.env.HELIUS_API_KEY}`); - - // Function to send a request to the WebSocket server - function sendRequest(ws: WebSocket): void { - const request = { - "jsonrpc": "2.0", - "id": 1, - "method": "logsSubscribe", - "params": [ - { - "mentions": ["pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"] - } - ] - }; - console.log('Sending subscription request:', JSON.stringify(request, null, 2)); - ws.send(JSON.stringify(request)); - } - - // Function to send a ping to the WebSocket server - function startPing(ws: WebSocket): void { - setInterval(() => { - if (ws.readyState === WebSocket.OPEN) { - ws.ping(); - console.log('Ping sent'); - } - }, 30000); // Ping every 30 seconds - } - - // Define WebSocket event handlers - ws.on('open', function open() { - console.log('WebSocket is open'); - retryCount = 0; // Reset retry count on successful connection - sendRequest(ws); // Send a request once the WebSocket is open - startPing(ws); // Start sending pings - }); - - ws.on('message', function incoming(data: WebSocket.Data) { - const messageStr = data.toString('utf8'); - try { - const messageObj = JSON.parse(messageStr); - - // Handle subscription confirmation - if (messageObj.result && typeof messageObj.result === 'number') { - subscriptionId = messageObj.result; - console.log('Successfully subscribed with ID:', subscriptionId); - return; - } - - // Handle actual log data - if (messageObj.params && messageObj.params.result) { - const logData = messageObj.params.result; - console.log('Received log data:', JSON.stringify(logData, null, 2)); - - // Extract the transaction signature if available - if (logData.signature) { - console.log('Transaction signature:', logData.signature); - // You can call getTransaction with this signature to get the full transaction details - } - } else { - console.log('Received message:', JSON.stringify(messageObj, null, 2)); - } - } catch (e) { - console.error('Failed to parse JSON:', e); - } - }); - - ws.on('error', function error(err: Error) { - console.error('WebSocket error:', err); - }); - - ws.on('close', function close() { - console.log('WebSocket is closed'); - if (subscriptionId) { - console.log('Last subscription ID was:', subscriptionId); - } - reconnect(); - }); - } - - function reconnect() { - if (retryCount >= MAX_RETRIES) { - console.error('Max retry attempts reached. Please check your connection and try again.'); - return; - } - - const delay = INITIAL_RETRY_DELAY * Math.pow(2, retryCount); - console.log(`Attempting to reconnect in ${delay/1000} seconds... (Attempt ${retryCount + 1}/${MAX_RETRIES})`); - - retryTimeout = setTimeout(() => { - retryCount++; - connect(); - }, delay); - } - - // Start the initial connection - connect(); - - // Cleanup function - process.on('SIGINT', () => { - if (retryTimeout) { - clearTimeout(retryTimeout); - } - if (ws) { - ws.close(); - } - process.exit(); - }); - ``` - - - - Add your Helius API key as an environment variable: - - ```bash - export HELIUS_API_KEY=your-helius-api-key - ``` - - Replace `your-helius-api-key` with your actual Helius API key from the dashboard. - - If you don't have an API key, [sign up](https://dashboard.helius.dev/signup) or have your agent create one programmatically with [the Helius CLI](https://www.helius.dev/docs/api-reference/helius-cli). - - - - Execute the script to start streaming Pump AMM data: - - ```bash - npx ts-node standard-ws-pump.ts - ``` - - You will receive log messages that mention the Pump AMM program. To fetch the full transaction, call [`getTransaction`](/api-reference/rpc/http/gettransaction) with the signature from the log entry. - - - -## Key benefits - -- **Universal access** - Available on all Helius plans, including free tier -- **Lightweight** - Minimal data transfer since only logs are streamed, not full transactions -- **Easy to implement** - Uses standard Solana RPC WebSocket protocol -- **Low barrier to entry** - Perfect for prototyping and initial monitoring - -## Getting full transaction details - -Since the Standard WebSocket only provides log messages, you'll need an additional step to get complete transaction data: - -```ts -// Example of how to fetch a full transaction from a log entry -async function fetchFullTransaction(signature: string) { - const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=${process.env.HELIUS_API_KEY}`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - jsonrpc: '2.0', - id: 'my-id', - method: 'getTransaction', - params: [ - signature, - { - encoding: 'jsonParsed', - maxSupportedTransactionVersion: 0 - } - ] - }) - }); - - const data = await response.json(); - return data.result; -} -``` - -## Common issues and solutions - - - - Verify your HELIUS_API_KEY is correct. - - - Ensure the Pump AMM program address is correct and there is activity on the program. - - - Implement more robust reconnection logic or check network stability. - - \ No newline at end of file diff --git a/scripts/_ia-cutover.js b/scripts/_ia-cutover.js new file mode 100644 index 00000000..ce29fe94 --- /dev/null +++ b/scripts/_ia-cutover.js @@ -0,0 +1,317 @@ +/** + * One-shot script for the WS-1 IA cutover. Restructures the EN "Documentation" + * anchor into the 8 top-level groups from the PRD and adds the redirect map. + * The ZH mirror gets regenerated by `npm run i18n:nav-apply` on merge to main. + * + * This script is intentionally NOT registered in package.json — it runs once, + * gets reviewed in the resulting commit, and then sits in scripts/ as a record. + * + * Run: node scripts/_ia-cutover.js + */ + +const fs = require('fs'); +const path = require('path'); + +const DOCS_JSON = path.join(__dirname, '..', 'docs.json'); + +const docs = JSON.parse(fs.readFileSync(DOCS_JSON, 'utf8')); + +// --- New top-level groups for the "Documentation" anchor (PRD WS-1) ---------- + +const NEW_DOC_GROUPS = [ + { + group: 'Get Started', + pages: [ + 'index', + 'quickstart', + 'billing/plans', + 'billing/credits', + 'billing/rate-limits' + ] + }, + { + group: 'Read chain state', + pages: [ + 'chain-state/overview', + 'rpc/overview', + { + group: 'Gatekeeper (Beta)', + pages: ['gatekeeper/overview', 'gatekeeper/migration-guide'] + }, + 'rpc/protect-your-keys', + 'rpc/devnet-sol', + 'rpc/optimization-techniques', + { + group: 'RPC Method Guides', + pages: [ + 'rpc/guides/overview', + 'rpc/guides/getaccountinfo', + 'rpc/guides/getbalance', + 'rpc/guides/getblock', + 'rpc/guides/getblockcommitment', + 'rpc/guides/getblockheight', + 'rpc/guides/getblockproduction', + 'rpc/guides/getblocks', + 'rpc/guides/getblockswithlimit', + 'rpc/guides/getblocktime', + 'rpc/guides/getclusternodes', + 'rpc/guides/getepochinfo', + 'rpc/guides/getepochschedule', + 'rpc/guides/getfeeformessage', + 'rpc/guides/getfirstavailableblock', + 'rpc/guides/getgenesishash', + 'rpc/guides/gethealth', + 'rpc/guides/gethighestsnapshotslot', + 'rpc/guides/getidentity', + 'rpc/guides/getinflationgovernor', + 'rpc/guides/getinflationrate', + 'rpc/guides/getinflationreward', + 'rpc/guides/getlargestaccounts', + 'rpc/guides/getlatestblockhash', + 'rpc/guides/getleaderschedule', + 'rpc/guides/getmaxretransmitslot', + 'rpc/guides/getmaxshredinsertslot', + 'rpc/guides/getminimumbalanceforrentexemption', + 'rpc/guides/getmultipleaccounts', + 'rpc/guides/getprogramaccounts', + 'rpc/guides/getrecentperformancesamples', + 'rpc/guides/getrecentprioritizationfees', + 'rpc/guides/getsignaturesforaddress', + 'rpc/guides/getsignaturestatuses', + 'rpc/guides/getslot', + 'rpc/guides/getslotleader', + 'rpc/guides/getslotleaders', + 'rpc/guides/getstakeminimumdelegation', + 'rpc/guides/getsupply', + 'rpc/guides/gettokenaccountbalance', + 'rpc/guides/gettokenaccountsbydelegate', + 'rpc/guides/gettokenaccountsbyowner', + 'rpc/guides/gettokenlargestaccounts', + 'rpc/guides/gettokensupply', + 'rpc/guides/gettransaction', + 'rpc/guides/gettransactioncount', + 'rpc/guides/getversion', + 'rpc/guides/getvoteaccounts', + 'rpc/guides/isblockhashvalid', + 'rpc/guides/minimumledgerslot', + 'rpc/guides/requestairdrop' + ] + }, + { + group: 'Indexed reads', + pages: [ + 'rpc/gettransactionsforaddress', + 'rpc/gettransfersbyaddress', + 'rpc/historical-data', + 'rpc/how-to-index-solana-data' + ] + }, + { + group: 'DAS API', + pages: [ + 'das-api', + 'das/get-tokens', + 'das/get-nfts', + 'das/search', + 'das/fungible-token-extension', + 'das/pagination' + ] + }, + { + group: 'Enhanced Transactions API', + pages: [ + 'enhanced-transactions/overview', + 'enhanced-transactions/parse-transactions', + 'enhanced-transactions/transaction-history' + ] + }, + { + group: 'Wallet API (Beta)', + pages: [ + 'wallet-api/overview', + 'wallet-api/identity', + 'wallet-api/balances', + 'wallet-api/history', + 'wallet-api/transfers', + 'wallet-api/funded-by' + ] + } + ] + }, + { + group: 'Stream chain data', + pages: [ + 'streaming/overview', + 'streaming/quickstart', + { + group: 'LaserStream', + pages: [ + 'laserstream', + 'laserstream/grpc', + 'laserstream/historical-replay', + 'laserstream/preprocessed-transactions', + 'laserstream/clients', + 'laserstream/delivery-guarantees', + 'laserstream/laserstream-vs-dedicated-nodes', + 'laserstream/migration-from-yellowstone', + { + group: 'LaserStream Guides', + pages: [ + 'laserstream/guides/account-monitoring', + 'laserstream/guides/transaction-monitoring', + 'laserstream/guides/slot-and-block-monitoring', + 'laserstream/guides/entry-monitoring', + 'laserstream/guides/stream-pump-amm-data', + 'laserstream/guides/decoding-transaction-data', + 'laserstream/guides/account-subscription', + 'laserstream/guides/measuring-latency' + ] + } + ] + }, + { + group: 'WebSockets', + pages: [ + 'websockets/overview', + 'websockets/quickstart', + 'websockets/account-subscribe', + 'websockets/transaction-subscribe', + 'websockets/stream-pump-amm-data' + ] + }, + { + group: 'Webhooks', + pages: ['webhooks', 'webhooks/transaction-types'] + } + ] + }, + { + group: 'Send transactions', + pages: [ + 'sending-transactions/overview', + 'sending-transactions/chooser', + 'sending-transactions/send-manually', + { + group: 'Helius Sender (For Traders)', + pages: [ + 'sending-transactions/sender', + 'sending-transactions/jupiter-swap-api-via-sender' + ] + }, + 'sending-transactions/send-bundle', + 'sending-transactions/backrun-rebates', + 'sending-transactions/optimizing-transactions', + { + group: 'Priority Fee API', + pages: [ + 'priority-fee-api', + 'priority-fee/estimating-fees-using-serialized-transaction', + 'priority-fee/estimating-fees-using-account-keys' + ] + } + ] + }, + { + group: 'Run dedicated infrastructure', + pages: [ + 'dedicated-nodes', + 'dedicated-nodes/getting-started', + 'dedicated-nodes/best-practices', + 'shred-delivery/index' + ] + }, + { + group: 'Specialized', + pages: [ + { + group: 'Compression', + pages: [ + 'nfts/nft-compression', + 'nfts/cnft-event-listening', + 'zk-compression/introduction', + { + group: 'Helius AirShip', + pages: ['airship/overview', 'airship/getting-started'] + } + ] + }, + 'staking/how-to-stake-with-helius-programmatically', + { + group: 'Orb', + pages: [ + 'orb', + 'orb/swap-tokens', + 'orb/explore-devnet', + 'orb/explore-blocks', + 'orb/explore-tokens', + 'orb/explore-markets', + 'orb/explore-wallets', + 'orb/explore-programs', + 'orb/explore-validators', + 'orb/explore-authorities', + 'orb/explore-transactions', + 'orb/explore-mint-addresses' + ] + } + ] + }, + { + group: 'Billing', + pages: ['billing/autoscaling', 'billing/pay-with-crypto'] + }, + { + group: 'Resources', + pages: ['glossary', 'sdks', 'changelog'] + } +]; + +// --- Redirects for the moved/merged URLs (PRD WS-1) -------------------------- + +const NEW_REDIRECTS = [ + // Streaming consolidation + { source: '/data-streaming', destination: '/streaming/overview' }, + { source: '/data-streaming/quickstart', destination: '/streaming/quickstart' }, + // Yellowstone gRPC → LaserStream gRPC product page (migration guide is one click away) + { source: '/grpc', destination: '/laserstream/grpc' }, + { source: '/grpc/quickstart', destination: '/laserstream/grpc' }, + { source: '/grpc/account-monitoring', destination: '/laserstream/guides/account-monitoring' }, + { source: '/grpc/transaction-monitoring', destination: '/laserstream/guides/transaction-monitoring' }, + { source: '/grpc/slot-and-block-monitoring', destination: '/laserstream/guides/slot-and-block-monitoring' }, + { source: '/grpc/entry-monitoring', destination: '/laserstream/guides/entry-monitoring' }, + { source: '/grpc/stream-pump-amm-data', destination: '/laserstream/guides/stream-pump-amm-data' }, + // Enhanced + Standard WSS → unified WebSockets + { source: '/enhanced-websockets', destination: '/websockets/overview' }, + { source: '/enhanced-websockets/account-subscribe', destination: '/websockets/account-subscribe' }, + { source: '/enhanced-websockets/transaction-subscribe', destination: '/websockets/transaction-subscribe' }, + { source: '/enhanced-websockets/stream-pump-amm-data', destination: '/websockets/stream-pump-amm-data' }, + { source: '/rpc/websocket', destination: '/websockets/overview' }, + { source: '/rpc/websocket/quickstart', destination: '/websockets/quickstart' }, + { source: '/rpc/websocket/stream-pump-amm-data', destination: '/websockets/stream-pump-amm-data' }, + // Section landing renames + { source: '/getting-data', destination: '/chain-state/overview' }, + // Orphan landing pages folded into streaming + { source: '/event-listening', destination: '/streaming/overview' }, + { source: '/event-listening/quickstart', destination: '/streaming/quickstart' } +]; + +// --- Apply ------------------------------------------------------------------- + +const enNav = docs.navigation.languages.find(l => l.language === 'en'); +if (!enNav) throw new Error('No EN nav found in docs.json'); + +const docAnchor = enNav.anchors.find(a => a.anchor === 'Documentation'); +if (!docAnchor) throw new Error('No "Documentation" anchor in EN nav'); + +docAnchor.groups = NEW_DOC_GROUPS; + +// Merge redirects: keep existing entries, append new ones not already present +const existingSources = new Set((docs.redirects || []).map(r => r.source)); +for (const r of NEW_REDIRECTS) { + if (!existingSources.has(r.source)) { + docs.redirects.push(r); + } +} + +fs.writeFileSync(DOCS_JSON, JSON.stringify(docs, null, 2) + '\n'); +console.log(`✓ Restructured EN "Documentation" anchor into ${NEW_DOC_GROUPS.length} groups`); +console.log(`✓ Total redirects: ${docs.redirects.length}`); diff --git a/sending-transactions/chooser.mdx b/sending-transactions/chooser.mdx index 05aa566a..27be7c8a 100644 --- a/sending-transactions/chooser.mdx +++ b/sending-transactions/chooser.mdx @@ -4,9 +4,9 @@ sidebarTitle: "Chooser" description: "Pick a transaction-sending path: Helius Sender, Jito Bundles, or standard sendTransaction. Comparison matrix and decision tree below." --- -{/* Draft for the week-4 IA cutover. Will replace the prose-heavy - sections at the top of /sending-transactions/overview.mdx. - Per PRD §WS-3 — matrix is the first viewport. */} +{/* Per PRD §WS-3 — matrix is the first viewport. The deeper "send-manually", + "sender", "send-bundle", and "optimizing-transactions" pages cover each + path in detail. */} diff --git a/streaming/overview.mdx b/streaming/overview.mdx index 327e7eb2..2b17f756 100644 --- a/streaming/overview.mdx +++ b/streaming/overview.mdx @@ -4,14 +4,13 @@ sidebarTitle: "Overview" description: "Pick a streaming product: Shreds, LaserStream gRPC, WebSockets, or Webhooks. Comparison matrix and decision tree below." --- -{/* Replaces /data-streaming. Wired into nav at week 4 cutover. - Source-of-truth for the streaming chooser per PRD §WS-3. */} +{/* Source-of-truth for the streaming chooser per PRD §WS-3. */} **Default for backend streaming.** gRPC, ~50–200 ms latency, 24-hour replay, multi-region. Drop-in for Yellowstone gRPC. - + **Frontends and lighter backends.** WSS, no replay. Enhanced tier adds account/transaction filters; Standard is full Solana WebSocket compat. @@ -27,8 +26,8 @@ description: "Pick a streaming product: Shreds, LaserStream gRPC, WebSockets, or | Production gRPC streams with replay | [LaserStream](/laserstream) | gRPC | ~50–200 ms | 24 hours | Business+ (Mainnet), Developer+ (Devnet) | Backends, indexers, mission-critical apps | | Sub-processed-commitment latency | [LaserStream Preprocessed](/laserstream/preprocessed-transactions) | gRPC | ~8 ms < processed | 24 hours | Professional+ | Trading, anything that can't wait for processed | | Drop-in for Yellowstone gRPC | [LaserStream](/laserstream) | gRPC (Yellowstone-compatible) | ~50–200 ms | 24 hours | Business+ | Existing Yellowstone clients migrating | -| WebSocket subs with account/tx filters | [Enhanced WebSockets](/enhanced-websockets) | WSS | Sub-second | No | Developer+ | Frontends, mid-volume backends | -| Standard `accountSubscribe`, `signatureSubscribe`, etc. | [Standard WebSockets](/rpc/websocket) | WSS | Standard | No | Free+ | Compat with existing Solana WSS clients | +| WebSocket subs with account/tx filters | [Enhanced WebSockets](/websockets/overview) | WSS | Sub-second | No | Developer+ | Frontends, mid-volume backends | +| Standard `accountSubscribe`, `signatureSubscribe`, etc. | [Standard WebSockets](/websockets/overview) | WSS | Standard | No | Free+ | Compat with existing Solana WSS clients | | Server-to-server push, no persistent connection | [Webhooks](/webhooks) | HTTP POST | Variable (push) | No | Free+ | Integrations, notifications, parsed events | @@ -49,7 +48,7 @@ description: "Pick a streaming product: Shreds, LaserStream gRPC, WebSockets, or **No →** continue. - **Yes →** [Enhanced WebSockets](/enhanced-websockets). Subscribe to accounts or transactions with filters. For pure compat with existing Solana WSS clients, use [Standard WebSockets](/rpc/websocket). + **Yes →** [Enhanced WebSockets](/websockets/overview). Subscribe to accounts or transactions with filters. For pure compat with existing Solana WSS clients, use [Standard WebSockets](/websockets/overview). **No →** continue. @@ -75,12 +74,12 @@ See [billing/credits](/billing/credits) for the full credit table and [billing/p ## Compare related products - [LaserStream vs Dedicated Nodes](/laserstream/laserstream-vs-dedicated-nodes) — when raw node access is justified over the managed gRPC service. -- [Enhanced vs Standard WebSockets](/enhanced-websockets) — what Enhanced adds on top of standard `accountSubscribe` / `signatureSubscribe`. +- [Enhanced vs Standard WebSockets](/websockets/overview) — what Enhanced adds on top of standard `accountSubscribe` / `signatureSubscribe`. ## Next steps - + First connection in five minutes — pick a flavor and run the snippet. diff --git a/data-streaming/quickstart.mdx b/streaming/quickstart.mdx similarity index 98% rename from data-streaming/quickstart.mdx rename to streaming/quickstart.mdx index 600475cc..6ce91dd8 100644 --- a/data-streaming/quickstart.mdx +++ b/streaming/quickstart.mdx @@ -53,7 +53,7 @@ ws.on('message', (data) => { **Replace `YOUR_API_KEY`** with your key from [dashboard.helius.dev](https://dashboard.helius.dev) - + Complete reference with all subscription methods and examples @@ -98,7 +98,7 @@ ws.on('message', (data) => { }); ``` - + Learn advanced filtering and subscription options @@ -215,7 +215,7 @@ params: ["WALLET_ADDRESS", {...}] ## Next Steps - + Learn about all streaming options and when to use each diff --git a/enhanced-websockets/account-subscribe.mdx b/websockets/account-subscribe.mdx similarity index 98% rename from enhanced-websockets/account-subscribe.mdx rename to websockets/account-subscribe.mdx index e3f4a75e..fd279eaa 100644 --- a/enhanced-websockets/account-subscribe.mdx +++ b/websockets/account-subscribe.mdx @@ -8,7 +8,7 @@ description: "Stream real-time Solana account updates with `accountSubscribe`. M Solana's WebSockets support a method that allows you to subscribe to an account and receive notifications via the WebSocket connection whenever there are changes to the lamports or data associated with a matching account public key. -This method aligns directly with the [Solana WSS API specification](https://solana.com/docs/rpc/websocket#accountsubscribe). +This method aligns directly with the [Solana WSS API specification](https://solana.com/docs/websockets/overview#accountsubscribe). ## Parameters diff --git a/enhanced-websockets/llms.txt b/websockets/llms.txt similarity index 92% rename from enhanced-websockets/llms.txt rename to websockets/llms.txt index 268e2221..edba4236 100644 --- a/enhanced-websockets/llms.txt +++ b/websockets/llms.txt @@ -1,11 +1,16 @@ --- -url: https://www.helius.dev/docs/enhanced-websockets -last_updated: 2026-04-08 +url: https://www.helius.dev/docs/websockets/overview +last_updated: 2026-05-06 --- -# Enhanced WebSockets API +# WebSockets API -Advanced WebSocket subscriptions with transaction filtering and automatic parsing. Available on Developer, Business, and Professional plans. +Persistent push-based feeds of Solana state changes. Two tiers share the same endpoint: + +- **Enhanced** — `transactionSubscribe`, filtered `accountSubscribe`. Built on LaserStream infrastructure. Developer+, metered at 2 credits per 0.1 MB. +- **Standard** — full Solana WebSocket compatibility (`programSubscribe`, `signatureSubscribe`, `slotSubscribe`, etc.). Available on every plan including Free. + +The methods documented below are the Enhanced tier. For full Standard method coverage, see https://www.helius.dev/docs/api-reference/rpc/websocket-methods. ## Getting Started @@ -49,7 +54,7 @@ ws.on('message', (data) => { - Build trading bots with parsed transaction data - Watch wallet activity with automatic parsing - Filter by transaction type (SWAP, NFT_SALE, TRANSFER) -- Stream Pump.fun AMM data (Guide: https://www.helius.dev/docs/enhanced-websockets/stream-pump-amm-data.md) +- Stream Pump.fun AMM data (Guide: https://www.helius.dev/docs/websockets/stream-pump-amm-data.md) ## Why Helius Enhanced WebSockets - Automatic transaction parsing (same as Enhanced Transactions API) @@ -64,7 +69,7 @@ ws.on('message', (data) => { - Devnet: wss://devnet.helius-rpc.com/?api-key=YOUR_API_KEY - Plans: Developer, Business, Professional - Credits: 2 per 0.1 MB streamed data -- Guide: https://www.helius.dev/docs/enhanced-websockets.md +- Guide: https://www.helius.dev/docs/websockets/overview.md ## Rate Limits diff --git a/websockets/overview.mdx b/websockets/overview.mdx new file mode 100644 index 00000000..2a9e44a6 --- /dev/null +++ b/websockets/overview.mdx @@ -0,0 +1,158 @@ +--- +title: "WebSockets" +sidebarTitle: "Overview" +description: "Stream real-time Solana data over WebSockets. Two tiers: Enhanced (filtered transaction + account subscriptions) and Standard (full Solana WSS compatibility)." +--- + +WebSockets give your application a persistent, push-based feed of Solana state changes — accounts, transactions, slots, blocks. Use them when polling is too slow or too expensive. + +## Tiers + +Helius runs two WebSocket tiers on the same endpoint URL. Pick by what you need to subscribe to: + + + + **Default for new apps.** Adds `transactionSubscribe` and a richer `accountSubscribe` with filters. Built on the same infrastructure as [LaserStream](/laserstream). + + Available on Developer, Business, and Professional [plans](/billing/plans). Metered at **2 credits per 0.1 MB**. + + + **Drop-in compat for existing Solana clients.** All 18+ standard subscription methods (`accountSubscribe`, `programSubscribe`, `signatureSubscribe`, `slotSubscribe`, etc.). + + Available on every plan including Free. Counts as standard RPC requests. + + + +## Endpoints + +Both tiers share the same WebSocket URLs — your subscription method picks the tier: + +``` +Mainnet wss://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY +Devnet wss://devnet.helius-rpc.com/?api-key=YOUR_API_KEY +``` + +For lowest latency on Mainnet, try the [Gatekeeper (Beta)](/gatekeeper/overview) endpoint: + +``` +wss://beta.helius-rpc.com/?api-key=YOUR_API_KEY +``` + +## Subscription methods + +| Method | Tier | Use it for | +| --- | --- | --- | +| [`transactionSubscribe`](/websockets/transaction-subscribe) | Enhanced | Filtered transaction streams (by program, account, vote/failed) | +| [`accountSubscribe`](/websockets/account-subscribe) | Enhanced | Account changes with extended filters; standard `accountSubscribe` works on both tiers | +| `programSubscribe` | Standard | All accounts owned by a program | +| `signatureSubscribe` | Standard | A single signature's confirmation status | +| `slotSubscribe` | Standard | Slot progression and finality | +| `logsSubscribe` | Standard | Transaction logs matching a filter | +| `blockSubscribe` | Standard | New blocks at a commitment level | +| Plus 11 more standard subscriptions | Standard | See [API Reference](/api-reference/rpc/websocket-methods) | + +## Choosing between tiers + + + + **Yes →** Enhanced. `transactionSubscribe` lets you filter by program, accounts, or signature without scanning every block. + + **No →** continue. + + + **Yes →** Standard. Same wire protocol, same method names, same JSON-RPC envelope. Just point your client at Helius's endpoint. + + **No →** Enhanced is the better default for new code. + + + **Yes →** Standard. Enhanced needs Developer+. + + **No →** either; Enhanced gives you more filtering control. + + + +## Commitment levels + +Every subscription accepts a commitment level. Pick by latency-vs-safety: + + + + **Fastest** — transaction processed by a validator, not yet confirmed. + - Latency: ~400 ms + - Risk: can be dropped or reordered + - Use for: real-time UI, low-stakes feeds + + + **Default** — majority of cluster has voted on the slot. + - Latency: ~2–3 s + - Risk: low chance of being dropped + - Use for: most application logic + + + **Safest** — supermajority has voted; effectively irreversible. + - Latency: ~15–30 s + - Risk: minimal + - Use for: financial transactions, settlement logic + + + +For a deeper explanation, see [Understanding Solana Commitment Levels](https://www.helius.dev/blog/solana-commitment-levels). + +## Reconnection + +WebSocket connections drop. Network changes, server restarts, mobile backgrounding — all of these break the connection without warning. + +Production checklist: + +- Send a ping every 30 s. The connection has a 10-minute inactivity timer. +- Watch for `close` and `error` events; reconnect with exponential backoff (start at 1 s, cap at 30 s). +- On reconnect, re-issue every subscription you had open — the server has no memory of subscriptions across connections. +- Track the last slot you received per subscription so you can detect gaps. + +A complete reconnection-aware example is in the [WebSockets quickstart](/websockets/quickstart). + +## When to use something else + +| If you need… | Reach for | +| --- | --- | +| 24-hour replay of missed data | [LaserStream](/laserstream) (gRPC) | +| Sub-processed-commitment latency | [LaserStream Preprocessed](/laserstream/preprocessed-transactions) | +| Server-to-server push without managing a connection | [Webhooks](/webhooks) | +| Raw shred-level streams for HFT | [Shred Delivery](/shred-delivery) | + +See the [streaming chooser](/streaming/overview) for the full comparison. + +## Troubleshooting + + + + - Verify the API key is correct and the plan has sufficient credits. + - Endpoint URL must be `wss://...?api-key=YOUR_KEY` — exactly that shape. + - Check that your firewall allows outbound 443. + + + - Implement the ping/pong heartbeat (see [reconnection](#reconnection)). + - Check your subscription count — too many on one connection can destabilize it. Split across connections at ~50–100 subs each. + + + - Verify the subscription was confirmed (check the response to your subscribe call). + - The account or program you're watching may have no activity in the window. + - If you reconnected, you must re-subscribe — the server doesn't keep state. + + + - Use `confirmed` instead of `finalized` if your use case allows. + - Reduce active subscriptions on the connection. + - For lowest latency, switch to [LaserStream gRPC](/laserstream). + + + +## Next steps + + + + First WebSocket subscription with reconnection logic, in 5 minutes. + + + Every method, parameter, and response shape. + + diff --git a/rpc/websocket/quickstart.mdx b/websockets/quickstart.mdx similarity index 99% rename from rpc/websocket/quickstart.mdx rename to websockets/quickstart.mdx index 445ccece..c575eebd 100644 --- a/rpc/websocket/quickstart.mdx +++ b/websockets/quickstart.mdx @@ -920,7 +920,7 @@ class ErrorHandlingWebSocket extends SolanaWebSocketManager { Complete documentation for all WebSocket subscription methods - + Explore Helius Enhanced WebSockets with additional features and filters diff --git a/enhanced-websockets/stream-pump-amm-data.mdx b/websockets/stream-pump-amm-data.mdx similarity index 100% rename from enhanced-websockets/stream-pump-amm-data.mdx rename to websockets/stream-pump-amm-data.mdx diff --git a/enhanced-websockets/transaction-subscribe.mdx b/websockets/transaction-subscribe.mdx similarity index 100% rename from enhanced-websockets/transaction-subscribe.mdx rename to websockets/transaction-subscribe.mdx