跳转到主要内容
Change page

ERC-721 非同质化代币标准

简介

什么是非同质化代币?

非同质化代币(NFT)用于以唯一的方式标识某人或者某物。 此类型的代币可以被完美地用于出售下列物品的平台:收藏品、密钥、彩票、音乐会座位编号、体育比赛等。 这种类型的代币有着惊人的潜力,因此它需要一个适当的标准。ERC-721 就是为解决这个问题而来!

ERC-721 是什么?

ERC-721 为 NFT 引入了一个标准,换言之,这种类型的代币是独一无二的,并且可能与来自同一智能合约的另一代币有不同的价值,也许是因为它的年份、稀有性、甚至是它的观感。 稍等,看起来怎么样呢?

可以! 所有 NFT 都有一个名为 tokenIduint256 变量,因此对于任何 ERC-721 合约,该配对 contract address, uint256 tokenId 必须是全局唯一的。 也就是说,一个去中心化应用程序可以有一个“转换器”,它 使用 tokenId 作为输入并输出一些很酷的东西的图像,比如僵尸、武器、技能或超棒的猫咪!

前提条件

正文

ERC-721(Ethereum Request for Comments 721),由 William Entriken、Dieter Shirley、Jacob Evans、Nastassia Sachs 在 2018 年 1 月提出,是一个在智能合约中实现代币 API 的非同质化代币标准。

它提供了一些功能,例如将代币从一个帐户转移到另一个帐户,获取帐户的当前代币余额,获取代币的所有者,以及整个网络的可用代币总供应量。 除此之外,它还具有其他功能,例如批准帐户中一定数量的代币可以被第三方帐户转移。

如果一个智能合约实现了下列方法和事件,它就可以被称为 ERC-721 非同质化代币合约。 一旦被部署,它将负责跟踪在以太坊上创建的代币。

来自 EIP-721 (opens in a new tab)

方法

事件

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

示例

让我们看看一个标准是多么重要,它使我们能够简单地在以太坊上检查任何 ERC-721 代币合约。 我们只需要合约的应用程序二进制接口(ABI)就可以创造任何 ERC-721 代币的接口。 下面我们将使用一个简化的应用程序二进制接口,让例子变得更为简单。

Web3.py 示例

首先,请确保您已安装 Web3.py (opens in a new tab) Python 程序库:

pip install web3

除了标准事件之外,CryptoKitties 合约还有其它一些有趣的事件。

我们来看看其中的两个:PregnantBirth

扩展阅读{#further-reading}

页面最后更新: 2026年4月3日

这篇文章对您有帮助吗?