ARC-89元数据SDK已可在测试网使用,主网注册表仍待定
Algorand基金会为ARC-89推出的TypeScript SDK,将资产描述存储在注册表应用的盒子存储中,而非链下文件。该SDK已可在测试网运行,截至10月27日,注册表中共有20条记录;规范中的主网部署条目仍写着“待定”(TBD)。

一位希望将Algorand资产描述存放在链上、而非文件托管服务器上的开发者,现在有了可用的TypeScript软件包。asa-metadata-registry-ts1 SDK是ARC-892(ASA元数据注册表)的客户端。ARC-89是一个单一应用,其盒子存储为每项资产保存一条记录,以资产的八字节ID作为键。Algorand基金会3发起了该标准并发布了这一SDK。
据文档介绍,该软件包可通过一次节点调用读取记录,也可通过模拟执行获取智能合约所见的结果。它支持创建、替换和删除记录,能将较大的元数据拆分为多个数据块,并可迁移采用旧版ARC-3、ARC-19和ARC-69约定描述的资产。使其达到当前状态的这一版本改动不大:10月21日发布的v1.0.0-beta.104只包含一项修复,即升级构建工具以消除一条高危审计通告。实质性的改动出现在前一天:根据发布说明,破坏性更新v1.0.0-beta.95针对的是AVM 13上的注册表v1.0.0合约。
记录如何上链
Algorand标准资产的描述性字段在创建时即已确定,包括名称、单位名称、总供应量、小数位数和URL。买家需要阅读的其他内容,例如图片、描述和特征,则只能存放在别处:URL指向的IPFS文件中,或配置交易附带的JSON备注里。注册表则把其中较小的结构化部分存入链上状态。每条记录都包含一个固定的516字节头部,其中有可逆与不可逆标志位,以及一个用于绑定其内容的哈希值。读取可通过节点API algod完成,也可由AVM上的其他智能合约直接读取。
这最后一条路径值得多说几句。一个合约如果能在转移资产的同一个交易组中读取该资产的记录,就能在结算时依据资产特征采取行动,而无需依赖链下数据源。8月随Go-Algorand 5.0.07一同推出的AVM 138新增了“外部”盒子操作码,用于读取其他应用的盒子。
成本几何
这里涉及的是押金,而非手续费。在SDK的操作指南中,创建一条117字节的记录需要支付最低余额72,9009 microALGO,即0.0729 ALGO。其删除示例中,较小记录的对应金额为37,70010 microALGO。规范中的计算方式为:固定费用加上按字节计算的费率再乘以数据增量,涵盖盒子键、头部和元数据。规范还公开了这两个参数,供客户端读取。删除记录后,押金会退还。
主网位置空缺
本应注明主网注册表地址的地方共有三处,但全部为空。规范的部署表中,主网一栏写着“TBD”。SDK的部署文件将主网应用ID设为null,并附注释“mainnet app id is TBD”。一个列出部署完成后后续步骤的未结议题11,最后一行写着“Blocked on the MainNet deployment of the registry.12”
作者认为主网上线已近在眼前。以@cusma_b发帖的Cosimo Bassi在10月20日写道,ARC-89“即将进入主网”,Python和TypeScript两个SDK“已更新至v1.0.013,即将发布”。他合并到规范中的一个拉取请求称,该改动“补齐了ARC-89在主网部署前的最后几处缺口”。
两个测试网注册表,只有一个为现行版本
该SDK指向测试网应用77296835414。该应用在测试网上存在,未被删除,其盒子存储中保存着20条元数据记录,读取时间为10月27日。Algorand开发者门户的ARC-89页面仍然列出应用7533240841516,并将记录的版本字段称为“Last Modified Round”。规范和SDK使用的是772968354,字段名为“Revision”。两个应用都在测试网上存在,且都未被删除。按照开发者门户操作的开发者,编写的其实是较早的那个应用。
Lora17是随AlgoKit附带的区块浏览器。PXke在8月报道称,Lora能够读取2.4.018-beta版本下的注册表记录。
默认安装的是占位包
在安装前,有一个打包上的细节值得了解。在npm上,该软件包的注册条目19显示“latest”和“beta”两个标签均指向0.0.1-beta.0,这是3月27日发布的版本,其描述为“asa-metadata-registry-sdk placeholder for Algorand”(Algorand的asa-metadata-registry-sdk占位包)。可用代码位于“main”标签下,版本为1.0.0-beta.10。据npm的发布时间记录,4月27日至10月20日之间没有任何新版本发布。不过代码仓库一直在更新:beta.5的发布页面显示,自该版本以来main分支已新增11520次提交。
这一记录能保证什么,不能保证什么
注册表规定谁有权写入、记录可以多大,以及记录能否被修改。写入权限归资产的管理员地址所有,而非创建者。管理员可以将某条记录声明为不可变,规范还写明,注册表本身一经部署便不得更新。注册表将元数据主体视为不透明的字节,因此使用方在信任某条记录及其标志位声明之前,须自行验证。规范、参考实现仓库和TypeScript仓库均未提及任何安全审计。
使用规模如何
使用量很小,但可以量化。截至10月27日,该npm软件包过去一周的下载量为36次,过去一个月为96次。
- 测试网元数据记录数: 20 条.
- 小型记录的最低余额: 72,900 microALGO.
- SDK上月下载量: 96 次.
该标准自身的采用情况文件21目前未列出任何钱包、工具、基础设施或去中心化应用,仅有一个区块浏览器正在开发中。规范的前言仍标注为“Last Call”,截止日期为2026年2月1日。
今天试用该SDK的开发者可以锁定main标签,指向应用772968354,并在测试网上运行。
资料来源
- 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.org19
- feat(deployments): add the MainNet registry deployment · Issue #133 · algorandfoundation/asa-metadata-registry-ts1122
- raw.githubusercontent.com: /algorandfoundation/ARCs/main/adoption/arc-0089.yaml21
- ARC-89: AVM 13, global revision tracker, content-only metadata hash, canonical discovery by cusma · Pull Request #481 ·23
- raw.githubusercontent.com: /algorandfoundation/asa-metadata-registry-ts/main/docs/cookbook.md24
- Release v1.0.0 · algorandfoundation/arc89 · GitHub25
- MainNet and TestNet Update: Go-Algorand 5.0.0 - Announcements - Algorand26
- x.com27
- Release v1.0.0-beta.5 · algorandfoundation/asa-metadata-registry-ts · GitHub28
- Issues · algorandfoundation/asa-metadata-registry-ts · GitHub29
本文已核查 18 个数字。 其中 2 项直接从链上读取。查看全部核查
来源
- 1asa-metadata-registry-ts github.com↩
- 2ARC-89 github.com↩
- 3Algorand基金会 github.com↩
- 4v1.0.0-beta.10 github.com↩
- 5v1.0.0-beta.9 github.com↩
- 11未结议题 github.com↩
- 14772968354 lora.algokit.io↩
- 15753324084 lora.algokit.io↩
- 17Lora lora.algokit.io↩
- 19注册条目 registry.npmjs.org↩
- 21采用情况文件 raw.githubusercontent.com↩
- 23ARC-89: AVM 13, global revision tracker, content-only metadata hash, canonical discovery by cusma · Pull Request #481 · github.com↩
- 24raw.githubusercontent.com/algorandfoundation/asa-metadata-registry-ts/main/docs/cookbook.md raw.githubusercontent.com↩
- 25Release v1.0.0 · algorandfoundation/arc89 · GitHub github.com↩
- 26MainNet and TestNet Update: Go-Algorand 5.0.0 - Announcements - Algorand forum.algorand.co↩
- 27x.com/cusma_b/status/2112579605584355771 x.com↩
- 28Release v1.0.0-beta.5 · algorandfoundation/asa-metadata-registry-ts · GitHub github.com↩
- 29Issues · algorandfoundation/asa-metadata-registry-ts · GitHub github.com↩