Ethereum QR code generator
An EIP-681 payment request: the wallet opens with your address, the network and the amount already in it. Nothing moves until the payer confirms.
An Ethereum QR code stores an ethereum: payment request with an address, the network and an optional amount, which a wallet opens ready to send.
Style this code — colour, shape, branding, frame and output
Colour & contrastThe ink, the paper behind it, and the three eyes. Every choice is contrast-checked as you make it.
ShapeHow the squares are drawn. The three eyes are styled apart from the data, because a scanner finds the code by them.
BrandingYour mark on the code. Every picture here costs scanability — the notes say how much, and the preview is the truth.
Frame & captionA border and a line of text around the code — the "scan me" that tells a passer-by what it is for.
OutputWhat comes out of the download buttons, and what the symbol actually carries.
Print-ready PDF
A press file at the finished size: 3mm bleed, crop marks and a trim box a print shop’s checks read. The code is drawn black on white whatever the design above — how a colour prints is something only a test print can show.
The amount is in wei, and the arithmetic is ours
EIP-681 carries value in wei — eighteen decimal places — so 1.5 ETH is encoded as 1500000000000000000. That conversion is done in exact integer arithmetic, never in floating point, because 1.1 multiplied out in floating point is 128 wei wrong. Type the amount in ETH; the code carries the integer.
The network is always written into the code
The same 40 hex digits are a valid address on Ethereum, Arbitrum, Base, OP Mainnet, Polygon and BNB Smart Chain at once, and nothing in the address says which you meant. So the chain id goes into every code we build, even on mainnet where the standard lets it be left out. Pick the network your recipient watches.
What the checksum can and cannot catch
An address whose capitalisation is mixed is claiming an EIP-55 checksum, and that claim is verified here — a single mistyped character is refused. An all-lowercase address carries no checksum to verify, so it is accepted as pasted. Neither check says the address is yours; scan the printed code with your own wallet before the run.
Ethereum QR codes
Does it work for tokens as well as ETH?
This page builds a native transfer. For USDT there is a page of its own that encodes the token contract and its six decimals; other ERC-20 tokens are not offered, because guessing a token’s decimals is how an amount comes out a millionfold wrong.
Which wallets read these codes?
EIP-681 is the standard the major wallets parse. A wallet that does not recognise the URI will still show the address, which is the worst case rather than a failure.
Can I leave the amount blank?
Yes, and for a tip or donation code you should — the payer then chooses. The wallet prefills an amount when the code carries one, and the payer can still change it.
Is Polygon still MATIC?
No — Polygon’s native currency is POL, and BNB Smart Chain’s is BNB. The amount field names whichever currency the selected network actually uses.

Built to ISO/IEC 18004:2024 (the QR code symbology) · EIP-681 (Ethereum payment requests)