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) andtokenAccountState.
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.voteandfailed: 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.blocksandblocksMeta: 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.