diff --git a/.gitignore b/.gitignore index 4a56caa3..23a53ca9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ package-lock.json i18n.cache en/ .env -.claude/ \ No newline at end of file +.claude +.tool-versions diff --git a/audit.csv b/audit.csv index 90a18704..bd2f7b7d 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,1038,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-06,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,,,,,,,,,, @@ -48,7 +48,7 @@ api-reference/das/getassetproofbatch,getAssetProofBatch,Retrieve Merkle proofs f api-reference/das/getassetsbyauthority,getAssetsByAuthority,"Retrieve all Solana NFTs, compressed NFTs, and tokens controlled by a specific authority address with pagination support",,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),116,2026-02-24,0,2,yes,api-reference/das/getassetsbyauthority.mdx,Reference,,,Keep,,,,,, api-reference/das/getassetsbycreator,getAssetsByCreator,Retrieve all Solana NFTs and compressed NFTs created by a specific creator address with optional verified-only filtering,,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),130,2026-02-24,0,3,yes,api-reference/das/getassetsbycreator.mdx,Reference,,,Keep,,,,,, api-reference/das/getassetsbygroup,getAssetsByGroup,Retrieve all Solana NFTs and compressed NFTs in a specific collection or group with flexible grouping keys and pagination support,,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),157,2026-02-24,0,4,yes,api-reference/das/getassetsbygroup.mdx,Reference,,,Keep,,,,,, -api-reference/das/getassetsbyowner,getAssetsByOwner,"Retrieve all Solana NFTs, compressed NFTs, and fungible tokens owned by a specific wallet address with sorting and pagination options",,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),0,2026-02-24,0,6,yes,api-reference/das/getassetsbyowner.mdx,Reference,,,Keep,,,,,, +api-reference/das/getassetsbyowner,getAssetsByOwner,"Retrieve all Solana NFTs, compressed NFTs, and fungible tokens owned by a specific wallet address with sorting and pagination options",,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),0,2026-02-24,0,5,yes,api-reference/das/getassetsbyowner.mdx,Reference,,,Keep,,,,,, api-reference/das/getnfteditions,getNftEditions,Retrieve all editions and prints of a Solana NFT master edition including edition numbers and metadata with pagination support,,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),40,2026-02-24,0,2,yes,api-reference/das/getnfteditions.mdx,Reference,,,Keep,,,,,, api-reference/das/getsignaturesforasset,getSignaturesForAsset,"Retrieve all historical transaction signatures for a Solana NFT or compressed NFT including transfers, sales, and state changes with pagination",,,yes,API Reference,Solana APIs > Digital Asset Standard (DAS),55,2026-02-24,0,4,yes,api-reference/das/getsignaturesforasset.mdx,Reference,,,Keep,,,,,, 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,,,,,, @@ -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,333,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-05-06,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,31 +172,36 @@ 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,,,,,,,,,, -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,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,,,,,, +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-05-06,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-05-06,7,19,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,8,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-05-06,16,0,yes,index.mdx,,,,,,,,,, +quickstart,Quickstart,"Pick a 5-minute quickstart by what you're building: trading, wallet, indexer, DeFi, or NFT app.",,,no,Documentation,Get Started,340,2026-05-06,9,3,yes,quickstart.mdx,Tutorial,,"trader,wallet,indexer,defi,nft",Rewrite,quickstart/nft,,,,, +quickstart/defi,DeFi quickstart,"Watch a Pump.fun AMM pool for swaps in real time using Enhanced WebSockets, with parsed swap details — under 5 minutes.",tutorial,defi,no,Documentation,Get Started > Quickstart by persona,251,2026-05-06,3,1,yes,quickstart/defi.mdx,Tutorial,,defi,Keep,,,,,, +quickstart/indexer,Indexer quickstart,"Stream live Solana transactions for a program via LaserStream gRPC, with replay-on-reconnect — under 5 minutes.",tutorial,indexer,no,Documentation,Get Started > Quickstart by persona,310,2026-05-06,6,1,yes,quickstart/indexer.mdx,Tutorial,,indexer,Keep,,,,,, +quickstart/nft,NFT quickstart,"Fetch an NFT portfolio with metadata, images, and compression status using the DAS API — under 5 minutes.",tutorial,nft,no,Documentation,Get Started > Quickstart by persona,335,2026-05-06,3,1,yes,quickstart/nft.mdx,Tutorial,,nft,Keep,,,,,, +quickstart/trader,Trader quickstart,"Send a Solana transaction via Helius Sender with an optimal priority fee, in under 5 minutes.",tutorial,trader,no,Documentation,Get Started > Quickstart by persona,313,2026-05-06,5,1,yes,quickstart/trader.mdx,Tutorial,,trader,Keep,,,,,, +quickstart/wallet,Wallet quickstart,"Fetch a wallet's SOL balance, SPL token balances, NFTs, and recent activity in one Node program — under 5 minutes.",tutorial,wallet,no,Documentation,Get Started > Quickstart by persona,238,2026-05-06,5,1,yes,quickstart/wallet.mdx,Tutorial,,wallet,Keep,,,,,, +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,1,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/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-05-06,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-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,8,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-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,1,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/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,4,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,,,,,,,,,, +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,8,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/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-05-06,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,,,,,, @@ -246,35 +251,35 @@ rpc/guides/getversion,How to Use getVersion,"Learn getVersion use cases, code ex 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/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-05-06,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/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,6,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,2848,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-05-06,20,1,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,,,,,, -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,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-05-06,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,,,,,,,,,, +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-05-06,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/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,3,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/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,3,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,,,,,,,,,, +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,13,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,11,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,,,,,,,,,, +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-05-06,9,1,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,2,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,,,,,,,,,, @@ -290,42 +295,42 @@ orb/explore-transactions,How to Track a Solana Transaction,"Learn how to use Orb 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,,,,,,,,,, +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,5,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,2026-05-06,7,1,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,17,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/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,1,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/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,6,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/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,2026-05-06,12,9,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-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,2026-05-06,3,3,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/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,2026-05-06,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,,,,,,,,,, +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,2026-05-06,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,2026-05-06,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,2026-05-06,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,9,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,,,,,, +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,2026-05-06,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,2026-05-06,11,15,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,2026-05-06,4,2,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,2026-05-06,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,2026-05-06,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,556,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-05-06,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,1,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-05-06,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,,,,,, diff --git a/docs.json b/docs.json index 2e0f3f5a..5d7e68a5 100644 --- a/docs.json +++ b/docs.json @@ -163,6 +163,16 @@ "pages": [ "index", "quickstart", + { + "group": "Quickstart by persona", + "pages": [ + "quickstart/trader", + "quickstart/wallet", + "quickstart/indexer", + "quickstart/defi", + "quickstart/nft" + ] + }, "billing/plans", "billing/credits", "billing/rate-limits" diff --git a/examples/quickstarts/defi/.env.example b/examples/quickstarts/defi/.env.example new file mode 100644 index 00000000..44d436f7 --- /dev/null +++ b/examples/quickstarts/defi/.env.example @@ -0,0 +1 @@ +HELIUS_API_KEY= diff --git a/examples/quickstarts/defi/README.md b/examples/quickstarts/defi/README.md new file mode 100644 index 00000000..293caeb8 --- /dev/null +++ b/examples/quickstarts/defi/README.md @@ -0,0 +1,15 @@ +# DeFi quickstart + +Watches Pump.fun AMM swaps in real time. [Enhanced WebSockets `transactionSubscribe`](https://www.helius.dev/docs/websockets/transaction-subscribe) for the live stream, [Enhanced Transactions `parseTransactions`](https://www.helius.dev/docs/enhanced-transactions/parse-transactions) for typed swap events. + +Requires a **Developer+ plan**. + +## Run it + +```bash +cp .env.example .env # add HELIUS_API_KEY +npm install +npm start +``` + +Full walkthrough: [DeFi quickstart](https://www.helius.dev/docs/quickstart/defi). diff --git a/examples/quickstarts/defi/package.json b/examples/quickstarts/defi/package.json new file mode 100644 index 00000000..5eec8304 --- /dev/null +++ b/examples/quickstarts/defi/package.json @@ -0,0 +1,21 @@ +{ + "name": "helius-quickstart-defi", + "version": "1.0.0", + "private": true, + "description": "DeFi quickstart — watch Pump.fun AMM swaps via Enhanced WebSockets + Enhanced Transactions parsing.", + "type": "module", + "scripts": { + "start": "tsx src/index.ts" + }, + "dependencies": { + "dotenv": "^16.4.0", + "helius-sdk": "^2.0.0", + "ws": "^8.18.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "@types/ws": "^8.5.10", + "tsx": "^4.19.0", + "typescript": "^5.5.0" + } +} diff --git a/examples/quickstarts/defi/src/index.ts b/examples/quickstarts/defi/src/index.ts new file mode 100644 index 00000000..3cf41757 --- /dev/null +++ b/examples/quickstarts/defi/src/index.ts @@ -0,0 +1,63 @@ +/** + * DeFi quickstart — watch Pump.fun AMM swaps in real time. Combines: + * - Enhanced WebSockets transactionSubscribe (filtered live stream) + * - Enhanced Transactions parseTransactions (typed swap events) + */ + +import "dotenv/config"; +import WebSocket from "ws"; +import { Helius } from "helius-sdk"; + +const apiKey = process.env.HELIUS_API_KEY; +if (!apiKey) { + console.error("Set HELIUS_API_KEY in .env (see .env.example)."); + process.exit(1); +} + +const helius = new Helius(apiKey); +const PUMP_AMM = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"; + +const ws = new WebSocket(`wss://mainnet.helius-rpc.com/?api-key=${apiKey}`); + +ws.on("open", () => { + console.log("connected — watching Pump AMM swaps"); + ws.send(JSON.stringify({ + jsonrpc: "2.0", + id: 1, + method: "transactionSubscribe", + params: [ + { vote: false, failed: false, accountInclude: [PUMP_AMM] }, + { commitment: "confirmed", encoding: "jsonParsed", transactionDetails: "full", maxSupportedTransactionVersion: 0 }, + ], + })); + setInterval(() => ws.ping(), 30_000); +}); + +ws.on("message", async (raw) => { + const msg = JSON.parse(raw.toString()); + if (msg.method !== "transactionNotification") return; + + const sig = msg.params.result.transaction.transaction.signatures[0]; + + try { + const [parsed] = await helius.rpc.parseTransactions({ transactions: [sig] }); + if (parsed?.type !== "SWAP") return; + + const swap = parsed.events?.swap; + if (!swap) return; + const tokenIn = swap.tokenInputs?.[0]; + const tokenOut = swap.tokenOutputs?.[0]; + + console.log( + `[${parsed.timestamp}] ${parsed.feePayer.slice(0, 4)}…${parsed.feePayer.slice(-4)}`, + `swap ${tokenIn?.tokenAmount} ${tokenIn?.mint?.slice(0, 4)}…`, + `→ ${tokenOut?.tokenAmount} ${tokenOut?.mint?.slice(0, 4)}…`, + `(${sig.slice(0, 20)}…)` + ); + } catch (err) { + console.error("parse error:", err); + } +}); + +ws.on("error", (err) => console.error("ws error:", err)); +ws.on("close", (code) => console.log("closed:", code)); diff --git a/examples/quickstarts/defi/tsconfig.json b/examples/quickstarts/defi/tsconfig.json new file mode 100644 index 00000000..6cdbfa87 --- /dev/null +++ b/examples/quickstarts/defi/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/examples/quickstarts/indexer/.env.example b/examples/quickstarts/indexer/.env.example new file mode 100644 index 00000000..61ce425d --- /dev/null +++ b/examples/quickstarts/indexer/.env.example @@ -0,0 +1,4 @@ +HELIUS_API_KEY= + +# Optional — defaults to US East. See https://www.helius.dev/docs/laserstream#mainnet-endpoints +# LASERSTREAM_ENDPOINT=https://laserstream-mainnet-fra.helius-rpc.com diff --git a/examples/quickstarts/indexer/README.md b/examples/quickstarts/indexer/README.md new file mode 100644 index 00000000..d73dc413 --- /dev/null +++ b/examples/quickstarts/indexer/README.md @@ -0,0 +1,15 @@ +# Indexer quickstart + +Subscribes to Jupiter aggregator V6 transactions via [LaserStream gRPC](https://www.helius.dev/docs/laserstream) and prints each one. Marked-up persistence hook ready for your DB. + +Requires a **Business+ plan on Mainnet** or **Developer+ plan on Devnet**. + +## Run it + +```bash +cp .env.example .env # add HELIUS_API_KEY +npm install +npm start +``` + +Full walkthrough: [Indexer quickstart](https://www.helius.dev/docs/quickstart/indexer). diff --git a/examples/quickstarts/indexer/package.json b/examples/quickstarts/indexer/package.json new file mode 100644 index 00000000..6595e116 --- /dev/null +++ b/examples/quickstarts/indexer/package.json @@ -0,0 +1,19 @@ +{ + "name": "helius-quickstart-indexer", + "version": "1.0.0", + "private": true, + "description": "Indexer quickstart — subscribe to Jupiter transactions via LaserStream gRPC.", + "type": "module", + "scripts": { + "start": "tsx src/index.ts" + }, + "dependencies": { + "dotenv": "^16.4.0", + "helius-laserstream": "^1.0.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "tsx": "^4.19.0", + "typescript": "^5.5.0" + } +} diff --git a/examples/quickstarts/indexer/src/index.ts b/examples/quickstarts/indexer/src/index.ts new file mode 100644 index 00000000..f9e936a1 --- /dev/null +++ b/examples/quickstarts/indexer/src/index.ts @@ -0,0 +1,72 @@ +/** + * Indexer quickstart — subscribe to Jupiter aggregator V6 transactions via + * LaserStream gRPC. Prints each transaction; the persistence hook is marked + * with a comment so you can wire your DB of choice. + */ + +import "dotenv/config"; +import { + subscribe, + LaserstreamConfig, + CommitmentLevel, + SubscribeRequest, +} from "helius-laserstream"; + +const apiKey = process.env.HELIUS_API_KEY; +if (!apiKey) { + console.error("Set HELIUS_API_KEY in .env (see .env.example)."); + process.exit(1); +} + +const config: LaserstreamConfig = { + apiKey, + endpoint: process.env.LASERSTREAM_ENDPOINT ?? "https://laserstream-mainnet-ewr.helius-rpc.com", +}; + +const JUPITER = "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"; + +const request: SubscribeRequest = { + transactions: { + jupiter: { + vote: false, + failed: false, + accountInclude: [JUPITER], + accountExclude: [], + accountRequired: [], + }, + }, + accounts: {}, + slots: {}, + blocks: {}, + blocksMeta: {}, + entry: {}, + transactionsStatus: {}, + accountsDataSlice: [], + commitment: CommitmentLevel.CONFIRMED, +}; + +let count = 0; +const start = Date.now(); + +await subscribe( + config, + request, + (data) => { + if (data.transaction) { + count++; + const sig = Buffer.from(data.transaction.transaction.signature).toString("base64"); + const slot = data.transaction.slot; + console.log(`[${count}] slot=${slot} sig=${sig.slice(0, 20)}...`); + + // Production indexer hook: + // await db.insert("transactions", { signature: sig, slot, raw: data }); + } + if (data.pong) { + const elapsed = ((Date.now() - start) / 1000).toFixed(0); + console.log(`heartbeat — ${count} txs in ${elapsed}s`); + } + }, + (err) => { + console.error("stream error:", err); + } +); diff --git a/examples/quickstarts/indexer/tsconfig.json b/examples/quickstarts/indexer/tsconfig.json new file mode 100644 index 00000000..6cdbfa87 --- /dev/null +++ b/examples/quickstarts/indexer/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/examples/quickstarts/nft/.env.example b/examples/quickstarts/nft/.env.example new file mode 100644 index 00000000..44d436f7 --- /dev/null +++ b/examples/quickstarts/nft/.env.example @@ -0,0 +1 @@ +HELIUS_API_KEY= diff --git a/examples/quickstarts/nft/README.md b/examples/quickstarts/nft/README.md new file mode 100644 index 00000000..f3d6467f --- /dev/null +++ b/examples/quickstarts/nft/README.md @@ -0,0 +1,15 @@ +# NFT quickstart + +Fetches a wallet's full NFT portfolio (standard + compressed), groups by collection, prints a summary. Uses [DAS `getAssetsByOwner`](https://www.helius.dev/docs/das/get-nfts). + +## Run it + +```bash +cp .env.example .env # add HELIUS_API_KEY +npm install +npm start +# or pass any wallet address: +npx tsx src/index.ts +``` + +Full walkthrough: [NFT quickstart](https://www.helius.dev/docs/quickstart/nft). diff --git a/examples/quickstarts/nft/package.json b/examples/quickstarts/nft/package.json new file mode 100644 index 00000000..d9df5e7a --- /dev/null +++ b/examples/quickstarts/nft/package.json @@ -0,0 +1,19 @@ +{ + "name": "helius-quickstart-nft", + "version": "1.0.0", + "private": true, + "description": "NFT quickstart — fetch a wallet's NFT portfolio with metadata via DAS getAssetsByOwner.", + "type": "module", + "scripts": { + "start": "tsx src/index.ts" + }, + "dependencies": { + "dotenv": "^16.4.0", + "helius-sdk": "^2.0.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "tsx": "^4.19.0", + "typescript": "^5.5.0" + } +} diff --git a/examples/quickstarts/nft/src/index.ts b/examples/quickstarts/nft/src/index.ts new file mode 100644 index 00000000..074bdd37 --- /dev/null +++ b/examples/quickstarts/nft/src/index.ts @@ -0,0 +1,51 @@ +/** + * NFT quickstart — fetch a wallet's full NFT portfolio via DAS, group by + * collection, and print a summary. The query a marketplace makes for a + * portfolio screen. + */ + +import "dotenv/config"; +import { Helius } from "helius-sdk"; + +const apiKey = process.env.HELIUS_API_KEY; +if (!apiKey) { + console.error("Set HELIUS_API_KEY in .env (see .env.example)."); + process.exit(1); +} + +const helius = new Helius(apiKey); +const owner = process.argv[2] ?? "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"; + +const items: Array = []; +for (let page = 1; ; page++) { + const res = await helius.rpc.getAssetsByOwner({ + ownerAddress: owner, + page, + limit: 100, + displayOptions: { showFungible: false, showCollectionMetadata: true }, + }); + items.push(...res.items); + if (res.items.length < 100) break; +} + +console.log(`\n=== NFT portfolio: ${owner} ===`); +console.log(`Total NFTs: ${items.length}\n`); + +const byCollection = new Map>(); +for (const a of items) { + const collection = + a.grouping?.find((g: any) => g.group_key === "collection")?.group_value ?? "Individual"; + if (!byCollection.has(collection)) byCollection.set(collection, []); + byCollection.get(collection)!.push(a); +} + +const sorted = [...byCollection.entries()].sort((a, b) => b[1].length - a[1].length); +for (const [collection, list] of sorted) { + const compressed = list.filter((a) => a.compression?.compressed).length; + console.log(`${collection.slice(0, 40)} — ${list.length} (${compressed} compressed)`); + for (const a of list.slice(0, 3)) { + const name = a.content?.metadata?.name ?? "Unnamed"; + console.log(` · ${name}`); + } + if (list.length > 3) console.log(` · … +${list.length - 3} more`); +} diff --git a/examples/quickstarts/nft/tsconfig.json b/examples/quickstarts/nft/tsconfig.json new file mode 100644 index 00000000..6cdbfa87 --- /dev/null +++ b/examples/quickstarts/nft/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/examples/quickstarts/trader/.env.example b/examples/quickstarts/trader/.env.example new file mode 100644 index 00000000..836990d0 --- /dev/null +++ b/examples/quickstarts/trader/.env.example @@ -0,0 +1,4 @@ +HELIUS_API_KEY= +# Base58-encoded secret key for a dev wallet only. Anyone with this string +# can drain the wallet — never use a production key here. +WALLET_SECRET_KEY= diff --git a/examples/quickstarts/trader/README.md b/examples/quickstarts/trader/README.md new file mode 100644 index 00000000..04f12f1d --- /dev/null +++ b/examples/quickstarts/trader/README.md @@ -0,0 +1,26 @@ +# Trader quickstart + +Sends a 0.0001 SOL self-transfer through [Helius Sender](https://www.helius.dev/docs/sending-transactions/sender) with a priority fee from the [Priority Fee API](https://www.helius.dev/docs/priority-fee-api). + +The same code path a trading hot-path uses for time-sensitive sends. + +## Run it + +```bash +cp .env.example .env +# Fill in HELIUS_API_KEY and WALLET_SECRET_KEY (dev wallet, base58) + +npm install +npm start +``` + +Expected output: + +``` +wallet: 7xK... +priority fee: 87000 microLamports per CU +submitted: 4xK...long-base58-signature...gJ +landed at slot 297148321 (842 ms) +``` + +Full walkthrough: [Trader quickstart](https://www.helius.dev/docs/quickstart/trader). diff --git a/examples/quickstarts/trader/package.json b/examples/quickstarts/trader/package.json new file mode 100644 index 00000000..8c4b87c0 --- /dev/null +++ b/examples/quickstarts/trader/package.json @@ -0,0 +1,21 @@ +{ + "name": "helius-quickstart-trader", + "version": "1.0.0", + "private": true, + "description": "Trader quickstart — send a transaction via Helius Sender with an optimal priority fee.", + "type": "module", + "scripts": { + "start": "tsx src/index.ts" + }, + "dependencies": { + "@solana/web3.js": "^1.95.0", + "bs58": "^5.0.0", + "dotenv": "^16.4.0", + "helius-sdk": "^2.0.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "tsx": "^4.19.0", + "typescript": "^5.5.0" + } +} diff --git a/examples/quickstarts/trader/src/index.ts b/examples/quickstarts/trader/src/index.ts new file mode 100644 index 00000000..32e7a51a --- /dev/null +++ b/examples/quickstarts/trader/src/index.ts @@ -0,0 +1,95 @@ +/** + * Trader quickstart — send a self-transfer through Helius Sender with an + * optimal priority fee. Walks the four steps a real trading hot-path takes: + * + * 1. build the instructions + * 2. estimate the priority fee + * 3. sign with a fresh blockhash + * 4. submit via Sender's /fast endpoint + * 5. poll for confirmation + * + * Usage: copy .env.example to .env, fill in HELIUS_API_KEY and + * WALLET_SECRET_KEY (base58, dev wallet only), then run `npm start`. + */ + +import "dotenv/config"; +import { Helius } from "helius-sdk"; +import { + Connection, + Keypair, + SystemProgram, + Transaction, + ComputeBudgetProgram, +} from "@solana/web3.js"; +import bs58 from "bs58"; + +const apiKey = process.env.HELIUS_API_KEY; +const secret = process.env.WALLET_SECRET_KEY; +if (!apiKey || !secret) { + console.error("Set HELIUS_API_KEY and WALLET_SECRET_KEY in .env (see .env.example)."); + process.exit(1); +} + +const helius = new Helius(apiKey); +const connection = new Connection(`https://mainnet.helius-rpc.com/?api-key=${apiKey}`); +const wallet = Keypair.fromSecretKey(bs58.decode(secret)); + +console.log("wallet:", wallet.publicKey.toBase58()); + +// 1. Build instructions (self-transfer of 0.0001 SOL — the simplest demo). +const transferIx = SystemProgram.transfer({ + fromPubkey: wallet.publicKey, + toPubkey: wallet.publicKey, + lamports: 100_000, +}); + +// 2. Ask the Priority Fee API for an optimal fee. +const { priorityFeeEstimate } = await helius.rpc.getPriorityFeeEstimate({ + transactionEncoding: "base64", + options: { priorityLevel: "High", recommended: true }, + accountKeys: [wallet.publicKey.toBase58()], +}); +const cuPrice = Math.ceil(priorityFeeEstimate ?? 50_000); +console.log("priority fee:", cuPrice, "microLamports per CU"); + +const cuPriceIx = ComputeBudgetProgram.setComputeUnitPrice({ microLamports: BigInt(cuPrice) }); +const cuLimitIx = ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }); + +// 3. Sign with a fresh blockhash. +const { blockhash } = await connection.getLatestBlockhash("confirmed"); +const tx = new Transaction({ recentBlockhash: blockhash, feePayer: wallet.publicKey }); +tx.add(cuPriceIx, cuLimitIx, transferIx); +tx.sign(wallet); + +// 4. Submit via Sender. +const senderUrl = `https://sender.helius-rpc.com/fast?api-key=${apiKey}`; +const res = await fetch(senderUrl, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + jsonrpc: "2.0", + id: 1, + method: "sendTransaction", + params: [ + tx.serialize().toString("base64"), + { encoding: "base64", skipPreflight: true, maxRetries: 0 }, + ], + }), +}); +const body = (await res.json()) as { result?: string; error?: unknown }; +if (body.error) throw new Error(JSON.stringify(body.error)); +const signature = body.result!; +console.log("submitted:", signature); + +// 5. Poll. +const start = Date.now(); +while (Date.now() - start < 60_000) { + const status = await connection.getSignatureStatuses([signature]); + const conf = status.value[0]; + if (conf?.confirmationStatus === "confirmed" || conf?.confirmationStatus === "finalized") { + console.log(`landed at slot ${conf.slot} (${Date.now() - start} ms)`); + process.exit(0); + } + await new Promise((r) => setTimeout(r, 500)); +} +throw new Error("timeout: transaction did not confirm in 60s"); diff --git a/examples/quickstarts/trader/tsconfig.json b/examples/quickstarts/trader/tsconfig.json new file mode 100644 index 00000000..6cdbfa87 --- /dev/null +++ b/examples/quickstarts/trader/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/examples/quickstarts/wallet/.env.example b/examples/quickstarts/wallet/.env.example new file mode 100644 index 00000000..44d436f7 --- /dev/null +++ b/examples/quickstarts/wallet/.env.example @@ -0,0 +1 @@ +HELIUS_API_KEY= diff --git a/examples/quickstarts/wallet/README.md b/examples/quickstarts/wallet/README.md new file mode 100644 index 00000000..776fc289 --- /dev/null +++ b/examples/quickstarts/wallet/README.md @@ -0,0 +1,15 @@ +# Wallet quickstart + +Prints a wallet snapshot — SOL balance, SPL tokens, NFTs, and recent activity — using the [Wallet API](https://www.helius.dev/docs/wallet-api/overview) and [DAS](https://www.helius.dev/docs/das-api). + +## Run it + +```bash +cp .env.example .env # add HELIUS_API_KEY +npm install +npm start +# or pass an address: +npx tsx src/index.ts +``` + +Full walkthrough: [Wallet quickstart](https://www.helius.dev/docs/quickstart/wallet). diff --git a/examples/quickstarts/wallet/package.json b/examples/quickstarts/wallet/package.json new file mode 100644 index 00000000..a3734e7f --- /dev/null +++ b/examples/quickstarts/wallet/package.json @@ -0,0 +1,19 @@ +{ + "name": "helius-quickstart-wallet", + "version": "1.0.0", + "private": true, + "description": "Wallet quickstart — SOL + SPL + NFT + history snapshot via the Wallet API and DAS.", + "type": "module", + "scripts": { + "start": "tsx src/index.ts" + }, + "dependencies": { + "dotenv": "^16.4.0", + "helius-sdk": "^2.0.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "tsx": "^4.19.0", + "typescript": "^5.5.0" + } +} diff --git a/examples/quickstarts/wallet/src/index.ts b/examples/quickstarts/wallet/src/index.ts new file mode 100644 index 00000000..0e048d6c --- /dev/null +++ b/examples/quickstarts/wallet/src/index.ts @@ -0,0 +1,51 @@ +/** + * Wallet quickstart — print a snapshot of any Solana wallet. + * + * 1. SOL balance via standard RPC + * 2. SPL token quantities via Wallet API + * 3. NFT list via DAS + * 4. Recent transfers via Wallet API + */ + +import "dotenv/config"; +import { Helius } from "helius-sdk"; + +const apiKey = process.env.HELIUS_API_KEY; +if (!apiKey) { + console.error("Set HELIUS_API_KEY in .env (see .env.example)."); + process.exit(1); +} + +const helius = new Helius(apiKey); +const address = process.argv[2] ?? "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"; + +const balanceLamports = await helius.connection.getBalance(address as any); +const sol = balanceLamports / 1e9; + +const wallet = await helius.rpc.getWalletBalances({ wallet: address }); + +const assets = await helius.rpc.getAssetsByOwner({ + ownerAddress: address, + page: 1, + limit: 10, + displayOptions: { showFungible: false }, +}); + +console.log(`\n=== Wallet snapshot: ${address} ===`); +console.log(`SOL: ${sol.toFixed(4)}`); +console.log(`SPL tokens: ${wallet.tokens?.length ?? 0}`); +console.log(`NFTs (showing first 10 of ${assets.total}):`); +for (const a of assets.items) { + const name = a.content?.metadata?.name ?? "Unnamed"; + const compressed = a.compression?.compressed ? " [compressed]" : ""; + console.log(` - ${name}${compressed}`); +} + +const history = await helius.rpc.getTransfersByAddress({ + wallet: address, + limit: 5, +}); +console.log(`\nLast ${history.transfers?.length ?? 0} transfers:`); +for (const t of history.transfers ?? []) { + console.log(` ${t.timestamp} ${t.amount} ${t.symbol ?? "SOL"} ${t.type}`); +} diff --git a/examples/quickstarts/wallet/tsconfig.json b/examples/quickstarts/wallet/tsconfig.json new file mode 100644 index 00000000..6cdbfa87 --- /dev/null +++ b/examples/quickstarts/wallet/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/quickstart.mdx b/quickstart.mdx index 223d9728..20b68ea7 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -1,220 +1,79 @@ --- -title: "Build Your First Solana App with Helius" -sidebarTitle: "Build Your First App" -description: "Learn the fundamentals of building on Solana by creating your first application using Helius APIs. From setup to deployment in minutes." +title: "Quickstart" +sidebarTitle: "Quickstart" +description: "Pick a 5-minute quickstart by what you're building: trading, wallet, indexer, DeFi, or NFT app." --- -import { Quickstart } from "/snippets/quickstart.mdx"; - -## What does Helius provide? - -Helius provides REST and JSON-RPC APIs for building any Solana application — from analytic platforms and DeFi dashboards to trading bots and compliance tools. Query token balances, fetch NFT metadata, stream real-time blockchain events, send optimized transactions, and monitor wallets with a single API key. This guide walks you through your first API call and a working application in minutes. - - - - Start by creating your free account at the [Helius Dashboard](https://dashboard.helius.dev/dashboard). Your free tier includes 100,000 DAS API calls per month; perfect for getting started and building prototypes. - - Agents looking to programmatically create a Helius account should use the [Helius CLI](/agents/cli) and reference the [Agent signup instructions](https://dashboard.helius.dev/agents.md). - - - Navigate to the [API Keys](https://dashboard.helius.dev/api-keys) section and copy your key. This key gives you access to all Helius APIs, including RPC nodes, DAS API, and enhanced transaction data. - - - **Performance Tip**: Use our Gatekeeper (Beta) endpoint: `https://beta.helius-rpc.com` instead of `https://mainnet.helius-rpc.com` for lower latency. Your API key works on both. [Learn more →](/gatekeeper/overview) - - - - Let's start with a practical example: fetching NFTs from a wallet. We'll use the [getAssetsByOwner](/api-reference/das/getassetsbyowner) method to query assets owned by `86xCn…o2MMY` (Anatoly Yakovenko's wallet, co-founder of Solana). - - - - **What's happening here?** The DAS API allows you to query compressed and standard NFTs with a single call. Notice how the response includes metadata, image URLs, and ownership information - all the data you need to build rich user experiences. - - - Great! You've successfully fetched NFT data. The response includes: - - **Asset ID**: Unique identifier for each NFT - - **Metadata**: Name, symbol, description, and attributes - - **Content**: Image URLs and file information - - **Ownership**: Current owner and authority information - - - -## Build It with Code - -Now let's implement this in a real application. We'll create a simple NFT portfolio viewer that you can expand upon. - - -We'll use Node.js for this example. Make sure you have it installed from [nodejs.org](https://nodejs.org/en/download). - - - - -```bash -mkdir solana-nft-viewer -cd solana-nft-viewer -npm init -y -npm install node-fetch -``` - - -```javascript nft-portfolio.js -const fetch = require('node-fetch'); - -class NFTPortfolioViewer { - constructor(apiKey) { - this.apiKey = apiKey; - this.baseUrl = 'https://mainnet.helius-rpc.com'; - } - - async fetchNFTsByOwner(ownerAddress, limit = 10) { - try { - const response = await fetch(`${this.baseUrl}/?api-key=${this.apiKey}`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - jsonrpc: '2.0', - id: '1', - method: 'getAssetsByOwner', - params: { - ownerAddress, - page: 1, - limit, - displayOptions: { - showFungible: false, - showNativeBalance: false, - }, - }, - }), - }); - - const data = await response.json(); - - if (data.error) { - throw new Error(data.error.message); - } - - return data.result; - } catch (error) { - console.error('Error fetching NFTs:', error.message); - throw error; - } - } - - displayNFTPortfolio(nfts) { - console.log('\n🖼️ NFT Portfolio Summary'); - console.log('========================'); - console.log(`Total NFTs: ${nfts.total}`); - console.log(`Showing: ${nfts.items.length} items\n`); - - nfts.items.forEach((nft, index) => { - console.log(`${index + 1}. ${nft.content?.metadata?.name || 'Unnamed NFT'}`); - console.log(` Collection: ${nft.grouping?.[0]?.group_value || 'Individual'}`); - console.log(` Compressed: ${nft.compression?.compressed ? 'Yes' : 'No'}`); - console.log(` Image: ${nft.content?.files?.[0]?.uri || 'No image'}`); - console.log(` ID: ${nft.id}\n`); - }); - } - - async getRandomNFT(ownerAddress) { - const portfolio = await this.fetchNFTsByOwner(ownerAddress, 50); - - if (portfolio.items.length === 0) { - console.log('No NFTs found for this address.'); - return null; - } - - const randomIndex = Math.floor(Math.random() * portfolio.items.length); - return portfolio.items[randomIndex]; - } -} - -// Usage example -async function main() { - const viewer = new NFTPortfolioViewer('YOUR_API_KEY'); - - // Anatoly's wallet address - const walletAddress = '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY'; - - console.log('🚀 Fetching NFT portfolio...'); - - try { - // Get full portfolio overview - const portfolio = await viewer.fetchNFTsByOwner(walletAddress); - viewer.displayNFTPortfolio(portfolio); - - // Get a random NFT for featured display - console.log('🎲 Featured Random NFT:'); - console.log('====================='); - const randomNFT = await viewer.getRandomNFT(walletAddress); - - if (randomNFT) { - console.log(`Name: ${randomNFT.content?.metadata?.name}`); - console.log(`Description: ${randomNFT.content?.metadata?.description || 'No description'}`); - console.log(`Image: ${randomNFT.content?.files?.[0]?.uri}`); - } - - } catch (error) { - console.error('Failed to fetch NFT data:', error.message); - } -} - -main(); -``` - - - Replace `YOUR_API_KEY` with your actual API key from the Helius dashboard. - - -```bash -node nft-portfolio.js -``` - - - You've built your first Solana application! The output shows: - - Total NFT count in the wallet - - Individual NFT details including compression status - - Collection information - - A featured random NFT - - **What you've learned:** - - How to structure API calls to Helius - - Working with the DAS API response format - - Handling compressed vs standard NFTs - - Building reusable code for NFT operations - - - -## Take It Further - -Now that you understand the basics, explore these advanced features: +Pick the quickstart that matches what you're building. Each is under 5 minutes from sign-up to your first working call, with a copy-pasteable Node project you can also clone from [`examples/quickstarts/`](https://github.com/helius-labs/docs/tree/main/examples/quickstarts). - - Learn transaction optimization, priority fees, and smart routing for reliable execution. + + **Send a transaction via Helius Sender** with an optimal priority fee. Sub-second landing time. + + *Uses: Sender, Priority Fee API* - - Search NFTs by traits, fetch collection stats, and work with token metadata at scale. + + **Print a wallet snapshot** — SOL, SPL tokens, NFTs, recent activity in one program. + + *Uses: Wallet API, DAS, RPC* - - Stream live blockchain data with sub-second latency using gRPC or enhanced WebSockets. + + **Subscribe to live transactions** for a program via LaserStream gRPC, with replay-on-reconnect. + + *Uses: LaserStream gRPC* + + + **Watch live swaps** on a Pump.fun pool with parsed swap details. + + *Uses: Enhanced WebSockets, Enhanced Transactions* - - Set up intelligent notifications for wallet activity, NFT sales, and custom on-chain events. + + + + + **Fetch a wallet's NFT portfolio** with metadata, images, and compression status. + + *Uses: DAS API* -## What's Next? +## Not sure which one? + +| If you're building… | Start here | +| --- | --- | +| A trading bot or HFT app | [Trader](/quickstart/trader) | +| A wallet, portfolio dashboard, or accounting tool | [Wallet](/quickstart/wallet) | +| A backend that needs to ingest historical or live chain data | [Indexer](/quickstart/indexer) | +| A DEX, perp protocol, or live-trade UI | [DeFi](/quickstart/defi) | +| An NFT marketplace, generator, or PFP tool | [NFT](/quickstart/nft) | +| Something else | [Choose a data API](/chain-state/overview) or [a streaming product](/streaming/overview) | + +## What every quickstart covers -You've successfully built your first Solana application with Helius! Here are some ideas to expand your project: +Each persona quickstart follows the same shape so you can switch between them without re-learning the structure: -- **Add wallet connection**: Integrate with wallets -- **Build a UI**: Create a React/Vue frontend to display the portfolio -- **Add filtering**: Search by collection, traits, or mint date -- **Real-time updates**: Use WebSockets to show live portfolio changes -- **Analytics**: Track portfolio value and NFT price history +1. **Outcome** — one sentence of what you'll have at the end. +2. **Prerequisites** — Node, an API key, anything else. +3. **Run it** — a single copy-pasteable code block. +4. **Expected output** — exactly what you should see. +5. **Troubleshooting** — the 3–5 errors most likely to bite. +6. **Next steps** — three links: a deep-dive, a related reference, and one related guide. + +Pages are kept short on purpose. Anything beyond the 5-minute path is a link out. + +## After the quickstart + + + + Pick the right read API for your query: RPC, DAS, indexed reads, Wallet API, Enhanced Transactions. + + + Pick the right streaming product: LaserStream, WebSockets, Webhooks, Shreds. + + + Pick the right send path: Sender, Bundles, sendTransaction, Priority Fee. + + + Solana and Helius terminology in one place. + + diff --git a/quickstart/defi.mdx b/quickstart/defi.mdx new file mode 100644 index 00000000..6c45b209 --- /dev/null +++ b/quickstart/defi.mdx @@ -0,0 +1,152 @@ +--- +title: "DeFi quickstart" +sidebarTitle: "DeFi" +description: "Watch a Pump.fun AMM pool for swaps in real time using Enhanced WebSockets, with parsed swap details — under 5 minutes." +pageType: tutorial +persona: defi +estReadMinutes: 5 +--- + +## Outcome + +By the end of this guide, you'll have a Node program that subscribes to swaps on a specific Pump.fun token, prints the parsed swap (token in, token out, amounts, swapper) as it happens. The same shape a DEX UI uses for live trade tickers. + +## Prerequisites + +- Node.js 20 or later +- A Helius API key on a **Developer plan or higher** (Enhanced WebSockets are gated) +- A Pump.fun token mint address (the example uses one of the most-traded tokens; swap any mint you want) + +## Install + +```bash +npm install ws helius-sdk dotenv +``` + +```bash +echo "HELIUS_API_KEY=YOUR_API_KEY" > .env +``` + +## Subscribe to swaps + +```ts src/index.ts [expandable] +import "dotenv/config"; +import WebSocket from "ws"; +import { Helius } from "helius-sdk"; + +const apiKey = process.env.HELIUS_API_KEY!; +const helius = new Helius(apiKey); + +// Pump.fun AMM program — every swap on a Pump token routes through this. +const PUMP_AMM = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"; + +const ws = new WebSocket(`wss://mainnet.helius-rpc.com/?api-key=${apiKey}`); + +ws.on("open", () => { + console.log("connected — watching Pump AMM swaps"); + + // Enhanced transactionSubscribe — already filtered to swaps + parsed. + ws.send(JSON.stringify({ + jsonrpc: "2.0", + id: 1, + method: "transactionSubscribe", + params: [ + { vote: false, failed: false, accountInclude: [PUMP_AMM] }, + { commitment: "confirmed", encoding: "jsonParsed", transactionDetails: "full", maxSupportedTransactionVersion: 0 }, + ], + })); + + // Keep-alive every 30s — server closes after 10 min of silence. + setInterval(() => ws.ping(), 30_000); +}); + +ws.on("message", async (raw) => { + const msg = JSON.parse(raw.toString()); + if (msg.method !== "transactionNotification") return; + + const sig = msg.params.result.transaction.transaction.signatures[0]; + + // Enhanced transactions API — gives us a typed event ("SWAP") instead of raw instructions. + const [parsed] = await helius.rpc.parseTransactions({ transactions: [sig] }); + if (parsed?.type !== "SWAP") return; + + const swap = parsed.events?.swap; + if (!swap) return; + + const tokenIn = swap.tokenInputs?.[0]; + const tokenOut = swap.tokenOutputs?.[0]; + + console.log( + `[${parsed.timestamp}] ${parsed.feePayer.slice(0, 4)}…${parsed.feePayer.slice(-4)}`, + `swap ${tokenIn?.tokenAmount} ${tokenIn?.mint?.slice(0, 4)}…`, + `→ ${tokenOut?.tokenAmount} ${tokenOut?.mint?.slice(0, 4)}…`, + `(${sig.slice(0, 20)}…)` + ); +}); + +ws.on("error", (err) => console.error("ws error:", err)); +ws.on("close", (code) => console.log("closed:", code)); +``` + +[Clone this project on GitHub →](https://github.com/helius-labs/docs/tree/main/examples/quickstarts/defi) + +## Run it + +```bash +npx tsx src/index.ts +``` + +## Expected output + +``` +connected — watching Pump AMM swaps +[1714912345] 7xK8…dJ2P swap 250000 abc1… → 0.0145 So111… (4xK8m7dQpRT5...) +[1714912347] 9aB3…cF5e swap 0.05 So111… → 1850000 abc1… (2gN9xR4tLp...) +[1714912349] 3kL7…mR9q swap 100000 abc1… → 0.0058 So111… (5wJ6yK8mP...) +... +``` + +Pump AMM is high-volume; expect several swaps per second. + +## Troubleshooting + + + + Two things to check: + - **Plan tier** — `transactionSubscribe` is Enhanced WebSocket only, gated to Developer+ plans. + - **Filter** — the `accountInclude` address must be active. If you swapped to a low-volume Pump token mint, fall back to the AMM program ID for traffic. + + + The server closes idle connections at 10 min. The example sends a ping every 30 s — confirm the `setInterval` is running and not blocked by an exception. + + + Some transactions touch the AMM program but aren't user-facing swaps (e.g., LP adds, admin updates). The `type !== 'SWAP'` guard skips them — that's expected. + + + Each notification triggers a `parseTransactions` HTTP call. Under high load, batch them: + + ```ts + const buffer: string[] = []; + setInterval(async () => { + if (buffer.length === 0) return; + const batch = buffer.splice(0, 100); + const parsed = await helius.rpc.parseTransactions({ transactions: batch }); + // process parsed events + }, 1000); + ``` + + + +## Next steps + + + + Full method list — `accountSubscribe`, `programSubscribe`, `signatureSubscribe`, etc. + + + Parse historical transactions, filter by event type (swap, NFT sale, transfer). + + + For sub-second-and-below latency, switch from WebSockets to gRPC with replay. + + diff --git a/quickstart/indexer.mdx b/quickstart/indexer.mdx new file mode 100644 index 00000000..ac52697b --- /dev/null +++ b/quickstart/indexer.mdx @@ -0,0 +1,159 @@ +--- +title: "Indexer quickstart" +sidebarTitle: "Indexer" +description: "Stream live Solana transactions for a program via LaserStream gRPC, with replay-on-reconnect — under 5 minutes." +pageType: tutorial +persona: indexer +estReadMinutes: 5 +--- + +## Outcome + +By the end of this guide, you'll have a LaserStream gRPC subscription that prints every confirmed transaction touching the Jupiter aggregator program. The same subscription a production indexer wires into a database. + + + LaserStream gRPC requires a **Business plan** on Mainnet or **Developer plan** on Devnet. The free tier doesn't include gRPC streaming. For a free option, see the [WebSockets quickstart](/websockets/quickstart). + + +## Prerequisites + +- Node.js 20 or later +- A Helius API key on a Business+ plan (Mainnet) or Developer+ plan (Devnet) + +## Install + +```bash +npm install helius-laserstream dotenv +``` + +```bash +echo "HELIUS_API_KEY=YOUR_API_KEY" > .env +``` + +## Open the stream + +```ts src/index.ts [expandable] +import "dotenv/config"; +import { + subscribe, + LaserstreamConfig, + CommitmentLevel, + SubscribeRequest, +} from "helius-laserstream"; + +const apiKey = process.env.HELIUS_API_KEY!; + +const config: LaserstreamConfig = { + apiKey, + endpoint: "https://laserstream-mainnet-ewr.helius-rpc.com", // pick the closest region +}; + +// Jupiter aggregator V6 — high-throughput so you'll see traffic immediately. +const JUPITER = "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"; + +const request: SubscribeRequest = { + transactions: { + jupiter: { + vote: false, + failed: false, + accountInclude: [JUPITER], + accountExclude: [], + accountRequired: [], + }, + }, + accounts: {}, + slots: {}, + blocks: {}, + blocksMeta: {}, + entry: {}, + transactionsStatus: {}, + accountsDataSlice: [], + commitment: CommitmentLevel.CONFIRMED, +}; + +let count = 0; +const start = Date.now(); + +await subscribe( + config, + request, + (data) => { + if (data.transaction) { + count++; + const sig = Buffer.from(data.transaction.transaction.signature).toString("base64"); + const slot = data.transaction.slot; + console.log(`[${count}] slot=${slot} sig=${sig.slice(0, 20)}...`); + + // Production indexer hook: persist to DB here. + // await db.insert("transactions", { signature: sig, slot, raw: data }); + } + if (data.pong) { + const elapsed = ((Date.now() - start) / 1000).toFixed(0); + console.log(`heartbeat — ${count} txs in ${elapsed}s`); + } + }, + (err) => { + console.error("stream error:", err); + } +); +``` + +[Clone this project on GitHub →](https://github.com/helius-labs/docs/tree/main/examples/quickstarts/indexer) + +## Run it + +```bash +npx tsx src/index.ts +``` + +## Expected output + +``` +[1] slot=297148321 sig=4xK8m7dQpRT5... +[2] slot=297148321 sig=2gN9xR4tLp... +[3] slot=297148322 sig=5wJ6yK8mP... +heartbeat — 247 txs in 30s +[248] slot=297148439 sig=1aB3cD5eF... +... +``` + +Jupiter is high-traffic; expect dozens of transactions per second on Mainnet. + +## What the SDK handles for you + +- **Auto-reconnect** with exponential backoff if the connection drops. +- **Subscription restoration** on reconnect — no need to re-issue the request. +- **24-hour replay** — when reconnecting after a brief outage, the stream resumes from where it left off, so your indexer doesn't miss data. + +For the full guarantees see [delivery-guarantees](/laserstream/delivery-guarantees). + +## Troubleshooting + + + + Wrong plan tier. LaserStream gRPC needs Business+ on Mainnet, Developer+ on Devnet. Check [billing/plans](/billing/plans). + + + Verify the `accountInclude` address is active. Try a busier program (Jupiter, Pump.fun, Raydium). Or relax filters — drop `accountInclude` to see every transaction. + + + The default 4 MB cap is too small for some block-level subscriptions. The SDK sets 64 MB; if you're using the raw `@triton-one/yellowstone-grpc` client, pass `"grpc.max_receive_message_length": 64 * 1024 * 1024`. + + + Pick a closer regional endpoint — see the [LaserStream overview](/laserstream#mainnet-endpoints) for the 9-region list. `ewr` is US East; `slc` is US West; `fra` is Europe; `tyo` is Asia. + + + +## Next steps + + + + Filter by account, owner, data shape. Subscribe to slots, blocks, or entries instead of transactions. + + + Backfill up to 24 hours after a reconnect — the indexer survives outages without losing data. + + + Wire-compatible drop-in for existing `@triton-one/yellowstone-grpc` clients. + + diff --git a/quickstart/nft.mdx b/quickstart/nft.mdx new file mode 100644 index 00000000..2a7ce166 --- /dev/null +++ b/quickstart/nft.mdx @@ -0,0 +1,157 @@ +--- +title: "NFT quickstart" +sidebarTitle: "NFT" +description: "Fetch an NFT portfolio with metadata, images, and compression status using the DAS API — under 5 minutes." +pageType: tutorial +persona: nft +estReadMinutes: 5 +--- + +## Outcome + +By the end of this guide, you'll have a Node program that fetches every NFT owned by a wallet — names, images, compression status, collection — using the [Digital Asset Standard (DAS) API](/das-api). The same call a marketplace makes for a portfolio screen. + +## Prerequisites + +- Node.js 20 or later +- A wallet address with NFTs (the example uses Anatoly Yakovenko's wallet — substitute any address) +- Your Helius API key — sign up at [dashboard.helius.dev](https://dashboard.helius.dev), copy from the [API Keys](https://dashboard.helius.dev/api-keys) tab. Free tier covers 100k DAS calls per month. + +## Install + +```bash +npm install helius-sdk dotenv +``` + +```bash +echo "HELIUS_API_KEY=YOUR_API_KEY" > .env +``` + +## Fetch the portfolio + +```ts src/index.ts [expandable] +import "dotenv/config"; +import { Helius } from "helius-sdk"; + +const apiKey = process.env.HELIUS_API_KEY!; +const helius = new Helius(apiKey); + +const owner = process.argv[2] ?? "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"; + +// Page through every asset. limit=100 is the max per call; loop until we've drained. +const items: Array = []; +for (let page = 1; ; page++) { + const res = await helius.rpc.getAssetsByOwner({ + ownerAddress: owner, + page, + limit: 100, + displayOptions: { showFungible: false, showCollectionMetadata: true }, + }); + items.push(...res.items); + if (res.items.length < 100) break; +} + +console.log(`\n=== NFT portfolio: ${owner} ===`); +console.log(`Total NFTs: ${items.length}\n`); + +// Group by collection. +const byCollection = new Map>(); +for (const a of items) { + const collection = a.grouping?.find((g: any) => g.group_key === "collection")?.group_value ?? "Individual"; + if (!byCollection.has(collection)) byCollection.set(collection, []); + byCollection.get(collection)!.push(a); +} + +const sorted = [...byCollection.entries()].sort((a, b) => b[1].length - a[1].length); +for (const [collection, list] of sorted) { + const compressed = list.filter((a) => a.compression?.compressed).length; + console.log(`${collection.slice(0, 40)} — ${list.length} (${compressed} compressed)`); + for (const a of list.slice(0, 3)) { + const name = a.content?.metadata?.name ?? "Unnamed"; + console.log(` · ${name}`); + } + if (list.length > 3) console.log(` · … +${list.length - 3} more`); +} +``` + +[Clone this project on GitHub →](https://github.com/helius-labs/docs/tree/main/examples/quickstarts/nft) + +## Run it + +```bash +npx tsx src/index.ts +# or pass any wallet address: +npx tsx src/index.ts +``` + +## Expected output + +``` +=== NFT portfolio: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY === +Total NFTs: 47 + +Mad Lads — 12 (0 compressed) + · Mad Lad #4567 + · Mad Lad #2891 + · Mad Lad #9012 + · … +9 more +SMB Gen2 — 8 (8 compressed) + · SMB #1234 + · SMB #5678 + · SMB #9012 + · … +5 more +DeGods — 5 (0 compressed) + · DeGod #8989 + · DeGod #1212 + · DeGod #4545 + · … +2 more +Individual — 22 (3 compressed) + · Solana Hacker House Pin + · Helius Quickstart NFT + · Anatoly Bobblehead + · … +19 more +``` + +Numbers and collection names depend on the address; the structure is the same. + +## What DAS gives you that standard RPC doesn't + +Standard `getProgramAccounts` against the Token program returns balances, not metadata — you'd need a second hop per asset to fetch its name and image, and it doesn't index compressed NFTs at all. + +DAS indexes both: + +- **Standard NFTs** (Token Metadata + the asset's mint) +- **Compressed NFTs** (Bubblegum Merkle tree state) + +…and returns them in one call with names, image URIs, attributes, and ownership. + +## Troubleshooting + + + + Wrong network. The default Helius RPC is Mainnet — pass `https://devnet.helius-rpc.com` for Devnet wallets. + + + The off-chain metadata URI failed when DAS indexed the asset. Pass `displayOptions: { showInscription: true }` to surface inscription-based fallback data, or query the asset directly with `getAsset` to retry. + + + `limit=100` is the maximum. If you see results > 100 per page, your client's overriding the limit. Drop the override. + + + Free is capped at 10 requests/second across DAS. For a 1000-NFT wallet that's 10 paginated calls — should fit. If you're hitting the limit, add `await new Promise(r => setTimeout(r, 100))` between pages or upgrade. + + + +## Next steps + + + + Search across collections, traits, owners. `getAsset`, `searchAssets`, `getAssetsByGroup`, more. + + + How compression works on Solana, when to use it, and how to mint cNFTs at scale. + + + Subscribe to mints, sales, transfers via WebSockets or webhooks. + + diff --git a/quickstart/trader.mdx b/quickstart/trader.mdx new file mode 100644 index 00000000..1c83d98f --- /dev/null +++ b/quickstart/trader.mdx @@ -0,0 +1,168 @@ +--- +title: "Trader quickstart" +sidebarTitle: "Trader" +description: "Send a Solana transaction via Helius Sender with an optimal priority fee, in under 5 minutes." +pageType: tutorial +persona: trader +estReadMinutes: 5 +--- + +## Outcome + +By the end of this guide, you'll have a Node program that sends a self-transfer of 0.0001 SOL through Helius Sender with the right priority fee — the same code path a trading app uses for time-sensitive sends. + +## Prerequisites + +- Node.js 20 or later +- A funded Solana wallet on Mainnet (≥ 0.001 SOL covers fee + transfer) +- Your Helius API key — sign up at [dashboard.helius.dev](https://dashboard.helius.dev), copy from the [API Keys](https://dashboard.helius.dev/api-keys) tab + +## Install + +```bash +npm install helius-sdk @solana/web3.js@1 bs58 dotenv +``` + +Add a `.env` next to `package.json`: + +```bash +HELIUS_API_KEY=YOUR_API_KEY +WALLET_SECRET_KEY=YOUR_BASE58_SECRET_KEY +``` + +(Building an agent? Use the [Helius CLI](/agents/cli) for programmatic signup.) + + + Use a dev wallet, not a production one. The example calls `Keypair.fromSecretKey` on the value of `WALLET_SECRET_KEY` — anyone with that string can drain the wallet. + + +## Send a transaction + +```ts src/index.ts [expandable] +import "dotenv/config"; +import { Helius } from "helius-sdk"; +import { + Connection, + Keypair, + PublicKey, + SystemProgram, + Transaction, + ComputeBudgetProgram, +} from "@solana/web3.js"; +import bs58 from "bs58"; + +const apiKey = process.env.HELIUS_API_KEY!; +const secret = process.env.WALLET_SECRET_KEY!; +const helius = new Helius(apiKey); +const connection = new Connection(`https://mainnet.helius-rpc.com/?api-key=${apiKey}`); +const wallet = Keypair.fromSecretKey(bs58.decode(secret)); + +// 1. Build the instructions (self-transfer for the demo). +const transferIx = SystemProgram.transfer({ + fromPubkey: wallet.publicKey, + toPubkey: wallet.publicKey, + lamports: 100_000, // 0.0001 SOL +}); + +// 2. Ask the Priority Fee API for an optimal fee given current congestion. +const { priorityFeeEstimate } = await helius.rpc.getPriorityFeeEstimate({ + transactionEncoding: "base64", + options: { priorityLevel: "High", recommended: true }, + accountKeys: [wallet.publicKey.toBase58()], +}); + +const cuPriceIx = ComputeBudgetProgram.setComputeUnitPrice({ + microLamports: BigInt(Math.ceil(priorityFeeEstimate ?? 50_000)), +}); +const cuLimitIx = ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }); + +// 3. Sign with a fresh blockhash from the same RPC the validator will use. +const { blockhash } = await connection.getLatestBlockhash("confirmed"); +const tx = new Transaction({ recentBlockhash: blockhash, feePayer: wallet.publicKey }) + .add(cuPriceIx, cuLimitIx, transferIx); +tx.sign(wallet); + +// 4. Send it via Sender's dual-route endpoint. +const senderUrl = `https://sender.helius-rpc.com/fast?api-key=${apiKey}`; +const res = await fetch(senderUrl, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + jsonrpc: "2.0", + id: 1, + method: "sendTransaction", + params: [ + tx.serialize().toString("base64"), + { encoding: "base64", skipPreflight: true, maxRetries: 0 }, + ], + }), +}); + +const { result: signature, error } = await res.json(); +if (error) throw new Error(JSON.stringify(error)); +console.log("submitted:", signature); + +// 5. Poll for confirmation. +const start = Date.now(); +while (Date.now() - start < 60_000) { + const status = await connection.getSignatureStatuses([signature]); + const conf = status.value[0]; + if (conf?.confirmationStatus === "confirmed" || conf?.confirmationStatus === "finalized") { + console.log(`landed at slot ${conf.slot} (${Date.now() - start} ms)`); + process.exit(0); + } + await new Promise((r) => setTimeout(r, 500)); +} +throw new Error("timeout: transaction did not confirm in 60s"); +``` + +[Clone this project on GitHub →](https://github.com/helius-labs/docs/tree/main/examples/quickstarts/trader) + +## Run it + +```bash +npx tsx src/index.ts +``` + +## Expected output + +``` +submitted: 4xK...long-base58-signature...gJ +landed at slot 297148321 (842 ms) +``` + +The latency varies with network conditions. Sub-second is typical for Sender on a healthy network; treat anything > 3 s as a signal to investigate. + +## Troubleshooting + + + + The API key is missing or wrong. Confirm `HELIUS_API_KEY` is set in `.env` and your dotenv import is at the top of the file. + + + You're hitting the per-second limit on the free tier. Sender on a paid plan has higher quotas — see [billing/rate-limits](/billing/rate-limits). + + + The blockhash expired or the priority fee was too low. Re-run; if it persists, raise `priorityLevel` to `VeryHigh` in the `getPriorityFeeEstimate` call. + + + The wallet has no SOL. Fund it with at least 0.001 SOL on Mainnet and re-run. + + + `WALLET_SECRET_KEY` must be the base58-encoded secret key (the format Phantom exports). If you have a `[1, 2, 3, ...]` byte array, convert it with `bs58.encode(Uint8Array.from([...]))`. + + + +## Next steps + + + + Dual-routing semantics, regional endpoints, tip handling. + + + Add one parameter to earn SOL back on backrunnable transactions. + + + Fee estimation with serialized transactions and account-key heuristics. + + diff --git a/quickstart/wallet.mdx b/quickstart/wallet.mdx new file mode 100644 index 00000000..bedfb468 --- /dev/null +++ b/quickstart/wallet.mdx @@ -0,0 +1,134 @@ +--- +title: "Wallet quickstart" +sidebarTitle: "Wallet" +description: "Fetch a wallet's SOL balance, SPL token balances, NFTs, and recent activity in one Node program — under 5 minutes." +pageType: tutorial +persona: wallet +estReadMinutes: 5 +--- + +## Outcome + +By the end of this guide, you'll have a Node program that prints a wallet snapshot — SOL balance, SPL tokens, NFTs, and recent activity — using the [Wallet API](/wallet-api/overview) and [DAS](/das-api). The same shape a wallet's account screen needs. + +## Prerequisites + +- Node.js 20 or later +- A wallet address you want to look up (any public Solana address works for read-only queries) +- Your Helius API key — sign up at [dashboard.helius.dev](https://dashboard.helius.dev), copy from the [API Keys](https://dashboard.helius.dev/api-keys) tab + +## Install + +```bash +npm install helius-sdk dotenv +``` + +```bash +echo "HELIUS_API_KEY=YOUR_API_KEY" > .env +``` + +## Fetch the wallet snapshot + +```ts src/index.ts [expandable] +import "dotenv/config"; +import { Helius } from "helius-sdk"; + +const apiKey = process.env.HELIUS_API_KEY!; +const helius = new Helius(apiKey); + +// Anatoly's wallet — pick any address; it just needs to be on Mainnet. +const address = "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"; + +// 1. SOL balance via standard RPC. +const balanceLamports = await helius.connection.getBalance(address as any); +const sol = balanceLamports / 1e9; + +// 2. Wallet API — balances, identity, recent activity in one call. +const wallet = await helius.rpc.getWalletBalances({ wallet: address }); + +// 3. DAS for NFTs and rich asset metadata (Wallet API gives quantities; DAS gives names + images). +const assets = await helius.rpc.getAssetsByOwner({ + ownerAddress: address, + page: 1, + limit: 10, + displayOptions: { showFungible: false }, +}); + +console.log(`\n=== Wallet snapshot: ${address} ===`); +console.log(`SOL: ${sol.toFixed(4)}`); +console.log(`SPL tokens: ${wallet.tokens?.length ?? 0}`); +console.log(`NFTs (showing first 10 of ${assets.total}):`); +for (const a of assets.items) { + const name = a.content?.metadata?.name ?? "Unnamed"; + const compressed = a.compression?.compressed ? " [compressed]" : ""; + console.log(` - ${name}${compressed}`); +} + +// 4. Recent activity via Wallet API history endpoint. +const history = await helius.rpc.getTransfersByAddress({ + wallet: address, + limit: 5, +}); +console.log(`\nLast ${history.transfers?.length ?? 0} transfers:`); +for (const t of history.transfers ?? []) { + console.log(` ${t.timestamp} ${t.amount} ${t.symbol ?? "SOL"} ${t.type}`); +} +``` + +[Clone this project on GitHub →](https://github.com/helius-labs/docs/tree/main/examples/quickstarts/wallet) + +## Run it + +```bash +npx tsx src/index.ts +``` + +## Expected output + +``` +=== Wallet snapshot: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY === +SOL: 142.3415 +SPL tokens: 8 +NFTs (showing first 10 of 47): + - Mad Lad #4567 + - SMB Gen2 #1234 [compressed] + - DeGod #8989 + ... +Last 5 transfers: + 2026-05-05T14:22:11Z 0.5 SOL RECEIVED + 2026-05-04T09:15:33Z 100 USDC SENT + ... +``` + +Numbers depend on the address; structure is the same. + +## Troubleshooting + + + + The Wallet API is in Beta — confirm your plan supports it ([billing/plans](/billing/plans)). For free-tier coverage, fall back to `getTokenAccountsByOwner` + DAS. + + + Wrong network. The default Helius RPC is Mainnet — if your address is on Devnet, swap to `https://devnet.helius-rpc.com`. + + + All four reads in series can hit the per-second cap on the free tier. Add a `setTimeout` between calls or upgrade — see [billing/rate-limits](/billing/rate-limits). + + + The metadata URI failed to fetch when DAS indexed the asset. Pass `displayOptions: { showInscription: true, showCollectionMetadata: true }` for richer fallback data. + + + +## Next steps + + + + Full endpoint list — identity, balances, history, transfers, funded-by. + + + Search across collections, traits, owners. Compressed and standard NFTs. + + + Push updates instead of polling. `accountSubscribe` for live balance changes. + +