EIP-681 payment request

Also called: ethereum: URI, Ethereum payment URI, ERC-681

Definition

EIP-681 is an Ethereum proposal that defines ethereum: URIs for payment requests, carrying a recipient address, optional chain ID, value or token transfer, often shown as a QR code.

What EIP-681 defines

EIP-681 is an Ethereum Improvement Proposal, published in the EIPs repository, that describes a URI format for asking someone to send ether or call a contract function. The URI starts with ethereum:, then the target address, an optional @ and chain ID, an optional function name and query parameters. A wallet that scans such a code can build the transaction for the user to review.

A simple ether request looks like ethereum:0x...@1?value=1e18. The value is given in wei, the smallest unit of ether, and scientific notation is allowed, so 1e18 means one ether. The chain ID tells the wallet which network is intended, for example 1 for Ethereum mainnet.

Token transfers

EIP-681 can also describe a call to a token contract. For a token transfer, the target address is the token contract, the function is transfer, and the parameters give the recipient and amount, as in ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=1e6. The amount is in the token’s smallest unit, which depends on the token’s decimals.

Wallet support for the full format varies. Some wallets read only the address, and some ignore the chain ID or function call, so it is worth testing a code with the wallets your payers use. The payer should always check the network, token and recipient before confirming.

Frequently asked questions

What unit is value in an ethereum: payment link?

The value parameter is in wei, the smallest unit of ether. One ether is 1e18 wei.

Can an EIP-681 QR code request a token instead of ether?

Yes. It can point to the token contract with the transfer function and give the recipient and amount as parameters.

Why does the chain ID matter in a crypto QR code?

The same address can exist on several networks, so the chain ID tells the wallet which network the payment is meant for.

Sources and standards

All terms