一句话理解
元数据分两个层级:一件 NFT 的描述由 tokenURI() 给出,而整个系列的名称、简介、横幅图等信息,过去散落在各个市场的后台配置里。ERC-7572 把这些“合同级元数据”标准化:合约实现 contractURI() 返回一份 JSON,并用 ContractURIUpdated() 事件通知索引器刷新。
标准内容
按 ERC-7572 规范,接口只有两个成员:
interface IERC7572 {
function contractURI() external view returns (string memory);
event ContractURIUpdated();
}
返回的字符串可以是链下链接(IPFS 或普通 URL),也可以是 data:application/json;utf8, 开头的链上内联 JSON。JSON 结构约定包含 name(必填)、symbol、description、image、banner_image、featured_image、external_link 和 collaborators(协作者地址数组)等字段。
该标准目前状态为 Draft(草案),由 OpenSea 的 Devin Finzer、Alex Atallah 与 Ryan Ghods 于 2023 年 12 月提出——contractURI() 这个名字本身就是对市场早已存在写法的追认。
和 tokenURI 的分工
tokenURI():ERC-721 元数据扩展定义,描述“这一件”代币——名称、图片、属性。contractURI():描述“这一整个系列”——集合封面、简介、官网链接。
规范建议:如果合约同时有 name()、symbol() 等方法,以 contractURI() 返回的内容优先,因为它配了更新事件,便于项目方改资料。
用户怎么用这些信息
- 看集合封面是否可核验:在市场页面看到某个集合的简介和封面,可以到区块浏览器对合约调用
contractURI(),确认展示内容来自合约声明而非市场手工录入。 - 留意协作者列表:schema 里的
collaborators是在支持该标准的工具上拥有资料编辑权的地址,安全敏感的操作前值得看一眼。 - 更新不等于欺诈:集合改名、换封面在链上会发
ContractURIUpdated事件;反过来,改名却不发事件、只改链下文件的做法,会留下信息不一致的隐患。
常见误区
- 误区一:contractURI 存的就是作品图片。 它是系列级信息,作品内容仍看
tokenURI。 - 误区二:实现了这个接口就等于可信。 它只统一“资料放哪里”,不保证资料说真话。
- 误区三:没实现就不正常。 该标准是草案,大量老合约没有实现,市场会退回自己的配置。
为什么市场愿意跟进这个标准
在 ERC-7572 出现前,每个市场的展示资料靠人工提交表单维护,改名、换图要在多个平台分别操作,信息版本经常互相打架。contractURI() 的思路是把“唯一事实源”放回合约:市场只需监听 ContractURIUpdated 事件并重新拉取,展示就能自动收敛到一致状态。对用户来说,多了一个低成本核验入口——当某个页面展示的封面与合约声明不符时,以合约返回为准;这就像用官网查联系方式,而不是相信某家转载站留下的电话。值得留意的是,该标准由头部市场人员起草,带明显生态背景,评估时应把它看作“正在形成中的约定”,而非已经完成的共识;如果合约同时定义了 name() 等方法,规范建议以 contractURI() 的内容优先,遇到两边不一致时,应把合约声明的事件时间线作为判断改名先后顺序的依据。
常见问题
问:contractURI 和 baseURI 有什么区别?
baseURI 是 ERC-721 实现里拼接 tokenURI 前缀的常见变量,属于“每件代币”的路径零件;contractURI 描述整个集合的资料页,两者面向不同层级,不能互相替代。
问:怎么快速查看某合约的 contractURI?
在区块浏览器合约页的 Read 标签里找 contractURI 方法,调用后拿到字符串;若是 data:application/json 开头可直接阅读内联 JSON,若是链接则复制到浏览器打开。
问:项目改名会不会留下记录?
只要实现按规范发 ContractURIUpdated 事件,改动就能被索引器追踪到时间线;你可以据此对比改名发生的时间与项目方对外说明是否一致。如果合约只是悄悄更换了链下 JSON 文件而不发事件,链上不会有任何提示,这类“静默改名”正是核验资料时间线时要重点防范的情形。
风险提示
本文仅为技术标准科普,不构成投资建议。核验时间:2026 年 7 月。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。