AlgoKit Lora 2.4.0-beta 借 ARC-89 从链上注册表读取 ASA 元数据
AlgoKit Lora 的 2.4.0-beta 可以从链上 ARC-89 注册表读取 ASA 元数据,不再依赖链下文件。主网部署仍待定,该 SDK 每月下载量为 65 次。
资产的身份信息究竟存放在哪里
一枚 Algorand 标准资产(ASA)——这套让任何人都能发行代币(从稳定币到 NFT)的第一层机制——在账本上只保留最要紧的几项:名称、单位名称、总发行量、小数位数和一个 URL。而真正让买家或应用读懂一枚代币的东西,也就是图片、描述和特征数据,在链上从来就没有专门的容身之处。随 AlgoKit1 开发者工具包一同发布的可视化浏览器 Lora2,一直靠拼凑能找到的各种元数据标准来弥合这道缺口。
这一局面在 4 月被改写。2026 年 4 月 14 日发布的 Lora 2.4.0-beta.1,可以直接从 Algorand 账本内部的注册表读取资产元数据。发布日志只用“support arc-89”一行字来记录这项改动,但它带来的变化是结构性的:浏览器不再从文件托管服务或搜索索引里抓取资产描述,而是直接从链上读取。
链下元数据的三代方案
ASA 的参数集从设计之初就被刻意压到最小,剩下的部分只能由生态自行想办法。ARC-89 规范3对过去的做法有直白的描述:由于缺乏原生元数据存储,生态不得不采用“并不理想的方案”,其中就包括“滥用 ASA 的 RBAC 角色来实现资产元数据的可变性”。
| 方案 | 概念 | 现实影响 |
|---|---|---|
| ARC-3 | 存放在 IPFS 上的 JSON 元数据文件,由资产的 URL 字段指向 | 每次打开资产页面都要发起一次外部请求;网关一旦失效,资产就成了无名之物 |
| ARC-19 | 同一个 IPFS 指针,通过重新配置资产的 Reserve 地址而变得可以重新指向 | 更新可行,但元数据历史散落在一连串配置交易之中 |
| ARC-69 | 写在资产配置交易中的 JSON note | 只能通过 indexer 发现——那是一套编录链上历史的独立服务;每次更新都要再发一笔交易 |
| ARC-89 | Box 存储,即由智能合约账户拥有、位于注册表应用内部的链上键值状态 | 客户端只需一次节点调用,就能取回完整且可校验哈希的记录;既不需要文件托管,也不需要 indexer |
每一代方案解决一个问题,又制造另一个问题,而所有消费资产数据的一方——钱包、交易市场、数据分析面板——都得承受这种取舍。ARC-89 明确取代 ARC-19 与 ARC-69,它的目标是让链本身成为可信来源,从而终结这一连串的变通做法。
ARC-89:内建于链上的注册表
该标准定义了一个单例应用——一份只部署一次的智能合约——它的 Box 中每个资产对应一条记录,以资产原始的 8 字节 ID 作为键。固定的 51 字节头部包含可逆与不可逆标志位,以及一个绑定记录内容的元数据哈希;内容较长时分页存放,以符合协议的返回大小限制。读取既可经由 algod 这一节点 API 完成,也可在其他运行于 AVM(Algorand 的智能合约虚拟机)上的智能合约内部直接进行——因此合约可以在转移某笔资产的那笔交易里,顺带获取并验证该资产的元数据。
该 ARC 于 2025 年 9 月 22 日提出,由 Algorand 基金会赞助。测试网注册表已经上线,应用编号为 7533240844;其创建者账户此后又构建了 49 个测试应用,直到 2026 年 5 月初仍在处理应用调用。主网部署在两个关键环节上都还没完成:注册表的部署表上写着“TBD”,而 Lora 的网络配置把测试网接入了这个已上线的应用,主网和 LocalNet 则留空。
Lora 测试版究竟改了什么
Lora 可以在浏览器中通过 lora.algokit.io 访问,也可以用 “algokit explore” 命令打开。它是 AlgoKit 工具链的可视化层,与可视化交易构建器、应用部署实验环境和 TestNet 水龙头并列。其代码仓库5是开源的,ARC-89 相关改动通过第 582 号拉取请求合入,作者 Patrick Dinh6 称这次合并是“一个用来触发发布流程的空 PR”。随后的 5 月又推出了 v2.4.0-beta.2。
数据层本身很精简。fetchArc89Metadata() 函数调用基金会的 asa-metadata-registry-sdk7,向注册表请求该资产的 Box,Box 不存在时返回空值——此时资产页面会退回使用仍能查到的 ARC-3、ARC-19 或 ARC-69 记录,因此现有视图可以继续正常显示。仓库中还带有一个专用的 arc89-migrate 模块,这是一套迁移工具,其内部实现没有出现在本次查阅的资料中。
这项改动之所以如此克制,得益于 Lora 一开始就设定的设计目标:运维简单,直接跑在 algod 和 indexer 上,不依赖自建后端。因此新增一个元数据来源,不过是多一次节点调用,而不是要多运维一套基础设施。实时视图把这一点体现得格外直观——8 月 7 日,主网首页在 25 秒内滚过了 10 个新区块。
仍在等待主网的标准
尽管管线已经打通,采用量仍以十位数计。Lora 自己使用的这个读取库上周下载 18 次,上个月 65 次。就实际使用而言,该标准在赞助方自家技术栈之外尚未得到验证。
最核心的设计特征同时也是最尖锐的取舍:“ASA 元数据注册表一经部署,即不得更新。”一份永远无法打补丁的合约,逻辑里若存在缺陷就无从修复,日后也无法扩展以承载更丰富的元数据格式——唯一的补救办法是全新部署一次,并把所有已注册资产逐一迁移过去。再加上前文提到的、主网那一行仍为空白,开发者今天能用 ARC-89 做的事,全都发生在 TestNet 上。
同样需要讲清楚的是,究竟是谁在演示什么。赞助该 ARC 的基金会,同时也是这个浏览器的维护者和读取 SDK 的发布方,因此 Lora 对 ARC-89 的支持,是一家机构在自己产品上试用自家标准,并不能作为需求存在的独立证据。该 ARC 已进入 Last Call 评审,截止日期为 2026 年 2 月 1 日;数月之后抓取的快照仍将其标注为 Last Call,意味着那一轮评审的结果尚未确认。
链上元数据能带来什么
如果主网部署落地,差别会体现在最细小的交互上:钱包渲染资产图片,交易市场在结算时展示特征属性。今天,这些查询都依赖一台可能随时消失的主机。有了 ARC-89,同一条记录只需一次节点往返就能取回并验证——甚至可以直接在转移该资产的那笔交易内部完成——而且只要链还在,它就一直属于链上状态。目前的采用量仍是每月几十次下载,这才是衡量该标准还有多长路要走的诚实标尺。Lora 的测试版证明的是,这条路径能够端到端跑通,也为生态提供了一个可参照的实现,等注册表最终登陆主网时照此复制即可。
资料来源
- Lora — 主网浏览器2
- AlgoKit Lora 代码仓库5
- ARC-89:ASA 元数据注册表规范3
- 拉取请求 #582:support arc-898
- Lora Explore 主网9
- 推出 AlgoKit 3.0:Algorand 开发者的新时代10
- ARCs/ARCs/arc-0089.md at main · algorandfoundation/ARCs · GitHub11
- Lora 概览 | Algorand 开发者门户12
- raw.githubusercontent.com13
- GitHub - awesome-algorand/awesome-algorand: ⚡A curated list of awesome resources related to the Ⱥlgorand Blockchain ⛓14
本文已核查 1 个数字。查看全部核查
来源
- 1AlgoKit algorand.co↩
- 2Lora lora.algokit.io↩
- 3规范 github.com↩
- 5代码仓库 github.com↩
- 6Patrick Dinh github.com↩
- 7asa-metadata-registry-sdk npmjs.com↩
- 8拉取请求 #582:support arc-89 github.com↩
- 9Lora Explore 主网 lora.algokit.io↩
- 10推出 AlgoKit 3.0:Algorand 开发者的新时代 algorand.co↩
- 11ARCs/ARCs/arc-0089.md at main · algorandfoundation/ARCs · GitHub github.com↩
- 12Lora 概览 | Algorand 开发者门户 dev.algorand.co↩
- 13raw.githubusercontent.com/algorandfoundation/ARCs/main/ARCs/arc-0089.md raw.githubusercontent.com↩
- 14GitHub - awesome-algorand/awesome-algorand: ⚡A curated list of awesome resources related to the Ⱥlgorand Blockchain ⛓ github.com↩