ERC721 是一种基于以太坊的智能合约标准,它定义了非同质化代币(NFT)的基本行为。本指南将介绍 ERC721 的基本概念、如何创建一个简单的 ERC721 合约,并提供一些扩展阅读资源。
ERC721 简介
ERC721 是一种用于创建和交易独特数字资产的智能合约标准。与 ERC20 标准的代币不同,ERC721 代币是独一无二的,每个代币都代表一个独特的资产,如艺术品、收藏品或游戏内的物品。
ERC721 核心功能
- 所有权验证:通过
ownerOf()
函数查询某个代币的所有者。 - 转移所有权:通过
transferFrom()
函数将代币从一个所有者转移到另一个所有者。 - 查询代币数量:通过
balanceOf()
函数查询一个地址拥有的代币数量。 - 安全枚举:通过
tokenOfOwnerByIndex()
和tokenByIndex()
函数按索引查询特定所有者的代币。
创建 ERC721 合约
以下是一个简单的 ERC721 合约示例:
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract MyERC721 is ERC721 {
constructor(string memory name, string memory symbol) ERC721(name, symbol) {}
function mint(address to, uint256 tokenId) public {
_mint(to, tokenId);
}
}
在这个合约中,我们使用了 OpenZeppelin 的 ERC721
库来简化合约的创建过程。mint()
函数用于创建新的代币并将其分配给指定地址。
扩展阅读
ERC721 代币示例