Tablas de Búsqueda de Direcciones en la Práctica
Utiliza Tablas de Búsqueda de Direcciones (ALTs) con transacciones versionadas (v0) para incluir más cuentas en una sola transacción sin exceder los límites de tamaño de paquete.
Busca en todas las páginas de la documentación
Utiliza Tablas de Búsqueda de Direcciones (ALTs) con transacciones versionadas (v0) para incluir más cuentas en una sola transacción sin exceder los límites de tamaño de paquete.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
solana address-lookup-table create
solana address-lookup-table extend <ALT_ADDRESS> <PUBKEY1> <PUBKEY2>
solana address-lookup-table freeze <ALT_ADDRESS>Cuándo recurrir a esto:
solana config set --url devnet
solana airdrop 2
# Crear tabla de búsqueda (devuelve la dirección de la tabla)
solana address-lookup-table create
ALT="<LOOKUP_TABLE_ADDRESS>"
solana address-lookup-table extend "$ALT" \
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA \
YOUR_PROGRAM_ID
# Esperar la activación de la ranura (~1 ranura) y luego usar en tx v0 desde el cliente
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);Lo que esto demuestra:
AddressLookupTableProgram gestiona la creación/extensión/desactivación/cierre.addressTableLookups poblado.| Paso | Acción |
|---|---|
| Crear | Asignar cuenta de tabla |
| Extender | Añadir pubkeys (autoridad) |
| Activar | Esperar ~1 ranura antes de usar |
| Congelar | Inmutabilidad opcional |
| Desactivar | Período de enfriamiento antes del cierre |
// @solana/kit 7.0.0 soporta la construcción de transacciones versionadas
// Obtener cuentas ALT con getAddressLookupTable antes de compilar| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Menos cuentas / fusionar ix | Programas simples | Metadatos grandes inevitables |
| Múltiples transacciones | Aceptable no atómico | Se requiere intercambio atómico |
| Atomicidad de paquetes Jito | Aterrizaje atómico multi-tx | v0 simple suficiente |
| Patrón de cuentas restantes | Metadatos dinámicos en cadena | El tamaño del cliente sigue siendo grande |
Gran capacidad por tabla - extender en lotes; se permiten múltiples tablas por transacción dentro de los límites.
Lamports exentos de alquiler para la cuenta de tabla proporcionales a las pubkeys almacenadas más las tarifas de transacción.
Autoridad establecida en la creación - a menudo multisig del implementador.
Mismo flujo de trabajo - esencial antes de grandes transacciones en mainnet.
Las billeteras modernas soportan transacciones versionadas - probar la matriz de billeteras temprano.
Independiente - los ahorros de tamaño permiten el aterrizaje; las tarifas todavía son necesarias bajo congestión.
Desactivar y luego cerrar después del período de enfriamiento para recuperar el alquiler.
Los programas no incrustan ALT - el cliente suministra la búsqueda en el mensaje de transacción.
Usar los constructores de mensajes de transacción de kit con cuentas de tabla de búsqueda obtenidas.
Versiones de la Pila: Esta página fue 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 19 jul 2026