EIP-681 支付请求

又称: ethereum: URI, 以太坊支付 URI, ERC-681, 以太坊支付链接

定义

EIP-681 是以太坊的一项提案,定义了用于支付请求的 ethereum: URI,携带收款地址、可选的链 ID、金额或代币转账,常以二维码显示。

EIP-681 定义了什么

EIP-681 是一项以太坊改进提案,发布在 EIPs 仓库中,描述了一种 URI 格式,用来请求别人发送以太币或调用合约函数。该 URI 以 ethereum: 开头,然后是目标地址,可选的 @ 和链 ID,可选的函数名和查询参数。扫描这种码的钱包可以构建出交易,供用户查看。

一个简单的以太币请求形如 ethereum:0x...@1?value=1e18。value 以 wei 为单位,也就是以太币的最小单位,允许使用科学计数法,所以 1e18 表示一个以太币。链 ID 告诉钱包指的是哪个网络,例如 1 表示以太坊主网。

代币转账

EIP-681 还可以描述对代币合约的调用。对于代币转账,目标地址是代币合约,函数是 transfer,参数给出收款方和金额,如 ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=1e6。金额以代币的最小单位计,取决于代币的小数位数。

钱包对完整格式的支持各不相同。有些钱包只读取地址,有些会忽略链 ID 或函数调用,所以最好用你的付款人所用的钱包测试一下二维码。付款人在确认之前,应始终核对网络、代币和收款方。

常见问题

ethereum: 支付链接中的 value 用什么单位?

value 参数以 wei 为单位,也就是以太币的最小单位。一个以太币等于 1e18 wei。

EIP-681 二维码可以请求代币而不是以太币吗?

可以。它可以用 transfer 函数指向代币合约,并把收款方和金额作为参数给出。

为什么链 ID 在加密货币二维码里很重要?

同一个地址可能存在于多个网络上,所以链 ID 告诉钱包这笔支付是针对哪个网络的。

来源与标准

全部术语