IDLs en Cadena
Anchor puede almacenar la IDL en cadena en una cuenta propiedad del programa para que los exploradores y clientes obtengan interfaces canónicas por ID de programa.
Busca en todas las páginas de la documentación
Anchor puede almacenar la IDL en cadena en una cuenta propiedad del programa para que los exploradores y clientes obtengan interfaces canónicas por ID de programa.
anchor idl init -f target/idl/my_program.json <PROGRAM_ID>
anchor idl fetch <PROGRAM_ID> -o idl/my_program.jsonCuándo usar esto: Quieres interfaces descubribles sin depender únicamente de GitHub.
# Después de desplegar y compilar
anchor idl init -f target/idl/my_program.json Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS --provider.cluster devnet
# Los consumidores obtienen
anchor idl fetch Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS -o fetched.jsonLo que esto demuestra:
idl init crea la cuenta de IDL en cadena.idl fetch recupera el JSON para los clientes.anchor idl upgrade cuando la API cambia.La IDL en cadena es conveniente, no un sustituto de las compilaciones reproducibles. Empareja con hashes de programa verificados.
Las IDLs grandes pueden necesitar estrategias de fragmentación; monitoriza el tamaño de la cuenta y el alquiler.
idl upgrade con la versión del programa.init falla. Solución: Recorta los metadatos de documentación del JSON de la IDL.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Solo lanzamientos de GitHub | Revisión completa de CI | Descubrimiento por billetera/explorador |
| Paquete npm de IDL | Instalaciones versionadas | Descubrimiento en cadena |
0.32.1 en temas avanzados.
Diseños fijos grandes cuando Borsh CU es demasiado alto.
No fácilmente; planifica el crecimiento futuro.
No; documentar por separado.
JSON de IDL del llamado en tiempo de compilación.
Sí, con metadatos de cuenta correctos.
Evita diferentes IDL por característica en mainnet.
LiteSVM, Surfpool, simulación en devnet.
No; último recurso.
Ver enlaces relacionados para IDL en cadena.
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: 16 jul 2026