Address Lookup Tables in Practice
Use Address Lookup Tables (ALTs) com transações versionadas (v0) para caber mais contas em uma transação sem exceder limites de tamanho de pacote.
Busque em todas as páginas da documentação
Use Address Lookup Tables (ALTs) com transações versionadas (v0) para caber mais contas em uma transação sem exceder limites de tamanho de pacote.
Cartão de receita para referência rápida - pronto para copiar e colar.
solana address-lookup-table create
solana address-lookup-table extend <ALT_ADDRESS> <PUBKEY1> <PUBKEY2>
solana address-lookup-table freeze <ALT_ADDRESS>Quando usar:
solana config set --url devnet
solana airdrop 2
# Create lookup table (returns table address)
solana address-lookup-table create
ALT="<LOOKUP_TABLE_ADDRESS>"
solana address-lookup-table extend "$ALT" \
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA \
YOUR_PROGRAM_ID
# Wait for slot activation (~1 slot) then use in v0 tx from client
solana address-lookup-table get "$ALT"import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc(process.env.RPC_URL!);
const alt = await rpc
.getAddressLookupTable(address("ALT_PUBKEY"))
.send();
console.log("addresses:", alt.value?.data.addresses.length);O que isso demonstra:
AddressLookupTableProgram gerencia create/extend/deactivate/close.addressTableLookups preenchido.| Etapa | Ação |
|---|---|
| Create | Alocar conta de tabela |
| Extend | Acrescentar pubkeys (authority) |
| Activate | Esperar ~1 slot antes do uso |
| Freeze | Imutabilidade opcional |
| Deactivate | Cooldown antes de close |
// @solana/kit 7.0.0 supports versioned transaction building
// Fetch ALT accounts with getAddressLookupTable before compile| Alternativa | Use quando | Não use quando |
|---|---|---|
| Menos contas / merge ix | Programas simples | Metas grandes inevitáveis |
| Múltiplas transações | Não-atômico aceitável | Swap atômico obrigatório |
| Atomicidade Jito bundle | Aterrissagem multi-tx atômica | v0 único suficiente |
| Padrão remaining accounts | Metas dinâmicas on-chain | Tamanho no cliente ainda grande |
Grande capacidade por tabela - estenda em lotes; múltiplas tabelas por tx permitidas dentro dos limites.
Lamports rent-exempt para conta de tabela proporcional às pubkeys armazenadas mais fees de tx.
Authority definida na criação - frequentemente multisig do deployer.
Mesmo fluxo - essencial antes de txs grandes na mainnet.
Carteiras modernas suportam transações versionadas - teste matriz de carteiras cedo.
Independentes - economia de tamanho habilita aterrissagem; fees ainda necessárias sob congestionamento.
Desative depois feche após cooldown para recuperar rent.
Programas não embutem ALT - cliente fornece lookup na mensagem de transação.
Use builders de mensagem de transação kit com contas de lookup table buscadas.
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026