Messages
RawTransaction
| Field | Type | Description |
|---|---|---|
signature | thru.common.v1.Signature | Transaction signature extracted from the raw transaction |
raw_transaction | bytes | Complete serialized transaction including header, accounts, instruction data, optional state proof, and signature |
Transaction
| Field | Type | Description |
|---|---|---|
signature | thru.common.v1.Signature | Transaction signature (same as fee_payer_signature in header, provided at top level for convenience) |
header | TransactionHeader | Transaction metadata and parameters |
body | optional ``bytes | Optional raw transaction body containing account addresses, instruction data, and state proofs |
execution_result | optional ``TransactionExecutionResult | Optional execution outcome including consumed resources and events |
slot | optional ``uint64 | Optional slot number where transaction was included |
block_offset | optional ``uint32 | Optional offset within the block |
TransactionEvent
| Field | Type | Description |
|---|---|---|
event_id | string | |
call_idx | uint32 | |
program_idx | uint32 | |
program | thru.common.v1.Pubkey | |
payload | bytes |
TransactionExecutionResult
| Field | Type | Description |
|---|---|---|
consumed_compute_units | uint32 | |
consumed_memory_units | uint32 | |
consumed_state_units | uint32 | |
user_error_code | uint64 | |
vm_error | TransactionVmError | |
execution_result | uint64 | |
pages_used | uint32 | |
events_count | uint32 | |
events_size | uint32 | |
readwrite_accounts | repeated ``thru.common.v1.Pubkey | |
readonly_accounts | repeated ``thru.common.v1.Pubkey | |
events | repeated ``TransactionEvent |
TransactionHeader
| Field | Type | Description |
|---|---|---|
fee_payer_signature | thru.common.v1.Signature | Ed25519 signature from the fee payer authorizing the transaction (note: in wire format, signature is at the end) |
version | uint32 | Transaction format version, must be 0x01 |
flags | uint32 | Transaction flags controlling optional features |
readwrite_accounts_count | uint32 | Number of accounts that can be modified by the program |
readonly_accounts_count | uint32 | Number of accounts that can only be read by the program |
instruction_data_size | uint32 | Size in bytes of the instruction data section |
requested_compute_units | uint32 | Maximum compute units the transaction may consume |
requested_state_units | uint32 | Maximum state units the transaction may consume |
requested_memory_units | uint32 | Maximum memory units the transaction may consume |
expiry_after | uint32 | Number of slots after start_slot when transaction expires |
fee | uint64 | Transaction fee in native tokens |
nonce | uint64 | Transaction nonce, must match fee payer’s current nonce |
start_slot | uint64 | Earliest slot when transaction becomes valid |
fee_payer_pubkey | thru.common.v1.Pubkey | Public key of the account paying transaction fees |
program_pubkey | thru.common.v1.Pubkey | Public key of the program to execute |
chain_id | uint32 | Chain identifier to prevent transaction replay across different chains |
Enums
TransactionView
TransactionView controls how transactions are materialized in responses.| Value | Number | Description |
|---|---|---|
TRANSACTION_VIEW_UNSPECIFIED | 0 | |
TRANSACTION_VIEW_SIGNATURE_ONLY | 1 | |
TRANSACTION_VIEW_HEADER_ONLY | 2 | |
TRANSACTION_VIEW_HEADER_AND_BODY | 3 | |
TRANSACTION_VIEW_FULL | 4 |
TransactionVmError
TransactionVmError enumerates runtime error codes returned by the executor.| Value | Number | Description |
|---|---|---|
TRANSACTION_VM_EXECUTE_SUCCESS | 0 | TN_RUNTIME_TXN_EXECUTE_SUCCESS |
TRANSACTION_VM_ERROR_INVALID_FORMAT | -255 | TN_RUNTIME_TXN_ERR_INVALID_FORMAT |
TRANSACTION_VM_ERROR_INVALID_VERSION | -254 | TN_RUNTIME_TXN_ERR_INVALID_VERSION |
TRANSACTION_VM_ERROR_INVALID_FLAGS | -253 | TN_RUNTIME_TXN_ERR_INVALID_FLAGS |
TRANSACTION_VM_ERROR_INVALID_SIGNATURE | -252 | TN_RUNTIME_TXN_ERR_INVALID_SIGNATURE |
TRANSACTION_VM_ERROR_DUPLICATE_ACCOUNT | -251 | TN_RUNTIME_TXN_ERR_DUPLICATE_ACCOUNT |
TRANSACTION_VM_ERROR_UNSORTED_ACCOUNTS | -250 | TN_RUNTIME_TXN_ERR_UNSORTED_ACCOUNTS |
TRANSACTION_VM_ERROR_UNSORTED_READWRITE_ACCOUNTS | -249 | TN_RUNTIME_TXN_ERR_UNSORTED_READWRITE_ACCOUNTS |
TRANSACTION_VM_ERROR_UNSORTED_READONLY_ACCOUNTS | -248 | TN_RUNTIME_TXN_ERR_UNSORTED_READONLY_ACCOUNTS |
TRANSACTION_VM_ERROR_ACCOUNT_COUNT_LIMIT_EXCEEDED | -247 | TN_RUNTIME_TXN_ERR_ACCOUNT_COUNT_LIMIT_EXCEEDED |
TRANSACTION_VM_ERROR_NONCE_TOO_LOW | -511 | TN_RUNTIME_TXN_ERR_NONCE_TOO_LOW |
TRANSACTION_VM_ERROR_NONCE_TOO_HIGH | -510 | TN_RUNTIME_TXN_ERR_NONCE_TOO_HIGH |
TRANSACTION_VM_ERROR_INSUFFICIENT_FEE_PAYER_BALANCE | -509 | TN_RUNTIME_TXN_ERR_INSUFFICIENT_FEE_PAYER_BALANCE |
TRANSACTION_VM_ERROR_FEE_PAYER_ACCOUNT_DOES_NOT_EXIST | -508 | TN_RUNTIME_TXN_ERR_FEE_PAYER_ACCOUNT_DOES_NOT_EXIST |
TRANSACTION_VM_ERROR_NOT_LIVE_YET | -507 | TN_RUNTIME_TXN_ERR_NOT_LIVE_YET |
TRANSACTION_VM_ERROR_EXPIRED | -506 | TN_RUNTIME_TXN_ERR_EXPIRED |
TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF | -505 | TN_RUNTIME_TXN_ERR_INVALID_FEE_PAYER_STATE_PROOF |
TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_TYPE | -504 | TN_RUNTIME_TXN_ERR_INVALID_FEE_PAYER_STATE_PROOF_TYPE |
TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_SLOT | -503 | TN_RUNTIME_TXN_ERR_INVALID_FEE_PAYER_STATE_PROOF_SLOT |
TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_ACCOUNT_OWNER | -502 | TN_RUNTIME_TXN_ERR_INVALID_FEE_PAYER_ACCOUNT_OWNER |
TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_OWNER | -501 | TN_RUNTIME_TXN_ERR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_OWNER |
TRANSACTION_VM_ERROR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_META_DATA_SZ | -500 | TN_RUNTIME_TXN_ERR_INVALID_FEE_PAYER_STATE_PROOF_ACCOUNT_META_DATA_SZ |
TRANSACTION_VM_ERROR_VM_FAILED | -767 | TN_RUNTIME_TXN_ERR_VM_FAILED |
TRANSACTION_VM_ERROR_INVALID_PROGRAM_ACCOUNT | -766 | TN_RUNTIME_TXN_ERR_INVALID_PROGRAM_ACCOUNT |
TRANSACTION_VM_ERROR_VM_REVERT | -765 | TN_RUNTIME_TXN_ERR_VM_REVERT |
TRANSACTION_VM_ERROR_CU_EXHAUSTED | -764 | TN_RUNTIME_TXN_ERR_CU_EXHAUSTED |
TRANSACTION_VM_ERROR_SU_EXHAUSTED | -763 | TN_RUNTIME_TXN_ERR_SU_EXHAUSTED |