A IDL do Anchor
A IDL (Interface Description Language) do Anchor é uma descrição JSON das instruções, contas, tipos, eventos e erros do seu programa. O comando anchor build a regenera a partir de macros Rust.
Busque em todas as páginas da documentação
A IDL (Interface Description Language) do Anchor é uma descrição JSON das instruções, contas, tipos, eventos e erros do seu programa. O comando anchor build a regenera a partir de macros Rust.
anchor build
ls target/idl/my_program.json{
"address": "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS",
"instructions": [ { "name": "initialize", "accounts": [], "args": [] } ],
"errors": [],
"events": []
}Quando usar isso: Você integra clientes, consumidores de CPI (Cross-Program Invocation) ou publica metadados on-chain.
// Macros Rust controlam o conteúdo da 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 }Após a compilação, a IDL inclui todas as instruções públicas, tipos de conta, eventos e erros.
O que isso demonstra:
address da IDL corresponde ao declare_id!types espelha as structs #[account]msg)declare_program!Marque o JSON da IDL com a versão do programa. Mudanças que quebram o layout da conta exigem atualizações nos clientes.
build.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Conta de IDL On-chain | Descoberta on-chain | IDL apenas no repositório |
| Transformação de IDL Codama | Saída nativa do Kit | Apenas IDL Anchor bruta |
0.32.1 para tópicos avançados.
Layouts grandes e fixos quando o custo de computação (CU) do Borsh é muito alto.
Não facilmente; planeje o crescimento futuro.
Não; documente separadamente.
JSON da IDL do chamador em tempo de compilação.
Sim, com metadados de conta corretos.
Evite IDLs diferentes para cada recurso na mainnet.
LiteSVM, Surfpool, simulação em devnet.
Não; último recurso.
Veja os links relacionados para idl.
Versões das Ferramentas: 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