Skip to main content
The entries field is a list of Solana ledger entries in the validator’s own encoding, the same encoding as Agave’s solana_entry::entry::Entry. Integers are little-endian.

Use a library

Decode with wincode and solana-transaction 5 or later:

Layout

A transaction’s first byte tells its format: 0x81 starts a v1 transaction; anything else is the signature count of a legacy or v0 transaction.

Legacy and v0 transactions

A compact-u16 is 1 to 3 bytes, 7 bits per byte, least significant first, with the high bit set on every byte except the last.

v1 transactions

v1 puts the message first and the signatures last, and has no address table lookups.

Account keys and lookups

Instruction account indexes point into the static account keys first, then into addresses loaded from lookup tables (writable, then read-only). Resolving lookup-table addresses needs the table’s contents, which you can read with RPC getAccountInfo. Program ids are always static keys, so filtering by program never needs lookups.