ERC-5700 绑定代币:让积分和配件跟着 NFT 一起搬家 图 1
ERC-5700 绑定代币:让积分和配件跟着 NFT 一起搬家 · 图 1

ERC-5700 绑定代币:让积分和配件跟着 NFT 一起搬家

买下一个游戏角色 NFT 时,买家常遇到尴尬:角色本身在 721 合约里,角色的金币是 ERC-20 代币、装备是另几枚 721,转账时四散在各处,稍不留神就“卖了角色忘了金币”。常规的代币记账以账户为中心,代币要么属于地址,要么属于合约。ERC-5700(2022 年 9 月 22 日创建的 Draft 提案)尝试把记账中心挪一格:让代币绑定在一枚 NFT 上,所有权记在藏品层面,随 NFT 一起移动。

bind、unbind 与随藏品旅行的余额

标准的思路是:ERC-20、721、1155 三类代币都可以声明为“bindable”,通过 bind 把一定数量或某一枚挂到目标 ERC-721 代币名下,挂接关系由 binderOf 查询——返回它绑在哪份合约的哪枚 NFT 上;boundBalanceOf 则回答“这枚 NFT 身上挂了多少”。任何时刻,NFT 的当前持有人都能调用 unbind 把代币解绑、认领回自己地址。绑定期间,NFT 转手,身上的代币跟着走,不需要为每类资产再签一次授权。挂上与摘下分别广播 BindUnbind 事件,批量场景还有 BindBatchUnbindBatch,账目演进全程可回放。该扩展用 ERC-165 标识,721 侧的接口标识符为 0x82a34a7d

ERC-5700 绑定代币:让积分和配件跟着 NFT 一起搬家 图 2
ERC-5700 绑定代币:让积分和配件跟着 NFT 一起搬家 · 图 2

和 ERC-6551、ERC-5773 各解决什么

同一问题有三种解法,差别值得分清。ERC-6551 给每枚 NFT 配一个专属钱包合约,代币存在账户里,资产随账户随 NFT 移动,灵活但每枚藏品背后都是一个真实合约;ERC-5773 让一枚 NFT 内部携带多个资产条目,适合“一张图一个模型一份说明书”的打包;ERC-5700 既不造账户也不改资产本体,只在记账上把代币“挂”到 NFT 上,强调对现有 20、721、1155 合约的兼容:资产还是原来的资产,只是所有权多了一层以藏品为键的挂接视图。选型时看你要的是钱包级的自由(6551)、内容级的打包(5773),还是存量资产的低成本捆绑(5700)。

挂接状态怎么查,坑在哪

准备买卖一枚“带资产”的 NFT 前,三件事可以查:第一,binderOfboundBalanceOf,确认你即将接手或放弃的挂接清单;第二,合约的 BindUnbind 事件史,看清资产被谁在何时挂上或解走——NFT 持有人随时可 unbind,意味着上一任卖家理论上可以在交割前把身上的 ERC-20 解绑带走;第三,若你是买方且协议约定“金币随角色出售”,务必确认交易前挂接仍然存在,必要时先谈好快照条款。对挂牌方也同理:平台若只识别 721 本体而不读挂接视图,资产就可能被“藏在明处”漏卖。标准仍是 Draft,实现方寥寥,任何依赖挂接语义的交易条款都应以链上可查的事件为最终依据。本文只做协议机制科普,不构成投资建议。

一场标准实验的兴衰轨迹

ERC-5700 的命运本身值得一记。它诞生于 2022 年捆绑资产需求最旺的档口:当时多个头部链游都在自建“资产跟角色走”的私有逻辑,彼此互不兼容,标准试图用最小的接口切口收编这团乱麻。但生态随后给出了另一份答案——6551 代币绑定账户以更通用的方式吸收了同一需求:既然要给 NFT 挂资产,不如给每枚 NFT 一个真正能持有万物的账户,钱包与市场的改造动力迅速倒向那边。5700 因此停留在 Draft,相关尝试陆续归档。这段历史给读者的启发比接口更耐用:标准的竞争不看设计是否优雅,而看谁率先打通钱包、市场、索引器三端。选捆绑方案时,把“有现成工具支持吗”放在“语义是否精巧”前面,能省掉大量后续摩擦。

交割清单:把捆绑条款写成可执行动作

假设你正通过场外协议收购一枚声称“带资产”的 NFT,可以把条款落到链上动作:签约前双方共同快照 binderOfboundBalanceOf 的完整清单并存档交易哈希;约定从快照到交割期间禁止 Unbind,若发生则按约定退款或补偿,条款生效与否以该合约的 Unbind 事件为唯一裁决;交割确认后立刻重跑一遍快照,两张清单差集即为最终随货资产。所有步骤不需要第三方仲裁,事件与函数调用都是公开可重放的。把谈判从口头承诺推进到函数名级别,是这类捆绑资产交易中最高性价比的自我救济,也正是 5700 式接口即使采用寥寥仍然提供的公共语言。