ERC-5192如何判断NFT是否锁定? 图 1
ERC-5192如何判断NFT是否锁定? · 图 1

ERC-5192用locked(tokenId)回答“此刻能否转移”,再用Locked和Unlocked事件通知状态变化。它是最小接口,不等于凭证永久存在、不可撤销或没有管理员。

本文从ERC-165探测、locked读取和转移反例出发,避免把Soulbound营销词当成权利保证。

对一个tokenId做四步检查

  1. 先调用supportsInterface确认合约声明ERC-5192支持。
  2. 调用locked(tokenId)并保存区块号与布尔值。
  3. 从铸造区块起检查Locked、Unlocked及ERC-721 Transfer事件。
  4. 阅读burn、revoke、upgrade、pause和管理员函数,判断“不可转移”之外还能发生什么。
locked结果ERC-721转移测试能推出的结论
true常规转移应被拒绝当前实现声称该token不可转移
false仍需检查批准、暂停等条件最小接口未锁定,不保证一定能转
调用失败可能不支持或token不存在不能按Soulbound处理

Locked/Unlocked事件用于索引状态变化,但最终状态应回到指定区块的locked()读取。

ERC-721转移对照实操清单

  1. 核对合约地址、链和tokenId,避免同名NFT混淆
  2. 用ERC-165探测接口,不凭市场标签判断
  3. 固定区块读取locked并回溯状态事件
  4. 检查升级代理、燃烧、撤销与管理员权限
  5. 在隔离账户尝试转移路径并记录回滚原因

一手规范给出的结论

接口与事件表

ERC-5192扩展ERC-721并提供locked(tokenId)只读函数,用布尔结果表示该NFT当前是否不可转移。

锁定状态机

合约在锁定状态变化时发出Locked或Unlocked事件,并通过ERC-165声明最小Soulbound接口支持。

ERC-721转移对照

最小接口没有规定铸造、销毁、撤销、管理员权限或元数据真实性;locked为真也不等于凭证永久不可撤销。

接口与事件表如何做双盲复核

作者先依照“核对合约地址、链和tokenId,避免同名NFT混淆”收集一份不含结论的证据包,内容包括目标对象、网络或版本、完整返回、查询时点和使用的工具。复核者收到材料后,按“用ERC-165探测接口,不凭市场标签判断”自行解释锁定状态机。双方最后才交换结果;如果结论不同,优先比较原始字段与口径,不能用页面颜色或多数意见裁决。

接着建立反例包。反例一只模拟“locked=true就写成“永久不可撤销””,反例二只模拟“只监听Locked事件,漏掉后续Unlocked”。每个反例必须说明预期拒绝点和实际拒绝点。程序若把错误输入修正后继续执行,应把修正动作完整展示;静默修正会让用户误以为原输入有效,因此仍判为不通过。

为了覆盖不可撤销误区,还要在状态改变前后各保存一次“固定区块读取locked并回溯状态事件”的结果。两份证据必须有独立时间和上下文,不能只留最终快照。若变化由缓存、节点或索引造成,报告应注明观察层级,而不是直接断言链上事实改变。

上线页面把原始证据、解释规则和结果状态拆开呈现。原始栏不做舍入和自然语言改写;解释栏写清公式、版本或字段映射;结果栏允许已确认、被否定和待核验。触发“忽略代理升级后逻辑和权限可能改变”时,按“检查升级代理、燃烧、撤销与管理员权限”重新取证,禁止继续自动处理。

故障与停止条件

误判正确处置
locked=true就写成“永久不可撤销”保留原始证据,停止外推并按本文步骤复核
只监听Locked事件,漏掉后续Unlocked保留原始证据,停止外推并按本文步骤复核
忽略代理升级后逻辑和权限可能改变保留原始证据,停止外推并按本文步骤复核

来源、增量与风险边界

来源本文用途
Ethereum Improvement Proposals正式接口、字段与规范语义
ERC-721实现路径、兼容性或安全边界

本文资料读取于2026-07-20。具体项目可能通过升级、燃烧或管理函数改变实际权利,核验时必须继续读取合约代码和权限。

站内相邻主题可继续阅读:NFT锁定边界链上权限模型。Soulbound状态可能影响身份或资格,但最小标准不保证发行方、元数据和权利真实性。不要购买或提交身份材料前只看locked值。