Authorizations
Your Helius API key. You can get one for free in the
dashboard .
Message
The gRPC API supports multiple subscription types that can be combined in a single request:
Subscribe to account updates. Returns data when specified accounts are
modified. Array of account pubkeys to monitor.
Array of owner pubkeys to monitor (all accounts owned by these programs).
Optional filters to apply. Filter by specific bytes at an offset in account data. Position in bytes to start comparing data.
The data to compare against (bytes format).
The data to compare against (base58 format).
The data to compare against (base64 format).
Filter by exact account data size in bytes.
Filter to only token accounts.
Filter by SOL balance with comparisons. Show comparison operators
Equal to specified amount.
Not equal to specified amount.
Less than specified amount.
Greater than specified amount.
If true, only include updates caused by a transaction. If false, only include updates not caused by a transaction. If undefined, include all updates.
Subscribe to slot updates. Filter slots by commitment level.
Include intermediate slot status updates (PROCESSED, CONFIRMED, FINALIZED,
FIRST_SHRED_RECEIVED, COMPLETED, CREATED_BANK, DEAD).
Subscribe to transaction updates. Include vote transactions.
Include failed transactions.
Monitor specific transaction signature.
Only include transactions affecting these accounts.
Exclude transactions affecting these accounts.
Transactions must affect all of these accounts.
Optional associated token account (ATA) expansion (field tag 30, TokenAccountExpansionControlFlag). When set, an account_include wallet also matches transactions where it owns an SPL token balance — for example, incoming token transfers that touch the wallet’s token account rather than its pubkey. Two variants:
ALL (0 ) — match any transaction referencing a token balance the wallet owns, even if unchanged. Higher volume.
BALANCE_CHANGED (1 ) — match when the wallet owns a token balance whose amount changed (or whose token account was closed) in the transaction.
To disable expansion, leave the field absent (None) — there is no “off” enum value. An out-of-range integer is rejected at config build: Invalid token_accounts value, expected ALL (0) or BALANCE_CHANGED (1). ALL is the zero value . A client that sets the enum to 0 expecting “default/off” gets ALL — the broadest, highest-volume mode. The only way to mean “no expansion” is to omit the field entirely.
Subscribe to transaction status updates. Include vote transactions.
Include failed transactions.
Monitor specific transaction signature.
Only include transactions affecting these accounts.
Exclude transactions affecting these accounts.
Transactions must affect all of these accounts.
Subscribe to block updates. Only include blocks with transactions affecting these accounts.
Include full transaction details.
Subscribe to block metadata updates (lighter than full block updates). executed_transaction_count
Transaction count.
Subscribe to entry updates. executed_transaction_count
Transaction count.
starting_transaction_index
Starting transaction index.
The commitment level for the subscription: (0): Processed by the current node.
(1): Confirmed by supermajority of the cluster.
(2): Finalized by the cluster.
Specifies partial account data to receive: Position in bytes to start reading data.
Enable ping-pong messages for connection health monitoring. Numeric identifier for the ping.
Starting slot to receive updates from. Updates for slots before this value
will be excluded.
Accounts Subscription
Slots Subscription
Transactions Subscription
Wallet + Token Transfers (ATA expansion)
Transaction Status Subscription
Blocks Subscription
Block Metadata Subscription
Entry Subscription
Partial Account Data Subscription
Ping Subscription
Combined Subscription
{
"slots" : {
"slots" : {}
},
"accounts" : {
"user-defined-label" : {
"account" : [
"DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu" ,
"5U3bH5b6XtG99aVCE9ycvDgBKQx3fVT8WwTNbMToFuEr"
],
"owner" : [
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
],
"filter" : {
"memcmp" : {
"offset" : 0 ,
"bytes" : "0102030405"
},
"datasize" : 165 ,
"token_account_state" : true ,
"lamports" : {
"gt" : 100000000
}
},
"nonempty_txn_signature" : true
}
},
"transactions" : {},
"blocks" : {},
"blocks_meta" : {},
"accounts_data_slice" : [],
"commitment" : 1
}
Commitment Levels
All subscriptions support the following commitment levels:
PROCESSED: Processed by the current node (0)
CONFIRMED: Confirmed by supermajority of the cluster (1)
FINALIZED: Finalized by the cluster (2)
Response Structure
Subscription responses include:
filters: The filter names that matched this update
One of the following update types:
account: Account data, owner, lamports, executable status, etc.
slot: Slot information and status updates
transaction: Full transaction details, signature, and metadata
transaction_status: Transaction execution status (success/error)
block: Complete block data with transactions, accounts, rewards, etc.
block_meta: Lightweight block metadata without full transaction details
entry: Entry details within a block
ping/pong: Connection health check messages
created_at: Timestamp when the update was created
Account Update
Slot Update
Transaction Update
Block Metadata Update
Entry Update
Pong Response
{
"filters" : [ "accounts" ],
"account" : {
"account" : {
"pubkey" : "BASE58_ENCODED_PUBKEY" ,
"lamports" : 12345678 ,
"owner" : "BASE58_ENCODED_OWNER" ,
"executable" : false ,
"rent_epoch" : 361 ,
"data" : "BASE64_ENCODED_DATA" ,
"write_version" : 123 ,
"txn_signature" : "BASE58_ENCODED_SIGNATURE"
},
"slot" : 189554321 ,
"is_startup" : false
},
"created_at" : "2023-04-28T12:34:56.789Z"
}