
一、NFT的特点适用于什么范围
NFT即非同质化代币,用于区分具有独立身份的对象。以太坊开发者文档介绍的ERC-721,为这类代币规定了查询持有者、转移和授权等接口。本文围绕这一标准展开,相关接口细节不能直接套用于所有NFT实现。
理解NFT时,可以分别观察代币身份、关联内容和应用功能。这三个层面相互关联,但一个层面的技术保证,并不自动覆盖其他层面。

二、唯一性是否意味着图片不能重复
在同一条链上,识别ERC-721代币需要结合合约地址与tokenId。不同合约可以使用相同编号,因此只看编号不足以确定具体代币。

这种唯一性针对代币身份,并不保证展示内容互不相同。即使两个代币显示相同图片,也不能据此判断它们是同一个代币;核对身份与比较图片,是两个不同的问题。
三、NFT的内容是否全部保存在链上
OpenZeppelin的ERC-721文档通过元数据扩展示例说明:tokenURI可以指向描述名称、图片等信息的JSON文件,而文件内容可能存放在链外。其文档也介绍了将信息编码为数据URI的链上存储方式。
因此,链上存在代币记录,不代表相关图片和说明全部上链。如果指向的链外内容可以修改,展示信息也可能变化。讨论内容是否固定,需要同时考虑引用方式、存储位置和修改权限。
四、查询、授权和转移有什么区别
ERC-721中的ownerOf用于查询特定代币的持有地址,balanceOf用于查询地址持有的代币数量。授权则涉及允许其他地址操作代币,既有针对单个代币的授权,也有面向操作者的整体授权。
查询是在读取状态,授权是在授予权限,转移才涉及持有关系的改变。将三者区分开,才能准确理解应用界面中的不同操作;获得授权并不等于已经成为持有者。
五、一个NFT能否直接拆成小数份额
OpenZeppelin文档指出,ERC-721没有ERC-20中的decimals字段,每个代币按独立单位表示。基础ERC-721并不提供将单个代币直接拆成小数份额的机制。
如果某个应用描述了份额化功能,需要另行解释其实现方式,不能仅凭采用ERC-721就推定它具备这种能力。
六、符合标准是否意味着功能完全相同
标准化接口让应用能够以共同方式识别和操作代币,但具体合约仍可能增加扩展功能或自定义规则。OpenZeppelin的示例还说明,铸造入口是否限制调用者,需要结合访问控制设计判断。
所以,标准兼容可以说明基础交互方式,却不足以说明谁能创建代币、内容能否修改,或某个应用赋予代币哪些用途。这些问题需要落到具体合约与应用规则中分别理解。