geyser.Geyser/Subscribe from the upstream rpcpool/yellowstone-grpc proto. Build your client from that repository’s geyser.proto; this page documents ThorNode’s authentication, what each filter returns here, and the limits.
Subscribe is the only method available. The unary methods (Ping, GetVersion, GetSlot, GetLatestBlockhash, GetBlockHeight, IsBlockhashValid) and SubscribeReplayInfo return Unimplemented.
Connection and authentication
Authentication runs when the stream opens. A token that is revoked later stops opening new streams; streams already open keep running until they close.
SubscribeRequest
Send oneSubscribeRequest after opening the stream. Sending another replaces the filter set for that stream. Each map key is a filter name you choose; matching updates echo it in filters.
Use uppercase enum names (
PROCESSED, SLOT_CONFIRMED) in JSON requests such as grpcurl.
Filter messages
Accounts ThorNode does not stream
Accounts owned by the Vote program and by the SPL Token program (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA) are dropped at ingest. Subscribing to them by owner or account succeeds and returns nothing. Token-2022 accounts, System-owned accounts, and program-owned accounts stream normally.
Transactions that touch SPL Token accounts still stream; only the account-update feed is filtered.
SubscribeUpdate
ping update about every 10 seconds; treat it as liveness, not data. pubkey, owner, signature, and account data are raw bytes; base-58 encode them for display.
Limits
Two caps apply per location token, read from Limits → gRPC Yellowstone in the dashboard:
Both are re-evaluated whenever a stream sends a new
SubscribeRequest, and released when the stream closes.
Filter validation errors
Rejected filters close the stream withInvalidArgument and a message starting failed to create filter:.
Example
filters: ["pump"], the slot, and a transaction with signature, transaction, and meta (including logMessages).