Subscribing to data from the Solana blockchain is essential for building responsive applications that can react to on-chain events. This document outlines key approaches for accessing and processing Solana blockchain data efficiently, with recommendations for different use cases.
Jump to:
At a Glance
There are several approaches you can take to subscribe to Solana blockchain data, each optimized for different needs:
| Feature | WebSockets | Yellowstone Geyser gRPC | Quicknode Streams |
|---|---|---|---|
| Best For | • Simple Web dApps • Development | • High Frequency Trading • Low latency applications | • Data pipelines • Analytics |
| Setup | Easy - Native web3.js | Moderate - Requires gRPC | Easy - UI-based setup |
| Management | Self-managed | Self-managed | Fully-managed service |
| Language Support | Any language with JSON-RPC | • TypeScript/JavaScript • Python • Rust • Go | Node.js/JavaScript |
| Latency | Low | Lowest | Low-Medium |
| Historical Data | No | No | Yes |
| Cost Model | Free Trial Plan & up (billed on metered data usage) | Starts at $499/mo (billed on metered data usage) | Free Trial Plans & up (billed in API credits by network, dataset, and count of blocks processed) |
| Key Advantage | Simplicity | Performance | Managed reliability & History |
| Dedicated Options | Learn more about Dedicated clusters | Contact us for Hybrid Dedicated gRPC Nodes | n/a |
Which Service Should I Choose?
When choosing between these solutions, consider the following key questions about your application's needs:
-
Which data access patterns do you need?
- For simple, direct updates on specific accounts → WebSockets
- For high-performance, low-latency data access → Yellowstone Geyser gRPC
- For managed data pipelines with multiple destinations → Streams
-
Do you need historical data?
- If historical data access is crucial → Streams offers built-in backfilling capabilities
-
How much infrastructure do you want to manage?
- For minimal infrastructure management → Streams handles everything for you
- For direct control with moderate management → WebSockets are straightforward
- For maximum performance with more setup → Yellowstone gives you direct access
-
Where does your data need to go?
- For multiple destinations or databases → Streams provides out-of-the-box integrations
- For custom processing in your application → WebSockets or Yellowstone offer direct data access
WebSocket Subscriptions
WebSockets provide the most straightforward way to receive updates from the Solana blockchain. They maintain a persistent connection to a Solana node, allowing you to subscribe to specific events like account changes, program logs, or new blocks.
Key Features
- Direct connection to Solana nodes using the JSON RPC API
- Native support in Solana's web3.js and Solana Kit libraries
- Lightweight solution for tracking specific accounts, programs, or transactions
- Low setup complexity with minimal configuration required
- Metered data billing: 0.1 MB = 15 API credits (effective May 1, 2026)
As of May 1, 2026, Solana WebSocket methods are billed based on metered data usage: 0.1 MB = 15 API credits (previously 20 credits per message). This change results in lower costs for most users, especially those using methods that return small amounts of data per notification. Learn more about WebSocket billing.
Best Practices
- Implement Reconnection Logic: WebSockets can disconnect, so implement robust reconnection to maintain seamless connectivity.
- Monitor Subscription Health: Periodically check if subscriptions are still active.
When to Use WebSocket Subscriptions
WebSocket subscriptions are ideal for:
- Simple applications monitoring specific accounts or programs
- Development and testing environments
- Web applications with straightforward real-time data needs
- Projects with limited infrastructure management resources
WebSocket Resources
- Documentation: Solana WebSockets
- Guide: How to Create WebSocket Subscriptions to Solana using TypeScript
- Guide: Monitor Solana Accounts Using WebSockets and Solana Kit
Yellowstone Geyser gRPC
Yellowstone leverages Solana's Geyser plugin system to provide enterprise-grade data access through gRPC - Google's high-performance remote procedure call framework. This approach offers extremely low-latency streaming of account updates, transactions, and blocks directly from validator nodes.
Key Features
- Built on Solana's Geyser plugin system for direct validator access
- Typed interface with highly efficient data transfer
- Extremely low latency for time-sensitive applications
- Advanced server-side filtering capabilities
Best Practices
- Use Appropriate Filtering: Take advantage of Yellowstone's filtering capabilities to reduce data volume.
- Monitor Connection Health: Implement proactive monitoring to detect and handle connection issues.
When to Use Yellowstone Geyser gRPC
Yellowstone Geyser gRPC is ideal for:
- High-frequency trading systems requiring minimal latency
- Enterprise applications requiring fine-grained control
- Teams with existing gRPC infrastructure
Contact us for Hybrid Dedicated gRPC Nodes.
Yellowstone Resources
- Documentation: Yellowstone Geyser gRPC
- Guide: Monitor Solana Programs with Yellowstone Geyser gRPC
- Guide: Create a Solana Copy Trading Bot Using Pump.fun
Quicknode Streams
Streams offers a managed solution that simplifies how you handle Solana's data flow. It processes and routes blockchain data to your chosen destination, including webhooks, S3-compatible storage, and databases like PostgreSQL and Snowflake.
Key Features
- Managed data pipeline solution with multiple destination options
- Built-in support for historical data backfilling
- Reliable delivery with automatic retries and guaranteed ordering
Best Practices
- Configure Precise Filters: Set up precise filters to reduce data volume and costs.
- Monitor Stream Health: Regularly check stream status and performance metrics to ensure stability and efficiency.
When to Use Quicknode Streams
Quicknode Streams is ideal for:
- Teams wanting a managed data pipeline solution
- Applications requiring historical data access
- Projects sending data to multiple destinations
- Services requiring reliable delivery and automatic retries
Streams Resources
- Documentation: Quicknode Streams
- Guide: How to Backfill Solana Transaction Data with Streams
- Guide: How to Stream Solana Program Data with Streams
Feedback
If you have any feedback or questions about this documentation, let us know. We'd love to hear from you!