# ERC标准

By [Fun](https://paragraph.com/@fun-7) · 2023-06-16

---

ERC标准
=====

*   什么是ERC标准?
    
*   ERC标准的种类有哪些？
    
*   分别有什么作用？
    

1.ERC标准是什么？
-----------

*   ERC：Ethereum Request for Comment，表示以太坊开发者提交的协议提案
    
    *   ERC中包含技术和组织等注意事项及标准，ERC后面的数字是议案的编号。
        
*   相当于是一个 开发者不断各更新提交的关于以太坊中的一些使用标准,不断提交的协提案
    

ERC后面的数字是议案的编号

2.ERC20
-------

*   ERC20：同质化代币
    
    *   定义代币的各种基础信息
        
*   主要信息
    
    *   代币名称
        
    *   代币符号
        
*   基础功能函数
    
    *   1.余额
        
    *   2.交易：当前用户发送
        
    *   3.交易：传递用户发送
        
    *   4.批准
        
    *   5.允许
        

    function name() public view returns (string)
    function symbol() public view returns (string)
    function decimals() public view returns (uint8)
    function totalSupply() public view returns (uint256)
    function balanceOf(address _owner) public view returns (uint256 balance)
    function transfer(address _to, uint256 _value) public returns (bool success)
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
    function approve(address _spender, uint256 _value) public returns (bool success)
    function allowance(address _owner, address _spender) public view returns (uint256 remaining)
    

包含一些事件

*   监控交易
    
*   监控证明
    

    event Transfer(address indexed _from, address indexed _to, uint256 _value)
    event Approval(address indexed _owner, address indexed _spender, uint256 _value)
    

3.ERC721
--------

*   ERC721：非同质化代币 NFT
    
    *   可以具有唯一的标识
        
    *   主要应用：收藏品、密钥、彩票、音乐会座位编号、体育比赛等。
        
*   所有 NFTs 都有一个 `uint256` 变量，名为 `tokenId`，所以对于任何 ERC-721 合约，这对值`contract address, tokenId` 必须是全局唯一的。
    
*   也就是说，去中心化应用程序可以有一个“转换器”， 使用 `tokenId` 作为输入并输出一些很酷的事物图像，例如僵尸、武器、技能或神奇的小猫咪！
    
*   实现唯一的标识，数据=》其他
    

基础的定义

*   余额
    
*   token的所有者
    
*   安全交易
    
*   证明
    
*   获取证明
    

        function balanceOf(address _owner) external view returns (uint256);
        function ownerOf(uint256 _tokenId) external view returns (address);
        function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
        function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
        function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
        function approve(address _approved, uint256 _tokenId) external payable;
        function setApprovalForAll(address _operator, bool _approved) external;
        function getApproved(uint256 _tokenId) external view returns (address);
        function isApprovedForAll(address _owner, address _operator) external view returns (bool);
    

事件

        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);

---

*Originally published on [Fun](https://paragraph.com/@fun-7/erc)*
