IDLs On-Chain
O Anchor pode armazenar a IDL on-chain em uma conta pertencente ao programa, para que exploradores e clientes busquem interfaces canônicas pelo ID do programa.
Busque em todas as páginas da documentação
O Anchor pode armazenar a IDL on-chain em uma conta pertencente ao programa, para que exploradores e clientes busquem interfaces canônicas pelo ID do programa.
anchor idl init -f target/idl/my_program.json <PROGRAM_ID>
anchor idl fetch <PROGRAM_ID> -o idl/my_program.jsonQuando usar isso: Você quer interfaces descobertas sem depender exclusivamente do GitHub.
# Após deploy e build
anchor idl init -f target/idl/my_program.json Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS --provider.cluster devnet
# Consumidores buscam
anchor idl fetch Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS -o fetched.jsonO que isso demonstra:
idl init cria a conta IDL on-chainidl fetch recupera o JSON para clientesanchor idl upgrade quando a API mudaA IDL on-chain é conveniente, mas não substitui builds reproduzíveis. Emparelhe com hashes de programa verificados.
IDLs grandes podem precisar de estratégias de fragmentação; monitore o tamanho da conta e o aluguel (rent).
idl upgrade com a versão do programa.init falha. Correção: Remova metadados de documentação do JSON da IDL.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Apenas releases do GitHub | Revisão completa de CI | Descoberta por carteira/explorador |
| Pacote npm de IDL | Instalações versionadas | Descoberta on-chain |
0.32.1 em tópicos avançados.
Layouts fixos grandes quando o CU do Borsh é muito alto.
Não facilmente; planeje o crescimento futuro.
Não; documente separadamente.
JSON da IDL do callee em tempo de compilação.
Sim, com metadados de conta corretos.
Evite IDLs diferentes por recurso na mainnet.
LiteSVM, Surfpool, simulação em devnet.
Não; último recurso.
Veja os links relacionados para IDLs on-chain.
Versões do 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: 16 de jul. de 2026