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
| Stream | What it does | Notes |
|---|---|---|
accounts | Streams updates to specified accounts | Filterable by owner, account list, data slice |
transactions | Streams transactions matching filters | See Restrictions for excluded programs |
transactions_status | Lighter version of transactions - status only, no full payload | Useful when you only need landing notifications |
slots | Streams new slot updates | All commitment levels |
blocks | Full block streams | High bandwidth - see Limits |
blocks_meta | Block metadata only (no transactions) | Lightweight alternative to blocks |
entry | Entry-level updates | Standard 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.accountsplustransactions) - 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
- Yellowstone gRPC GitHub
- geyser.proto (SubscribeRequest definition)
- Triton One Dragon's Mouth docs
- Solana Geyser plugin documentation
Next steps
Limits
Filter caps and connection limits.
Restrictions
Programs blocked on shared plans.
Examples
Working code in 4 languages.