A transaction includes one or more instructions, the signatures of accounts that authorize the changes, and a recent blockhash. The network processes all instructions in a transaction together. If any instruction fails, the entire transaction fails and all state changes are reverted.
A simplified diagram showing two transactions
Transaction Structure
Signatures, message format (header, account addresses, blockhash, compiled instructions), binary encoding, size budget, and a SOL transfer example.
Versioned Transactions
Legacy vs V0 format, Address Lookup Tables, ALT resolution, and version comparison.
Transaction Pipeline
Full 8-stage processing pipeline (receive through commit), reading transaction details from the network, and validation error reference.
Durable Nonces
Offline signing with durable nonces, nonce lifecycle, detection, validation flow, and failure behavior.
Key facts
- Atomic execution: All instructions succeed or all revert. Fees are still charged on failure.
- Size limit: 1,232 bytes maximum, derived from the IPv6 minimum MTU (1,280 bytes) minus 48 bytes for network headers.
- Signatures: Each signer provides one 64-byte Ed25519 signature.
- Blockhash expiry: A transaction's recent blockhash is valid for 150 slots.
Limits
| Limit | Value | Source |
|---|---|---|
| Max transaction size | 1,232 bytes | PACKET_DATA_SIZE |
| Max accounts per transaction | 64 | Enforced limit (128 when increase_tx_account_lock_limit is activated, currently inactive) |
| Blockhash expiry | 150 slots | MAX_PROCESSING_AGE |
| Signature size | 64 bytes (Ed25519) | -- |
| Base fee per signature | 5,000 lamports | Fees |
| Max executed instructions | 64 (top-level + CPIs) | MAX_INSTRUCTION_TRACE_LENGTH |
| Max signatures per packet | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?