
适用范围与核心概念
这些术语适用于围绕 ERC-721 构建的 NFT 展示页、详情页和账户资产页。其他代币标准或项目自定义功能,需要另行核对,不能直接套用同一套字段。
以太坊开发者文档介绍了 ERC-721 的身份标识、持有者查询、转移与授权接口;OpenZeppelin 文档进一步解释了元数据扩展,以及展示信息可以存放在链外的实现方式。理解页面时,可以依次关注“是哪枚代币”“谁持有”“展示什么”和“允许谁操作”。

NFT、合约地址与 tokenId
NFT 即非同质化代币,ERC-721 为这类代币提供通用接口。这里的独特性首先指代币身份可区分,不能仅凭图片是否不同判断。

合约地址用于定位管理代币的智能合约,tokenId 用于区分该合约中的具体代币。在同一网络内,二者组合确定代币身份;跨网络页面还需要标明网络。详情页展示这些字段,能帮助读者区分名称或图片相似的条目。
Owner 与 Balance:持有者和数量
ownerOf 查询某枚代币当前所属的地址,适合对应详情页的“持有者”。balanceOf 查询某个地址在指定合约中持有的代币数量,适合对应账户页的数量字段。
因此,“持有数量”需要说明统计范围。单个合约返回的数量不能直接标为该账户在整个网络上的 NFT 总数,持有者地址也不能直接写成创作者身份。
Metadata 与 tokenURI:页面内容从哪里来
Metadata 是元数据,可包含名称、描述和图片等展示信息;tokenURI 是获取某枚代币元数据的资源标识。页面通常需要读取并解析元数据,才能生成卡片或详情内容。
OpenZeppelin 的示例展示了通过 URI 引用外部 JSON 的方式。代币记录在链上,并不意味着图片和描述也全部在链上;外部内容是否可修改,取决于具体存储和控制方式。设计时应分别表达代币身份与媒体加载状态,图片加载失败不能直接等同于代币不存在。
Mint、Transfer 与 Approval
Mint 表示创建代币,Transfer 表示转移;铸造也会产生从零地址发出的 Transfer 事件,因此活动记录需要结合事件字段解释。
Approval 涉及操作权限。approve 针对单枚代币,setApprovalForAll 则涉及持有者在该合约下的全部代币。权限说明应明确对象和范围;授权本身不表示持有者已经变更。
常见问题:哪些字段不能默认存在
名称、符号、tokenURI 属于元数据扩展,totalSupply 属于可选的枚举扩展,页面不能假定所有 ERC-721 合约都支持这些接口。读取不到字段时,应区分“不支持”“加载失败”和数值为零。
稀有度、游戏能力等也不能仅从 ERC-721 标准推出。只有具体合约或元数据提供相应信息时,页面才有依据展示,并应说明字段含义,避免把项目自定义属性当成通用标准。