La IDL de Anchor
La IDL de Anchor es una descripción JSON de las instrucciones, cuentas, tipos, eventos y errores de tu programa. anchor build la regenera a partir de macros de Rust.
Busca en todas las páginas de la documentación
La IDL de Anchor es una descripción JSON de las instrucciones, cuentas, tipos, eventos y errores de tu programa. anchor build la regenera a partir de macros de Rust.
anchor build
ls target/idl/my_program.json{
"address": "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS",
"instructions": [ { "name": "initialize", "accounts": [], "args": [] } ],
"errors": [],
"events": []
}Cuándo usar esto: Cuando integras clientes, consumidores de CPI o publicas metadatos en la cadena.
// Las macros de Rust controlan el contenido de la IDL
#[program]
pub mod my_program { /* ... */ }
#[account]
pub struct Config { pub admin: Pubkey }
#[event]
pub struct ConfigUpdated { pub admin: Pubkey }
#[error_code]
pub enum MyError { #[msg("Unauthorized")] Unauthorized }Después de la compilación, la IDL incluye todas las instrucciones públicas, tipos de cuenta, eventos y errores.
Lo que esto demuestra:
address de la IDL coincide con declare_id!types refleja las estructuras #[account]msg)declare_program!Etiqueta la IDL JSON con la versión del programa. Los cambios que rompen el diseño de la cuenta requieren actualizaciones del cliente.
build.| Alternativa | Usar cuando | No usar cuando |
|---|---|---|
| Cuenta IDL en cadena | Descubrible en cadena | IDL solo en repositorio |
| Transformación de IDL Codama | Salida nativa del kit | Solo IDL de Anchor sin procesar |
0.32.1 en temas avanzados.
Diseños grandes y fijos cuando el costo de Borsh (CU) es demasiado alto.
No fácilmente; planifica el crecimiento futuro.
No; documentar por separado.
La IDL JSON del llamado en tiempo de compilación.
Sí, con las metadatos de cuenta correctas.
Evita diferentes IDL por característica en mainnet.
LiteSVM, Surfpool, simulación en devnet.
No; último recurso.
Ver enlaces relacionados para idl.
Versiones de Stack: 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