QR code · crypto paymentQR code for a crypto wallet — Bitcoin and Ethereum
Builds a payment request to BIP21 and EIP-681: address, amount, recipient name. The address is checked against its checksum, so a typo or a swap shows before you print.
Code generator
Data, styling and correction level — the preview updates on every keystrokeThis is a sample — the address of Bitcoin's first block, money sent to it is gone for good. Paste your own wallet address.
The amount is a suggestion, not a commitment: the wallet fills it in, but the sender can change it. No exchange rate is fixed — the code holds an amount in cryptocurrency, not in dollars.
The frame keeps the four-module quiet zone for you — the very margin whose absence is the most common reason a printed code will not scan.
the background is not filled — the code sits on any surface In the PDF the code is vector and the caption is a 300 dpi image: base PDF fonts carry no Cyrillic, and this is the only way not to lose Russian text.
Contrast is fine, the logo fits the budget, the quiet zone is wide enough.
The string and the address type
What exactly the code holds and what kind of address it is: format, network and how it was checked.Legacy (P2PKH)
The original format, since 2009. Base58 with a four-byte checksum; case matters. Fees are higher than with newer addresses.
P2SH
A script address: multisig and wrapped SegWit. The same Base58Check as Legacy with a different version byte.
SegWit (Bech32)
No capitals and no look-alike characters, easy to dictate. Bech32 is guaranteed to catch any error in at most four characters.
Taproot (Bech32m)
Since 2021. Looks like SegWit, but the checksum follows Bech32m — the old check rejects it.
Ethereum
0x and 40 hexadecimal characters. The checksum hides in the letter case (EIP-55): an all-lowercase address is valid too, but carries no check.
About the format
BIP21 is a 2012 convention for writing a payment request as a string: the “bitcoin:” scheme, an address and the amount, label and message parameters. It is a standard rather than an arbitrary string, so a wallet that recognises it opens with the fields filled in — nobody has to retype an address of thirty-odd characters. Ethereum uses the similar EIP-681, except the amount is in wei, a billionth of a billionth of an ether. The code holds only the request: an address and an amount. Wallet keys are not in it and cannot be — such a code lets someone send funds, not reach them.
Address swapped in the clipboard
Malware watches the clipboard and, on spotting a crypto address, pastes its own look-alike. Compare the first and last five or six characters with the original, not just the beginning: fakes are tuned to match the start.
Transfers cannot be undone
A blockchain has no support desk to reverse a payment. Money sent to a mistyped address is lost if nobody owns it. That is why the generator checks the checksum instead of encoding whatever was typed.
A testnet address
Addresses starting with tb1, m, n or 2 belong to testnet — a developer network where coins are worthless. A mainnet wallet will not accept one; the generator flags it separately.
The amount is a suggestion
The wallet fills in the amount, but the sender can change it. No rate is locked: the code says 0.001 BTC, not a dollar figure, and by payment time its fiat value will have moved.
Ether in wei, not ETH
EIP-681 writes the amount in wei: 1 ETH is a one followed by eighteen zeros. A hand-built string with value=0.1 yields either an error or a tiny amount. The generator converts exactly, with integers, no rounding.
Tokens and other chains — not here
USDT and other tokens, and chains such as TRON, are written into codes in different ways and wallets read them inconsistently. A code that works in one wallet and silently fails in another is worse than none, so only Bitcoin and Ethereum are here.