跳转到主要内容
Change page

ERC-721 非同质化代币标准

简介

什么是非同质化代币?

非同质化代币 (NFT) 用于以独特的方式标识某物或某人。这种类型的代币非常适合用于提供收藏品、访问密钥、彩票、音乐会和体育比赛的编号座位等平台。这种特殊类型的代币具有惊人的潜力,因此它值得拥有一个适当的标准,而 ERC-721 就是为了解决这个问题而诞生的!

什么是 ERC-721?

ERC-721 引入了 NFT 的标准,换句话说,这种类型的代币是独一无二的,并且可以与来自同一个智能合约的另一个代币具有不同的价值,这可能是由于它的年龄、稀有度,甚至像它的外观等其他因素。等等,外观?

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

前提条件

正文

ERC-721(以太坊征求意见稿 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 代币的接口。正如你在下面看到的,我们将使用一个简化的 ABI,使其成为一个低门槛的示例。

Web3.py 示例

首先,确保你已经安装了 Web3.py (opens in a new tab) Python 库:

pip install web3

加密猫合约除了标准事件外,还有一些有趣的事件。

让我们检查其中的两个,PregnantBirth

延伸阅读

教程:在以太坊上使用非同质化代币 (ERC-721) 进行构建