in-solana by Supanode

What Is Versioned Transaction in Solana?

A versioned transaction is a Solana transaction format (version 0) that supports address lookup tables. Versioned transactions can reference more accounts than legacy transactions by storing frequently used addresses in on-chain lookup tables instead of including the full 32-byte address in each transaction.

Legacy vs versioned

FeatureLegacyVersion 0
Account addressesAll inline (32 bytes each)Can reference lookup tables
Max accounts~35 (limited by 1232-byte size)Up to 256
Lookup table supportNoYes
Transaction size1232 bytes max1232 bytes max

How versioned transactions save space

A legacy transaction includes the full 32-byte public key for every account. A versioned transaction can reference an address lookup table — an on-chain account that stores a list of addresses. The transaction includes only the lookup table address and 1-byte indices, reducing per-account overhead from 32 bytes to 1 byte.

When to use versioned transactions

Versioned transactions are required when a transaction needs more accounts than fit in the 1232-byte legacy format. This is common with complex DeFi operations (multi-hop swaps, liquidations) that interact with many programs and accounts.

FAQ

Do all RPC nodes support versioned transactions? Yes, since the v1.14 upgrade (2022). All current validators and RPC nodes support version 0 transactions.

Can I mix legacy and versioned transactions? Yes. Each transaction independently chooses its format. Legacy transactions continue to work.

Do wallets support versioned transactions? Yes. Major Solana wallets handle versioned transactions transparently.

Updated: