Skip to content

Filters

A subscribe request is a set of named filters per kind of update. Each name is yours to choose; an update arrives tagged with the names of the filters it matched, so one stream can serve several consumers. Send a new request on the same stream to replace the filters without reconnecting.

Accounts#

accounts maps a name to an account filter. An update arrives when an account that matches changes.

  • account: exact pubkeys.
  • owner: every account owned by these programs.
  • filters: conditions on the account itself, all of which must hold: memcmp (bytes at an offset in the data), datasize (the data length), lamports (the balance compared with a value) and tokenAccountState.

accountsDataSlice trims the data in every account update to the byte ranges you list, which cuts bandwidth when you need a few fields of a large account.

Transactions#

transactions maps a name to a transaction filter.

  • accountInclude: transactions that touch any of these accounts.
  • accountRequired: transactions that touch all of them.
  • accountExclude: drop transactions that touch any of these.
  • vote and failed: include or exclude vote and failed transactions.
  • signature: one transaction by its signature.

transactionsStatus takes the same filter and sends only each transaction's status, not the transaction.

Slots, blocks and entries#

  • slots: every slot as it moves through processed, confirmed and finalized.
  • blocks and blocksMeta: whole blocks, or only their metadata.
  • entry: ledger entries.

Commitment#

commitment is processed, confirmed or finalized and applies to the whole request. Shreds arrive before any of them: see the shred stream.

The full message definitions are in the gRPC reference.