El SDK de metadatos ARC-89 ya funciona en Testnet, pero el registro en MainNet sigue sin fecha
El SDK en TypeScript de la Algorand Foundation para ARC-89 guarda las descripciones de los activos en el almacenamiento de cajas de una aplicación de registro, en lugar de en un archivo externo a la cadena. Funciona en Testnet, donde el registro contenía 20 registros a 27 de octubre; la entrada de despliegue en MainNet de la especificación sigue en 'TBD'.

Un desarrollador que quiera que la descripción de un activo de Algorand resida en la cadena, y no en un archivo alojado en otro lugar, ya dispone de un paquete en TypeScript para hacerlo. El SDK asa-metadata-registry-ts1 es un cliente de ARC-892, el Registro de Metadatos de ASA: una única aplicación cuyo almacenamiento de cajas guarda un registro por activo, identificado por el ID de ocho bytes del activo. La Algorand Foundation3 patrocina el estándar y publica el SDK.
Según su documentación, el paquete lee un registro con una sola llamada a un nodo, o mediante una simulación que devuelve lo que ve un contrato inteligente. Permite crear, reemplazar y eliminar registros, divide los metadatos grandes en fragmentos y migra activos descritos con las convenciones anteriores ARC-3, ARC-19 y ARC-69. La versión que lo ha llevado hasta este punto apenas aporta novedades: v1.0.0-beta.104, publicada el 21 de octubre, solo incluye una corrección de errores y la actualización de una herramienta de compilación para resolver una alerta de auditoría de gravedad alta. El cambio sustancial llegó el día anterior: una v1.0.0-beta.95 con cambios incompatibles, que, según sus notas de la versión, apunta a los contratos v1.0.0 del registro sobre AVM 13.
Cómo se almacena un registro en la cadena
Los campos descriptivos de un Algorand Standard Asset se fijan en el momento de su creación: nombre, unidad, suministro total, decimales y URL. Todo lo que lee un comprador tenía que estar en otro lugar: la imagen, la descripción y los atributos, en un archivo de IPFS detrás de la URL, o en una nota JSON de una transacción de configuración. El registro traslada la parte más pequeña y estructurada al estado de la cadena. Cada registro incluye una cabecera fija de 516 bytes con indicadores reversibles e irreversibles y un hash que vincula su contenido. Las lecturas se hacen a través de algod, la API del nodo, o directamente desde otro contrato inteligente en AVM.
Esta última vía merece un momento de atención. Un contrato que puede leer el registro de un activo dentro del mismo grupo que mueve ese activo puede actuar sobre sus atributos en el momento de la liquidación, en lugar de depender de una fuente externa a la cadena. AVM 137, que llegó con Go-Algorand 5.0.08 en agosto, añadió códigos de operación de cajas 'foreign' para leer las cajas de otra aplicación.
Lo que cuesta
Lo que se desembolsa es un depósito, no una comisión. En el recetario del SDK, la creación de un registro de 117 bytes muestra un pago de saldo mínimo de 72.9009 microALGO, es decir, 0,0729 ALGO. Su ejemplo de eliminación devuelve 37.70010 microALGO para un registro más pequeño. La especificación calcula el importe como una cuota fija más una tarifa por byte multiplicada por el tamaño del cambio, sobre la clave de la caja, la cabecera y los metadatos. Expone ambos parámetros para que los clientes los consulten. El depósito se recupera al eliminar el registro.
El hueco de MainNet
Tres lugares deberían indicar un registro en MainNet, y los tres están vacíos. La tabla de despliegue de la especificación indica 'TBD' para MainNet. El archivo de despliegue del SDK fija el id de la aplicación en mainnet a null, con el comentario 'mainnet app id is TBD'. Una incidencia abierta11 con los pasos posteriores al despliegue termina con la línea 'Blocked on the MainNet deployment of the registry.12'.
El autor lo presenta como algo inminente. Cosimo Bassi, que publica como @cusma_b, escribió el 20 de octubre que ARC-89 se está 'acercando a MainNet' y que los SDK de Python y TypeScript 'se han actualizado a v1.0.013 y están a punto de publicarse'. Una solicitud de cambios que él mismo fusionó en la especificación indica que 'cierra las últimas lagunas de ARC-89 antes del despliegue en MainNet14'.
Dos registros en Testnet, uno de ellos actual
El SDK apunta a la aplicación de Testnet 77296835415. Esa aplicación existe en Testnet, no está eliminada, y su almacenamiento de cajas contenía 20 registros de metadatos, según la lectura del 27 de octubre. La página de ARC-89 del Portal para Desarrolladores de Algorand todavía menciona la aplicación 7533240841617 y llama 'Last Modified Round' al campo de versión del registro. La especificación y el SDK usan 772968354 y el nombre 'Revision'. Ambas aplicaciones existen en Testnet y ninguna ha sido eliminada. Un desarrollador que siga el portal programará contra la más antigua.
Lora18, el explorador que se incluye con AlgoKit, fue reportado por PXke en agosto como capaz de leer un registro del registro en su versión 2.4.019-beta.
La instalación por defecto es un marcador de posición
El paquete tiene un detalle de empaquetado que conviene conocer antes de instalarlo. En npm, la entrada del paquete en el registro20 muestra que las etiquetas 'latest' y 'beta' apuntan a la 0.0.1-beta.0, una versión del 27 de marzo que se describe a sí misma como 'asa-metadata-registry-sdk placeholder for Algorand'. El código funcional está en la etiqueta 'main', en la 1.0.0-beta.10. Según las fechas de publicación de npm, no apareció ninguna versión entre el 27 de abril y el 20 de octubre. Sin embargo, el repositorio sí avanzaba: la página de la versión beta.5 indica 11521 commits en main desde esa publicación.
Lo que el registro garantiza y lo que no
El registro regula quién puede escribir, qué tamaño máximo puede tener un registro y si puede cambiar. La autorización corresponde a la dirección gestora del activo, no a su creador. Un gestor puede declarar un registro como inmutable, y la especificación establece que el propio registro no debe actualizarse nunca una vez desplegado. El registro trata el cuerpo de los metadatos como bytes opacos, de modo que los consumidores deben validar un registro y sus indicadores antes de confiar en ellos. Ni la especificación, ni el repositorio de referencia, ni el repositorio de TypeScript mencionan una auditoría de seguridad.
Cuánto uso hay
El uso es reducido pero medible. Según los datos del 27 de octubre, el paquete de npm registró 36 descargas en la última semana y 96 en el último mes.
- Registros de metadatos en TestNet: 20 registros.
- Saldo mínimo para un registro pequeño: 72,900 microALGO.
- Descargas del SDK el mes pasado: 96 descargas.
El archivo de adopción22 del propio estándar no enumera todavía billeteras, herramientas, infraestructura ni dapps, y figura un explorador en curso. La cabecera de la especificación sigue indicando 'Last Call' con una fecha límite del 1 de febrero de 2026.23
Un desarrollador que pruebe hoy el SDK fija la etiqueta main, apunta a la aplicación 772968354 y trabaja en Testnet.
Fuentes
- Release v1.0.0-beta.10 · algorandfoundation/asa-metadata-registry-ts · GitHub4
- github.com1
- ARCs/ARCs/arc-0089.md at main · algorandfoundation/ARCs · GitHub2
- Release v1.0.0-beta.9 · algorandfoundation/asa-metadata-registry-ts · GitHub5
- registry.npmjs.org20
- feat(deployments): add the MainNet registry deployment · Issue #133 · algorandfoundation/asa-metadata-registry-ts1124
- raw.githubusercontent.com: /algorandfoundation/ARCs/main/adoption/arc-0089.yaml22
- ARC-89: AVM 13, global revision tracker, content-only metadata hash, canonical discovery by cusma · Pull Request #481 ·25
- raw.githubusercontent.com: /algorandfoundation/asa-metadata-registry-ts/main/docs/cookbook.md26
- Release v1.0.0 · algorandfoundation/arc89 · GitHub27
- MainNet and TestNet Update: Go-Algorand 5.0.0 - Announcements - Algorand28
- x.com29
- Release v1.0.0-beta.5 · algorandfoundation/asa-metadata-registry-ts · GitHub30
- Issues · algorandfoundation/asa-metadata-registry-ts · GitHub31
18 cifras de esta historia están verificadas. 2 se leyeron directamente de la cadena.Ver todas las comprobaciones
Fuentes
- 1asa-metadata-registry-ts github.com↩
- 2ARC-89 github.com↩
- 3Algorand Foundation github.com↩
- 4v1.0.0-beta.10 github.com↩
- 5v1.0.0-beta.9 github.com↩
- 11Una incidencia abierta github.com↩
- 15772968354 lora.algokit.io↩
- 16753324084 lora.algokit.io↩
- 18Lora lora.algokit.io↩
- 20entrada del paquete en el registro registry.npmjs.org↩
- 22archivo de adopción raw.githubusercontent.com↩
- 25ARC-89: AVM 13, global revision tracker, content-only metadata hash, canonical discovery by cusma · Pull Request #481 · github.com↩
- 26raw.githubusercontent.com/algorandfoundation/asa-metadata-registry-ts/main/docs/cookbook.md raw.githubusercontent.com↩
- 27Release v1.0.0 · algorandfoundation/arc89 · GitHub github.com↩
- 28MainNet and TestNet Update: Go-Algorand 5.0.0 - Announcements - Algorand forum.algorand.co↩
- 29x.com/cusma_b/status/2112579605584355771 x.com↩
- 30Release v1.0.0-beta.5 · algorandfoundation/asa-metadata-registry-ts · GitHub github.com↩
- 31Issues · algorandfoundation/asa-metadata-registry-ts · GitHub github.com↩