in-solana by Supanode

What Is Address Lookup Table in Solana?

An address lookup table (ALT) is an on-chain account that stores a list of public key addresses. Versioned transactions reference addresses in the table by index (1 byte) instead of including the full 32-byte address, enabling transactions to use more accounts within the 1232-byte size limit.

How lookup tables work

  1. Create a lookup table and add addresses to it
  2. Wait for the table to become active (addresses need one slot to activate after being added)
  3. Include the table’s address in a versioned transaction
  4. Reference accounts by their index in the table

The runtime resolves indices to full addresses at execution time. The transaction still operates on the same accounts — the lookup table is purely a size optimization.

Capacity

A single lookup table can hold up to 256 addresses. A transaction can reference multiple lookup tables, so the practical limit is much higher.

Lifecycle

ActionDescription
CreateLookupTableCreates a new table derived from a recent slot and the authority’s address
ExtendLookupTableAdds addresses to the table (up to 256 total)
DeactivateLookupTableBegins deactivation; the table can no longer be referenced in new transactions
CloseLookupTableCloses a deactivated table and recovers rent (after a cooldown period)

FAQ

Who pays for lookup table storage? The creator pays rent for the table account. Each address added increases the account size and rent cost.

Can anyone use my lookup table? Yes. Lookup tables are public. Any transaction can reference any active lookup table.

Do lookup tables affect transaction execution? No. They only affect serialization. The transaction executes identically whether addresses are inline or referenced from a table.

Updated: