以太坊作为全球最大的智能合约平台,不仅是加密货币的“基础设施”,更孕育了丰富的代币生态系统,从早期的ERC-20标准到如今的ERC-721、ERC-1155等多类型代币,以太坊上的代币操作早已超越了简单的“转账”,涵盖了铸造、转移、授权、质押、燃烧、兑换等多个维度,本文将系统梳理以太坊上常见的代币操作类型,帮助读者理解这一生态的多样性与复杂性。
ERC-20代币:最主流的基础操作
ERC-20是以太坊最早、应用最广泛的代币标准,定义了 fungible token(同质化代币)的基本接口,其核心操作围绕“同质化”特性展开,主要包括:
转账(Transfer)
最基础的操作,指代币持有者将一定数量的代币转移至其他地址,需调用transfer(address to, uint256 amount)函数,底层依赖transferFrom或approve机制确保安全性(防止未授权转账),USDT、USDC等稳定币的日常转账均属此类。
授权(Approve)
为第三方“消费”代币授权,用户想通过DeFi协议(如Uniswap)交换代币,需先调用approve(address spender, uint256 amount),授权协议合约提取自己的代币,授权后,协议可通过transferFrom函数执行实际转账,避免用户重复操作。
转移(TransferFrom)
由授权方代为执行转账,常用于DeFi、钱包聚合器等场景,需满足两个条件:接收方(spender)已被授权,且授权额度充足,Aave等借贷协议通过此操作自动管理用户的抵押代币。
铸造(Mint)与销毁(Burn)
- 铸造:新增代币供应,通常由合约所有者(如项目方)调用
mint(address to, uint256 amount)执行,稳定币USDT在需要增发时由中心化机构铸造。 - 销毁:减少代币供应,调用
burn(uint256 amount)将代币发送至“黑洞地址”(无私钥地址),或通过burnFrom销毁已授权的代币,BNB季度销毁机制即通过此操作减少流通量。
ERC-721代币:非同质化代币(NFT)的独特操作
ERC-721标准定义了 non-fungible token(非同质化代币),每个代币具有唯一性,适用于艺术品、收藏品、房产凭证等场景,其操作核心在于“所有权”与“唯一性管理”:
安全转账(Safe Transfer)
与ERC-20不同,ERC-721需考虑接收方是否为智能合约(避免合约无法处理NFT导致丢失),因此标准接口为safeTransferFrom(address from, address to, uint256 tokenId),转账前会检查接收方是否实现了ERC721Receiver接口,确保兼容性。
所有权查询(Owner & Balance)
ownerOf(uint256 tokenId):查询指定ID代币的当前持有者地址。balanceOf(address owner):查询某地址持有的NFT数量,OpenSea等NFT平台依赖此接口展示用户的收藏列表。
铸造(Mint)与销毁(Burn)
- 铸造:项目方调用
mint(address to, uint256 tokenId)将唯一ID的NFT铸造至指定地址,ID需全局唯一。 - 销毁:调用
burn(uint256 tokenId)删除代币记录,彻底销毁该NFT的所有权。
ERC-1155代币:多类型代币的批量操作
ERC-1155是“同质化+非同质化”混合标准,支持单合约内管理多种代币(如游戏内的道具、材料、皮肤等),核心优势是“批量操作”,降低Gas成本:
批量转账(Batch Transfer)
支持一次性转移多种代币,调用safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data),避免ERC-20/ERC-721多次转账的高Gas消耗,游戏玩家可一次性接收“木材+石头+金币”等多种道具。
铸造(Mint)与销毁(Burn)
- 批量铸造:
mintBatch(address to, uint256[] ids, uint256[] amounts, bytes data),可同时铸造不同ID的代币(如同系列不同稀有度的NFT)。 - 批量销毁:
burnBatch(address from, uint256[] ids, uint256[] amounts),高效清理无用代币。
代币类型查询(URI与元数据)
uri(uint256 id)返回代币的元数据链接(如JSON格式描述NFT的图片、属性等),用户可通过此链接查看代币详情。
DeFi场景下的代币衍生操作
以太坊的DeFi生态进一步扩展了代币操作,使其与金融功能深度结合:
质押(Stake)
用户将代币锁定在智能合约中(如质押ETH验证节点,或质押LP代币参与流动性挖矿),调用stake(uint256 amount)函数,通常可获得奖励代币(如stETH、sETH),质押期间代币被“冻结”,解锁需调用withdraw。
流动性提供(Add Liquidity)
在去中心化交易所(如Uniswap)中,用户将两种代币(如ETH/USDC)按比例存入流动性池,调用addLiquidityETH函数,获得LP代币(代表流动性份额),LP代币本身也可作为资产进行质押或交易。
兑换(Swap)
通过DeFi协议(如Uniswap、Curve)用一种代币交换另一种代币,核心是swap函数。swapExactTokensForTokens允许用户输入明确数量,输出按实时价格计算的另一种代币。
