ERC721 定义了一种以太坊生态中不可分割的、具有唯一性的Token交互、流通的接囗规范。官网简要称为 Non-Fungible Token Standard(简称NFT标准规范),即非同质化Token(或不可替代的Token)。
ERC721合约标准提供了在实现ERC721 Token 时必须要遵守的协议,要求每个ERC721标准合约需要实现ERC721接囗及ERC165接囗。
ERC721特性:
- 在该合约内,tokenId唯一
- tokenId只能被一个owner所拥有
- 一个owner可以拥有多个NFT,balance函数只能查询owner拥有多少个token
- NFT可通过approve、transfer等接囗方法进行流通,即NFT所有权转移
ERC721接口实现及详解:
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.7;
interface IERC721 /* is ERC165 */ {
event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
//转移事件:token发生转移时进行event通知;
event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
//授权事件:发生授权事件时进行通知;
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
//全部授权事件,发生全部授权时进行通知;
function balanceOf(address _owner) external view returns (uint256);
//账户余额:账户有多少个tokenID
function ownerOf(uint256 _tokenId) external view returns (address);
//拥有权查询:按照tokenID查询其归属账户
function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) external payable;
//tokenID转移,参数不同;
function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
//tokenID安全转移:转移三要素要存在;
function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
//tokenID转移
function approve(address _approved, uint256 _tokenId) external payable;

ERC721是用于创建和管理不可分割且具有唯一性的Token的以太坊标准,常用于非同质化Token(NFT)。此标准定义了如balanceOf、ownerOf和transferFrom等接口,以确保安全的Token转移,并要求实现ERC165接口。智能合约示例展示了如何实现这些功能,包括安全转账、授权和合约间的交互。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



