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 代币示例