ERC-5114 灵魂徽章是什么?给一枚 NFT 钉上摘不下来的徽章
聊到“不可转让的链上凭证”,多数文章讲的是绑在地址上的灵魂绑定代币。ERC-5114(Soulbound Badge)提供的是另一种思路:徽章不绑地址,而是绑在另一枚 NFT 上——铸造那一刻钉死,之后既不能撕下来,也不能搬去别处。这个提案在以太坊改进提案仓库中的当前状态为 Last Call(最后征集意见阶段),创建于 2022 年 5 月 30 日,需要说明的是,Last Call 意味着它并未进入 Final 状态,采用范围有限,读代码时不要把它当既定行业默认。
一枚徽章的“灵魂”是另一枚 NFT
按规范,徽章在铸造时绑定到某个 ERC-721 代币,之后不可转移。接口里的 ownerOf 很特别:它返回的不是一个钱包地址,而是一对 (nftAddress, nftTokenId),也就是“这枚徽章钉在哪份合约的哪枚代币上”。同一接口要求这个方法对已铸造的徽章永远返回同一个结果,与铸造时发出的 Mint 事件保持一致,并且同一个徽章编号不允许重复触发铸造事件。这里的“灵魂”是广义资产:任何能用“合约地址加编号”指认的东西都可以当载体,规范明确说它兼容的是“以可用地址与编号标识的资产”。对普通用户,这层绑定带来一个直观的行为差异:持有载体的钱包地址变了,徽章仍在载体身上,查询时按“地址加编号”这对坐标核对即可;反过来,如果有人宣传“徽章可以单独转让给朋友”,那要么对方卖的不是本标准的徽章,要么合约做了标准之外的额外函数,两种情况都值得警惕。
与普通灵魂绑定代币的差别
灵魂绑定代币把凭证绑在地址上,地址换了、私钥丢了,凭证也就跟着困死;ERC-5114 把凭证绑在 NFT 上,徽章跟着那枚 NFT 走:载体被转让,徽章随载体一起移动,但徽章本身永远无法单独摘下来。这个设计天然适合“资产履历”场景——给一枚收藏品挂上鉴定记录、给一张会员卡钉上行为积分,徽章与载体的命运被强制绑定,不能被拆分套利。规范自己也点明了这层用意:让同一载体上的多个徽章天然不可拆分、不可合并,同时允许钱包对绑定关系做激进缓存。
元数据必须“钉得住”:内容寻址是硬性要求
ERC-5114 对元数据提出了少见的强约束:collectionUri 与 badgeUri 返回的地址必须是内容寻址、不可变的,规范给出的例子是 ipfs:// 前缀而明确排斥 http://;连内容里引用的外部链接也要遵守同样规则。理由是灵魂徽章被定位为“永久标识”——如果发行方还能改服务器、删内容,就等于保留了定向审查或篡改特定用户徽章的能力,违背标准的初衷。两份元数据的合并规则与数据格式故意不写进本标准,而是留给未来可迭代的独立格式规范,由 metadataFormat 函数告知调用方该按什么格式解析。
核验一枚徽章时看什么
- 先确认合约是否声明实现该接口,再查
Mint事件里badgeId是否与载体绑定记录一致。 - 调用
ownerOf,核对返回的载体是不是你预期那枚 NFT,警惕同编号重复铸造信号。 - 检查元数据 URI:凡是
http://或https://开头的地址,都不满足本标准的不可变要求,发行方理论上可以改内容。 - 把它当“载体附属品”理解:评估载体的流转规则时,把随行的徽章一起算进来。
本文仅作标准机制科普;Last Call 状态的提案在实践中可能出现实现差异,一切以合约代码与链上数据为准,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。