如何通过二维码转账ERC20代币?含以太坊转账示例及参数配置疑问
以太坊ERC20代币转账的URI格式说明
原生ETH转账的URI格式直接指定接收地址和转账金额,但ERC20代币作为合约资产,需要通过调用代币合约的标准方法来完成转账,具体格式和参数设置如下:
核心格式结构
ethereum:<ERC20合约地址>@<链ID>/transfer?address=<接收地址>&uint256=<最小单位转账金额>
各部分解释
<ERC20合约地址>:目标代币的官方合约地址,比如主网DAI的合约地址是0x6B175474E89094C44Da98b954EedeAC495271d0F@<链ID>:可选字段,指定交易所在链的ID(比如以太坊主网是1),避免跨链转账错误transfer:ERC20代币的标准转账方法名,对应合约内的transfer(address to, uint256 amount)函数address=<接收地址>:转账的目标钱包地址,格式和原生ETH接收地址一致uint256=<最小单位转账金额>:注意这里必须填写代币最小单位的数值,比如DAI有18位小数,转1个DAI就填1e18;USDC有6位小数,转1个USDC填1e6
实操示例
比如在以太坊主网转1个DAI到地址0x0223acdb0a45622daeb2444e842b5a007a402a44,对应的URI格式为:
ethereum:0x6B175474E89094C44Da98b954EedeAC495271d0F@1/transfer?address=0x0223acdb0a45622daeb2444e842b5a007a402a44&uint256=1e18
注意事项
- 必须严格遵循ERC20标准的
transfer方法参数顺序:先接收地址,再转账金额,参数名要和格式里的address、uint256对应 - 不同代币的小数位可能不同,一定要先确认代币的小数位数,再转换为最小单位数值
- 主流以太坊钱包都支持解析这种URI,直接点击即可唤起钱包并预填所有转账参数,用户确认后就能发起交易
内容的提问来源于stack exchange,提问作者Jack Pate
相关产品推荐
相关产品推荐

