ChainStream API
ChainStream is an enterprise-grade data streaming service that provides real-time access to the Solana blockchain.
Built from the ground up to address the challenges of high-throughput blockchain data access, ChainStream enables applications to consume live blockchain events through standard WebSocket connections without having to develop and maintain custom Geyser plugins.
Getting Started
Ready to stream ChainStream data in your app? Start with these recommended guides:
- Quick Start - grab credentials, open your first WebSocket, and subscribe to sample feeds in minutes.
- Connection Guide - learn best practices for auth rotation, reconnection strategies, and managing multiple subscriptions.
How It Works
The architecture employs a distributed system that connects to multiple Solana validators simultaneously, aggregating their data streams to provide high availability and redundancy. ChainStream consolidates these data sources using a "fastest-wins" approach, where the first validator to report a given transaction or block update will trigger a notification to subscribing clients, while still maintaining data integrity through cross-validator verification when needed.
Subscription Types
transactionsSubscribe- Filter by account keys, commitment level, and exclude votes
- Enable
verifiedmode for multi-validator confirmation - Use
metadataOnlyto reduce bandwidth
slotSubscribe- Receive notifications when slot status changes at different commitment levels
- Filter by status types including bank states
blockSubscribe- Get notified for each new block processed by validators
- Includes metadata: slot, blockhash, block time, rewards, and transaction counts
encodedBlocksSubscribe- Stream implementation of Solana's native
getBlock()method - Complete block data with all transactions in base64 encoding
Monitoring
Track live request counts, error rates, and subscription uptime directly from the ChainStream API page in your Syndica dashboard. The dashboard highlights per-subscription usage so you can right-size the number of active feeds and stay within plan limits.

Pricing
Scale Mode includes one ChainStream subscription. Additional subscriptions cost $0.14/hour, with a maximum of 10 concurrent subscriptions per account. Each subscription represents one WebSocket connection that can have multiple active event subscriptions.
Compare the Syndica platform tiers:
- ✓ 1 GB data / mo
- ✓ 50 WebSockets
- ✓ 1 user
- ✓ 100 Requests / sec
- ✓ 100 GB data / mo
- ✓ 3 users
- ✓ 300 Requests / sec
- ✓ 1 TB+ data / mo
- ✓ ChainStream API
- ✓ Staked Connections
- ✓ Custom limits
- ✓ ChainStream API
- ✓ Staked Connections
- ✓ 99.999% SLA
- ✓ Dedicated support
FAQ and Troubleshooting
What's the difference between WebSocket subscriptions and ChainStream?
Standard WebSocket subscriptions connect directly to whichever validator your connection reaches and expose the base Solana RPC methods (slotSubscribe, logsSubscribe, accountSubscribe, etc.). That keeps them lightweight and available on every plan, but you own the operational work: detecting missed slots, replaying signatures, managing ordering, and reconciling state when the validator you hit lags or restarts.
ChainStream is a separate endpoint (wss://solana-mainnet.chainstream.syndica.io/api-key/...) that fans out each subscription across multiple validators. The service delivers the earliest notification using a "fastest wins" strategy, backfills if a source misses data, and deduplicates events before they reach your client. It also unlocks capabilities standard WebSockets do not provide:
transactionsSubscribe,blockSubscribe, andencodedBlockSubscribefor full transaction/block payload streaming.- Rich account filtering via
all,oneOf, andexcludematchers plus theverifiedflag for multi-validator confirmation. - Built-in delivery guarantees so you no longer maintain resend buffers or custom analytics.
ChainStream requires Scale Mode or higher (see plans/pricing); standard WebSockets work on all plans.
How many concurrent ChainStream streams can I have?
Scale Mode includes one ChainStream subscription, and you can add up to nine additional subscriptions ($0.14/hour each) for a total of ten concurrent streams per account. Each subscription maps to one WebSocket connection that can host multiple event subscriptions. Configure custom rate limits for ChainStream per API key as needed, and review plans/pricing for the current limits by tier.
Why is my ChainStream connection failing?
Common causes:
- Scale Mode not enabled (ChainStream requires it—upgrade or review plans/pricing).
- ChainStream not enabled on your dashboard’s ChainStream API page.
- No available streams / Error 7429 (
subscription method exceeded limit) (all subscriptions in use). Close unused streams or enable additional streams—see plans/pricing for details. - API key missing ChainStream permissions.
Check the ChainStream API page for subscription status and limits after resolving the above.
What happens if a validator goes offline when using ChainStream?
ChainStream aggregates data from multiple validators and automatically routes around node failures, so you keep receiving events from healthy validators without interruption—one of the primary benefits over single-node WebSocket connections.
What latency should I expect from ChainStream?
Once a validator feeding ChainStream timestamps an event at the geyser interface, it reaches clients co-located in the same AWS region in ≤10 ms (round-trip latency under 10 ms). Across typical public-internet links you should expect roughly 50–100 ms end-to-end latency, depending on your network path and geography. To measure your actual performance, compare the nodeTime field (UTC timestamp) in each ChainStream message with your local clock and log the delta over time.
How do I use ChainStream with devnet?
Connect to wss://solana-devnet.chainstream.syndica.io/api-key/YOUR_API_KEY and set network: "solana-devnet" in your transactionsSubscribe (or other) params. The rest of the request shape matches mainnet usage, including verified, commitment, and filter objects.