Skip to main content

subscribe gRPC Method - Solana gRPC

Subscribe establishes a bidirectional streaming connection with Solana gRPC to receive real-time updates about Solana blockchain events.

Updated on
Oct 20, 2026
Solana gRPC is available on Mainnet and Devnet, included with Scale and Business plans. Learn more on our pricing page.

Parameters

transactions
object

Named transaction filters

vote
boolean

Alpenglow consensus votes are exchanged outside transactions. Omit this filter or leave it false; true excludes normal transactions

entry
object

Named entry filters

include_update_parent
boolean

Include entry_update_parent updates

block_footer
object

Named block footer filters

include_certificates
boolean

Include certificates carried by the footer. Each certificate refers to its own slot, which can differ from the footer slot

Returns

result
object

The result representing the return value of a bidirectional stream method call with a Solana gRPC subscription request and subscription update

account
object

The account update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Optional: absent for startup account updates. Do not compare across connections

slot
object

The slot update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Optional: absent for slot statuses that do not belong to a bank. Do not compare across connections

transaction
object

The transaction update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Identifies the bank that produced this update. Do not compare across connections

transaction_status
object

The transaction_status update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Identifies the bank that produced this update. Do not compare across connections

block
object

The block update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Identifies the bank that produced this update. Do not compare across connections

block_meta
object

The block_meta update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Identifies the bank that produced this update. Do not compare across connections

entry
object

The entry update, when this stream message contains that update variant

bank_id
string

Node-local bank ID (protobuf uint64). Identifies the bank that produced this update. Do not compare across connections

block_footer
object

The block footer

slot
string

The slot of the block

bank_id
string

Node-local ID of the bank that produced the block

bank_hash
bytes

The bank hash of the block (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

block_producer_time_nanos
string

The Unix time the leader produced the block, in nanoseconds

block_user_agent
bytes

The leader's validator client and version (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

block_final_cert
object

The highest-known finalization certificate. Proves its own slot is finalized, which can be earlier than the footer slot. Sent only when include_certificates is set

slot
string

The finalized slot

final_aggregate
object

The finalize vote aggregate. Signed on the block for fast finalization, or on the slot for slow finalization

signature_kind
enum

The signature encoding. COMPRESSED_BLS12_381_G2 is a 96-byte BLS signature

signature
bytes

The aggregate BLS signature (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

block_id
bytes

The Merkle root of the block’s last data shred, not its PoH blockhash. Empty for votes on a slot (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

signer_bitmap
bytes

A version byte and little-endian u16 validator count, followed by encoded entries in the certificate epoch’s validator rank order (descending stake, then BLS public key). Version 0 uses one bit per validator, least-significant bit first. Version 1 packs five base-3 digits per byte, least-significant digit first; 0 is absent and 1 or 2 is a signer, distinguishing base and fallback votes. Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON

notar_aggregate
object

The notarize vote aggregate on the block. Set only for slow finalization

signature_kind
enum

The signature encoding. COMPRESSED_BLS12_381_G2 is a 96-byte BLS signature

signature
bytes

The aggregate BLS signature (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

block_id
bytes

The Merkle root of the block’s last data shred, not its PoH blockhash. Empty for votes on a slot (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

signer_bitmap
bytes

A version byte and little-endian u16 validator count, followed by encoded entries in the certificate epoch’s validator rank order (descending stake, then BLS public key). Version 0 uses one bit per validator, least-significant bit first. Version 1 packs five base-3 digits per byte, least-significant digit first; 0 is absent and 1 or 2 is a signer, distinguishing base and fallback votes. Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON

skip_reward_cert
object

The validators that voted skip on the certificate's own slot. Sent only when include_certificates is set

slot
string

The slot

aggregate
object

The skip vote aggregate

signature_kind
enum

The signature encoding. COMPRESSED_BLS12_381_G2 is a 96-byte BLS signature

signature
bytes

The aggregate BLS signature (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

block_id
bytes

The Merkle root of the block’s last data shred, not its PoH blockhash. Empty for votes on a slot (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

signer_bitmap
bytes

A version byte and little-endian u16 validator count, followed by encoded entries in the certificate epoch’s validator rank order (descending stake, then BLS public key). Version 0 uses one bit per validator, least-significant bit first. Version 1 packs five base-3 digits per byte, least-significant digit first; 0 is absent and 1 or 2 is a signer, distinguishing base and fallback votes. Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON

notar_reward_cert
object

The validators that voted notarize on the certificate's own slot's block. Sent only when include_certificates is set

slot
string

The slot

aggregate
object

The notarize vote aggregate

signature_kind
enum

The signature encoding. COMPRESSED_BLS12_381_G2 is a 96-byte BLS signature

signature
bytes

The aggregate BLS signature (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

block_id
bytes

The Merkle root of the block’s last data shred, not its PoH blockhash. Empty for votes on a slot (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

signer_bitmap
bytes

A version byte and little-endian u16 validator count, followed by encoded entries in the certificate epoch’s validator rank order (descending stake, then BLS public key). Version 0 uses one bit per validator, least-significant bit first. Version 1 packs five base-3 digits per byte, least-significant digit first; 0 is absent and 1 or 2 is a signer, distinguishing base and fallback votes. Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON

entry_update_parent
object

Invalidates entries for a bank whose parent changed. Sent only when include_update_parent is set

slot
string

The slot

cleared_bank_id
string

The bank whose entries are no longer valid, including entries that arrive after this update

parent_slot
string

The new parent slot

parent_block_id
bytes

The new parent block ID (Uint8Array/Buffer in Node.js, bytes in Python; base64 in protobuf JSON)

Request
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free