▾ Documentation

What's available

Supported gRPC streams, filter parameters, and common subscription patterns.

// updated 2026-06-04

Supanode gRPC follows the standard Yellowstone gRPC specification. For the full protocol specification, see the official Yellowstone documentation.

Supported streams

StreamWhat it doesNotes
accountsStreams updates to specified accountsFilterable by owner, account list, data slice
transactionsStreams transactions matching filtersSee Restrictions for excluded programs
transactions_statusLighter version of transactions - status only, no full payloadUseful when you only need landing notifications
slotsStreams new slot updatesAll commitment levels
blocksFull block streamsHigh bandwidth - see Limits
blocks_metaBlock metadata only (no transactions)Lightweight alternative to blocks
entryEntry-level updatesStandard Yellowstone behavior

Commitment levels

All streams support three commitment levels:

  • processed - fastest, can revert.
  • confirmed - practical default for trading.
  • finalized - adds ~13 seconds of latency, no risk of revert.

Filters

Yellowstone gRPC filters compose like this:

  • Different categories in one SubscribeRequest (e.g. accounts plus transactions) - logical AND. The stream emits messages only when filters across categories all match.
  • Multiple named filters within the same category (e.g. two named entries inside transactions:) - logical OR. Each named filter is an independent subscription; a transaction matches if any named filter accepts it.
  • Multiple values within a single field's array (e.g. several pubkeys in accountInclude) - logical OR.

For complete filter options, see Yellowstone subscription specification.

Common patterns

Subscribe to a specific program's transactions

transactions: {
  myFilter: {
    vote: false,
    failed: false,
    accountInclude: ["YOUR_PROGRAM_ID"],
  }
}

Subscribe to account changes with data slicing

accounts: {
  myAccounts: {
    account: ["YOUR_ACCOUNT_PUBKEY"],
    owner: [],
    filters: []
  }
},
accountsDataSlice: [{ offset: 0, length: 40 }]

Subscribe to slot updates only

slots: {
  mySlots: { filterByCommitment: false }
}

Filter limits

Filter complexity caps depend on your plan. See Limits for the full breakdown.

External references

Next steps

Limits
Filter caps and connection limits.
Restrictions
Programs blocked on shared plans.
Examples
Working code in 4 languages.