Yellowstone gRPC rate limits
Every major provider meters something. The differences are what they meter and how they behave when you hit a cap. Here's the honest breakdown so you can plan bot capacity without surprise disconnects or surprise bills.
| Provider | Concurrent subs | Message rate | Filter complexity | Overage behavior |
|---|---|---|---|---|
| Subglow Free trial | 1 stream | 100 req/day | Built-in program presets | Connection refuses at limit |
| Subglow Sniper ($99/mo) | 2 streams | Standard delivery | Pump.fun + Raydium + Jupiter | RESOURCE_EXHAUSTED on new connections |
| Subglow Pro ($249/mo) | 10 streams | Full-speed, zero rate limits | Custom Program IDs | RESOURCE_EXHAUSTED on new connections |
| Subglow Dedicated | Unlimited | Full-speed + SLA | Custom parsing pipelines | Flat-rate custom contract |
| Triton One (enterprise) | Per contract | Per contract | Custom | Per contract |
| Helius Laserstream | Plan-dependent | Credit-metered | Helius SDK filters | Bill scales with usage |
| QuickNode | Plan-dependent | Credit-metered | Standard Yellowstone | Bill scales with usage |
| Chainstack | Per tier | Per tier | Standard Yellowstone | Overage charges above tier |
| Shyft | Credit-metered | Credit-metered | Standard Yellowstone | Bill scales with usage |
| Public RPC (free) | ~100 | ~10 msg/s typical | Very limited | Silent drops + disconnects |
Subglow uses flat monthly pricing — no credit metering and no silent throttling. Exceeding your plan's stream cap returns RESOURCE_EXHAUSTED on new connections; existing streams continue uninterrupted.
The two failure modes
Credit-metered providers (Helius, QuickNode, Shyft) don't cap subscriptions — they cap your bill. You'll never see RESOURCE_EXHAUSTED, but your invoice can double during market-spike weeks. Build your cost model around p99 message throughput, not median.
Flat-priced providers (Subglow Sniper/Pro, Chainstack) cap what you can consume for a fixed price. Predictable bill, but you can hit a real capacity ceiling. Build your capacity model around expected throughput and upgrade proactively.
For 95% of Solana trading bots, flat pricing is the safer bet — market spikes are exactly when you least want a variable bill. For very high-throughput data pipelines (analytics backfills, indexers rebuilding state), credit metering is sometimes cheaper because the workload is bursty.
Capacity planning cheatsheet
One Pump.fun stream (vote=false, failed=false) plus a second stream for Jito status. Two concurrent streams is enough to separate reads from submissions.
Raydium + Orca + Meteora + Phoenix streams with per-pool account filters. 10 concurrent streams on Pro, plus custom Program IDs and shred-aware filtering.
100+ tracked KOL wallets across Pump.fun + Raydium + Jupiter. Filter complexity is the constraint here, not volume. Pro's custom Program IDs and full-speed delivery earn their price.
Private gRPC endpoint colocated in Frankfurt or NY4, zero shared resources, 99.9% latency SLA, unlimited streams. For MM/HFT workloads where shared infra noise is the ceiling.
FAQ
What kinds of rate limits apply to Yellowstone gRPC?
Four dimensions commonly metered: (1) concurrent subscriptions per connection — the number of distinct SubscribeRequest filter sets you can have open at once; (2) messages per second delivered to your client — a cap on the push rate, typically soft-enforced via backpressure; (3) filter complexity — some providers restrict how many program IDs or accounts you can include in a single filter; (4) bundle submission rate — separate cap for the Jito relay endpoint when a provider offers one.
Why would a provider rate-limit on concurrent subscriptions?
Each subscription consumes resources on the validator's Geyser plugin — memory for the filter state, CPU for match evaluation on every account and transaction. Providers running shared infrastructure have to cap per-customer subscription count to prevent a single noisy tenant from starving others. Providers on dedicated infrastructure (Subglow Pro, Triton enterprise) can lift these caps because noisy-neighbor isn't a factor.
How many concurrent streams does Subglow allow?
Sniper ($99/mo) allows 2 concurrent gRPC streams on shared infrastructure with standard delivery. Pro ($249/mo) allows 10 concurrent streams, full-speed delivery with zero rate limits, custom Program ID filters, and shred-aware filtering. Dedicated is unlimited streams on a private gRPC endpoint. Free-trial accounts are capped at 1 stream and 100 req/day while the trial is active.
How do credit-metered providers compare to flat-priced ones for rate limits?
Credit-metered providers (Helius, QuickNode) don't apply hard subscription caps — instead, your bill scales with message volume. Functionally this turns every limit into a soft one: you can use more if you pay more. The downside is unpredictable bills during market spikes. Flat-priced providers (Subglow, Chainstack) cap what you can consume for a fixed price but eliminate spike-driven cost overruns. Pick based on which failure mode you prefer.
What happens when I hit a gRPC rate limit in production?
Varies by provider. Good behavior: the stream applies flow control and messages arrive slightly delayed but never drop (gRPC has flow control built into the protocol). Bad behavior: the connection is closed with a RESOURCE_EXHAUSTED status and you have to reconnect and resubscribe. Worst behavior: silent message drops with no indication. On Subglow, exceeding your plan's concurrent-stream cap returns RESOURCE_EXHAUSTED on new connection attempts — existing streams continue uninterrupted.
How do I plan capacity if I'm building a new Solana bot?
Rule of thumb: Pump.fun main program generates ~500–2000 txns/sec during market hours, Raydium ~300–800 txns/sec, Jupiter ~100–400 txns/sec. Adding filters (vote=false, failed=false, specific accounts) typically reduces your effective delivery rate by 80–95%. Start on Sniper ($99/mo), 2 streams — enough to separate reads from Jito submissions. Once you need custom Program IDs, shred-aware filtering, or a third stream, move to Pro ($249/mo).