▾ Documentation

gRPC limits

Per-plan gRPC limits: concurrent connections, per-stream filter caps (accounts, owners, transactions, blocks), and unlimited/unmetered throughput. No per-MB billing.

// updated 2026-06-04

Every gRPC stream must include a filter - there is no unfiltered firehose. These caps define how broad a single stream's filter can be on your plan.

How are gRPC limits structured?

gRPC is limited on 4 independent axes, plus one control-plane limit:

  1. Connections (per plan) - how many live Subscribe streams you can run at once. In Yellowstone, 1 connection = 1 stream = 1 subscription. This is your plan quota: FOCUS 1 / BUILD 10 / GROW 20 / PRO 50 / Dedicated unlimited.
  2. Filters per connection - how many named rules live in one SubscribeRequest. Categories combine with AND; values inside one array (and multiple named filters in a category) combine with OR. You can rewrite a subscription on the fly - a new SubscribeRequest fully replaces the old one.
  3. Filter width (per stream) - how many addresses a single stream can match: array sizes like account_max, owner_max, account_include_max. owner is the heaviest - it fans out to every account a program owns - so it has the tightest cap.
  4. Throughput - the volume of data Supanode pushes to you. On Supanode this is unlimited and unmetered (no per-MB or per-credit billing). The only volume gate is full-block streaming, which is a separate Full Block add-on.

Control plane: you can re-send a SubscribeRequest (re-subscribe) at up to 10 times per second.

NOTE

Caps are per stream, connections are the plan quota. Every cap in the per-category table below applies to a single SubscribeRequest (one stream). The connection count is how many such streams you can run in parallel. So your total reach is roughly account_max × connections - see the Total reach callout.

How many gRPC connections can I run at once?

How many live gRPC streams you can run at the same time, per plan.

PlanConcurrent connections
STARTERnot included
FOCUS1
BUILD10
GROW20
PROFESSIONAL50
Dedicatedunlimited

The STARTER plan ($40/mo) does not include gRPC. To use gRPC, choose FOCUS, BUILD, GROW, or PROFESSIONAL.

What are the per-stream filter caps?

Each value below is the maximum size of that field within a single SubscribeRequest. For the parameterless stream types (slots, blocks_meta, entry) the number is the maximum count of named filters of that type in one stream.

Field (per stream)FOCUSBUILDGROWPROFESSIONALDedicated
accounts.account_max505001,2002,000unlimited
accounts.owner_max1050200200unlimited
accounts.data_slice_max10101010unlimited
slots.max102550100unlimited
blocks.account_include_max25100200500unlimited
blocks: include transactions / accounts / entriesall allowedallallallall
blocks_meta.max10101010unlimited
transactions.account_include_max505001,2002,000unlimited
transactions.account_exclude_max505001,2002,000unlimited
transactions.account_required_max505001,2002,000unlimited
transactions_status.account_include_max25100200500unlimited
transactions_status.account_exclude_max25100200500unlimited
transactions_status.account_required_max25100200500unlimited
entry.max10101010unlimited

accounts.owner_max is intentionally tight because an owner filter expands to every account a program owns - the single heaviest filter you can write. There is no separate "filters per type" cap on top of this: the array sizes above already bound how broad one stream can be.

How many accounts can I watch across all streams?

TIP

Across all your streams you can watch up to account_max × connections accounts. For GROW that is 1,200 × 20 = up to 24,000 accounts. This is a ceiling - you spread accounts across separate streams, since the array cap applies per stream. Headline reach per plan:

PlanMax accounts watched
FOCUSup to 50
BUILDup to 5,000
GROWup to 24,000
PROFESSIONALup to 100,000
Dedicatedunlimited

Is gRPC throughput metered?

NOTE

Throughput is unlimited and unmetered on every gRPC tier. Supanode bills by plan tier, so the data your streams deliver carries no per-MB, per-GB, or per-credit charge. The only volume gate is full-block streaming (empty-filter "firehose" mode), which is the separate Full Block add-on.

SubscribeRequest update rate

Maximum rate at which you can re-send a SubscribeRequest to swap your filters.

PlanUpdates per second
FOCUS / BUILD / GROW / PROFESSIONAL10
Dedicatedunlimited

Per-tier filter caps (copy-paste)

A quick reference for the per-stream caps on each tier.

{
  "connections": 1,
  "accounts": { "account_max": 50, "owner_max": 10, "data_slice_max": 10 },
  "slots": { "max": 10 },
  "blocks": { "account_include_max": 25 },
  "blocks_meta": { "max": 10 },
  "transactions": { "account_include_max": 50, "account_exclude_max": 50, "account_required_max": 50 },
  "transactions_status": { "account_include_max": 25, "account_exclude_max": 25, "account_required_max": 25 },
  "entry": { "max": 10 },
  "throughput": "unlimited",
  "max_accounts_watched": 50
}

What happens when you hit a limit

  • Filter too broad - if a stream's filter exceeds the per-category caps above, the server returns ResourceExhausted (gRPC status code 8).
  • Malformed filter - a structurally invalid SubscribeRequest is rejected with INVALID_ARGUMENT.
  • Connection cap exceeded - a new stream beyond your plan's connection quota is refused, or the connection is closed. Existing streams keep working.

There are no per-event or per-MB throughput caps on gRPC streams. Your constraints are connections, filter width, and the 10/s re-subscribe rate.

External references

See also