一枚 1155 多种输出:ERC-7603 的上下文多资产接口 图 1
一枚 1155 多种输出:ERC-7603 的上下文多资产接口 · 图 1

一枚 1155 多种输出:ERC-7603 的上下文多资产接口

一件数字资产往往有好几副面孔:电子书正文是 PDF、封面是 PNG、游戏里是可穿戴的贴图、物联网设备端要的是配置说明。把它们塞进同一个 NFT 的单一 tokenURI,等于让所有访问端猜谜。ERC-7603 给 ERC-1155 定义了“一枚代币挂多份资产”的结构:资产以 64 位编号集中登记,每枚代币引用一组资产并各自排定优先级,应用端按场景从中挑那份最合适的返回。2026 年 9 月 9 日在 ethereum/ERCs 仓库核对,该标准状态为 Draft,2024 年 1 月 25 日创建,依赖 ERC-165 与 ERC-1155。

资产即编号,代币按序引用

接口分两组。登记侧:资产对象初始化时发 AssetSet 事件宣告某个 assetId 诞生,资产被加进某枚代币(或替换既有资产)时发 AssetAddedToToken,带上代币编号数组、资产编号与被替换的编号。查询侧三个函数:getAssets 返回一枚代币的资产编号列表——注意数据按引用存储,拿到编号后还要再调 getAssetMetadata(tokenId, assetId) 才取得真正的元数据字符串;getAssetPriorities 返回这枚代币各资产的优先级数组;setPriority 重排优先级并发 AssetPrioritySet 事件。优先级是个非连续数组,数值越小越优先,取值 0 是“未初始化”的特例。所谓“上下文相关”并不由链上参数分发:合约把“有哪些文件、谁排前面”讲清楚,电子书阅读器取 PDF、市场取 PNG、游戏取模型,挑哪份的决策留给应用端实现,规范允许在 getAssetMetadata 里覆写实现枚举、回退等自定义逻辑。

一枚 1155 多种输出:ERC-7603 的上下文多资产接口 图 2
一枚 1155 多种输出:ERC-7603 的上下文多资产接口 · 图 2

与“一张 NFT 装多版本”的两条路线

ERC-5773 与 ERC-7603 常被放在一起对照,差异在挂载方式:5773 走 ERC-721 一侧,按枚独立管理多份资产;7603 落在 ERC-1155 一侧,资产对象集中登记、代币按编号引用,同一份资产数据可以被大量代币共享指针,天然省存储省 Gas。做“同一版式批量发行、内容基本相同只是编号不同”的资产,1155 加 7603 更合算;做“每枚内容各自独立”的孤品集,721 加 5773 更顺手。两者都要求应用侧新增调用,旧 tokenURI 只能提供兜底单文件——支持与否以 supportsInterface 探测结果为准。

持有人三查

一份多资产藏品的体检流程

拿到一枚登记了多份资产的 1155 代币,按四步做完体检。第一步枚举:getAssets 取回资产编号数组,注意返回的是 ID 不是内容,逐个调 getAssetMetadata 把每份元数据字符串抄进记录。第二步核优先级:getAssetPriorities 与资产数组逐位对齐,确认数值越小越优先的排序里,你最在意的那份文件排第一——0 值条目代表未初始化,说明登记半途而废,直接质询项目方。第三步盯事件:AssetSet 告诉你集合总共有多少资产对象诞生,AssetAddedToToken 把某枚代币与资产编号挂钩并记录被替换者,AssetPrioritySet 记录每次重排;三类事件构成资产清单的全部变更史,定期增量拉取即可发现清单是否被悄悄换血。第四步统一存储寿命:把每份 URI 的托管方式列成表,IPFS、Arweave 与自建服务器混用时,按最弱一环估计这套多资产的可见年限——最贵的那个 3D 模型如果住在月付服务器上,整套资产最先失效的就是它。

一查清单:遍历 assetByIndex,把每份资产的 URI 与 MIME 抄进核验记录——多资产结构里最阴的坑是“市场里那张图”与“文件清单里真正那份”指向不同存储,前者永久、后者按月付服务器费。二查上下文映射:向项目方索要注册表里 context 到 asset 的映射规则,若应用端能随意伪造上下文索取资产(比如没有验证请求者身份就把可编辑源文件回给任意调用者),等于把“不公开的那份”挂在明处。三查变更事件:AssetReplacedAssetURIReplaced 出现时重新全量读一遍清单——资产清单本身可被项目方改写,这件事与元数据可改是同一族风险,只是更隐蔽。本文为协议机制科普,不构成任何投资建议;标准状态以 ethereum/ERCs 仓库文本为准(核验时间 2026 年 9 月 9 日)。