Ethereum payment request generator (ETH, USDC, USDT — EIP-681 QR)
Build a wallet-ready payment request for Ethereum mainnet: an EIP-681 link and QR code that pre-fills recipient, amount and token in MetaMask and other compatible wallets. EIP-55 checksum validation included; everything runs locally.
What is EIP-681?
EIP-681 defines URLs for Ethereum payment requests. A native ETH request looks like ethereum:0xRecipient@1?value=50000000000000000 (the value is in wei; @1 is mainnet). A token transfer is expressed as a call to the token contract: ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=5000000 (USDC and USDT have 6 decimals).
Mainnet only
These links target Ethereum mainnet (chain id 1). USDC on Base, Arbitrum, Polygon or Solana uses different contracts and networks — a payment sent on the wrong network to the same address will not be recognised by a mainnet invoice. More on accepting USDC safely.
FAQ
Why does my address fail the checksum?
Mixed-case Ethereum addresses encode a checksum (EIP-55). If the capitalisation doesn't match, a character was altered — re-copy it from your wallet. All-lowercase addresses carry no checksum and are accepted as-is.
Which wallets scan EIP-681 QR codes?
MetaMask Mobile, Trust Wallet, Rainbow and most WalletConnect-era wallets. Exchange withdrawal screens usually only read plain addresses — use the address-only mode for those.
Want the payment detected automatically?
A QR code shows where to pay. CryptoInvoice also watches the chain, marks the invoice paid, redirects the customer and calls your webhook — non-custodial, no KYC, 50 invoices a month free.
Create a payment link How it worksMore free tools: XRP payment QR · XRP destination tag checker · Cardano payment QR · Ethereum / USDC payment request · Crypto invoice generator