Transactions
How Solana transactions are encoded on the wire — signatures, message header, account ordering, instructions, and versioned lookup tables.
Address Lookup Table
Address Lookup Table Program
Stores an array of pubkeys that v0 transactions reference by 1-byte index. 56-byte header + tightly-packed 32-byte addresses, up to 256 entries.
Explore
compact-u16 (shortvec)
Transaction encoding
The 1-to-3-byte variable-length integer that prefixes every array in a Solana transaction. Seven value bits per byte plus a continuation flag — the source of most off-by-one transaction-parsing bugs.
Explore
Legacy Transaction
Transaction encoding
The original Solana transaction wire format — a signatures array followed by a message (header, account keys, recent blockhash, instructions). Byte-by-byte, every array prefixed by compact-u16.
Explore
Signatures & Recent Blockhash
Transaction encoding
How a transaction is signed and kept fresh — Ed25519 signatures over the message bytes, a recent blockhash that expires in ~80 seconds, and durable nonces for transactions that need to outlive that window.
Explore
v0 (Versioned) Transaction
Transaction encoding
The versioned transaction format — a 1-byte version prefix, the same message body as a legacy transaction, plus an address-table-lookups section that references accounts stored in Address Lookup Tables.
Explore