Overview
Transaction messages contain information about Solana transactions that match your subscription filters. Yellowstone provides both full transaction updates and early transaction status updates.SubscribeUpdateTransaction
Wrapper message for full transaction updates in the subscription stream.Fields
The detailed transaction information including signature, transaction data, and execution metadata.
The slot number when this transaction was executed.
Example
SubscribeUpdateTransactionInfo
Detailed transaction information including the full transaction and execution metadata.Fields
The transaction signature (64 bytes). This is the unique identifier for the transaction. Convert to base58 for the familiar signature format.
Whether this is a vote transaction. Vote transactions are consensus-related and typically filtered out for application-level monitoring.
The transaction data including signatures, message, and instructions.
Transaction execution metadata including fees, balances, logs, and execution results. See TransactionStatusMeta below for full details.
The position of this transaction within the block. Useful for ordering transactions within a slot.
TransactionStatusMeta
Execution metadata and results for a transaction.Fields
Transaction error information if the transaction failed. If null/empty, the transaction succeeded.
Transaction fee paid in lamports.
Account balances (in lamports) before the transaction executed. Indexed by account position in the transaction.
Account balances (in lamports) after the transaction executed. Compare with
pre_balances to see balance changes.Array of inner instructions executed by Cross-Program Invocations (CPIs). Each entry contains instructions invoked by a top-level instruction.
If true,
inner_instructions is explicitly empty (no CPIs occurred). Helps distinguish between “no inner instructions” and “inner instructions not tracked”.Array of log messages emitted during transaction execution. Useful for debugging and understanding program execution flow.
If true,
log_messages is explicitly empty.SPL token balances before the transaction. Contains mint, owner, and amount information for each token account touched by the transaction.
SPL token balances after the transaction.
Rewards earned in this transaction (e.g., staking or voting rewards).
Addresses loaded from address lookup tables as writable accounts. Available for versioned transactions using address lookup tables.
Addresses loaded from address lookup tables as readonly accounts.
Data returned by the transaction via the
return_data instruction.If true,
return_data is explicitly empty.Total compute units consumed by the transaction. Available since Solana v1.10.35 / v1.11.6. Useful for understanding transaction complexity and cost.
Total transaction cost in cost units.
Example: Successful Transaction Meta
Example: Failed Transaction Meta
SubscribeUpdateTransactionStatus
Early transaction status update sent immediately when a transaction is received, before full execution details are available.Fields
The slot number when this transaction status was received.
The transaction signature (64 bytes).
Whether this is a vote transaction.
The position of this transaction within the block.
Transaction error if the transaction failed. If null/empty, the transaction succeeded.
Use Case
Transaction status updates are useful when you need the fastest possible notification that a transaction was included in a block, even before full metadata like logs and balance changes are available.Example
Transaction Message Structure
Message
The core transaction message containing instructions and account references.Message header containing signature and account permissions metadata.
Array of account public keys (32 bytes each) referenced by this transaction. Instructions reference accounts by index into this array.
Recent blockhash used for transaction expiration.
Array of instructions to execute.
Whether this is a versioned transaction (supports address lookup tables).
Address lookup table references for versioned transactions. Allows transactions to reference more accounts than would fit in the message.
CompiledInstruction
Index into the transaction’s account keys array identifying the program to execute.
Compact array of indices into the transaction’s account keys array. Each byte is an index identifying an account used by this instruction.
Instruction data passed to the program.
Processing Transactions
Checking Transaction Success
Analyzing Balance Changes
Processing Logs
Related
- Filter Messages - Transaction filter configuration
- SubscribeRequest - How to subscribe to transaction updates
- SubscribeUpdate - Parent message containing transaction updates