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.

The address and amount never leave your browser — neither a database nor a log sees them
All code types
01Generator02String03Format04Questions05Related
01

Code generator

Data, styling and correction level — the preview updates on every keystroke
Data

This is a sample — the address of Bitcoin's first block, money sent to it is gone for good. Paste your own wallet address.

Checking the 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.

Styling
Frame with a caption

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.

Code colour
Logo
Error correction
No logo — the whole correction budget is free
Export
Size

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.

Payload
bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?amount=0.001
Version 433 modules
A static code, forever · free · no ads · no server
The code scans perfectlycontrast 18.5:1

Contrast is fine, the logo fits the budget, the quiet zone is wide enough.

Double-check the address before sending. Address swapping is a common attack: malware replaces the address in the clipboard. Compare the first and last characters with the original.
02

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.
bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?amount=0.001
Schemebitcoin:BIP21 — a Bitcoin wallet opens a transfer
Address1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNawhere the money goes
Amount0.001in BTC, with a decimal point
Address types
1…

Legacy (P2PKH)

The original format, since 2009. Base58 with a four-byte checksum; case matters. Fees are higher than with newer addresses.

3…

P2SH

A script address: multisig and wrapped SegWit. The same Base58Check as Legacy with a different version byte.

bc1q…

SegWit (Bech32)

No capitals and no look-alike characters, easy to dictate. Bech32 is guaranteed to catch any error in at most four characters.

bc1p…

Taproot (Bech32m)

Since 2021. Looks like SegWit, but the checksum follows Bech32m — the old check rejects it.

0x…

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.

03

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.

What to know before sending

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.

04

Frequently asked questions

Paste your wallet address into the field and, if you like, add an amount in BTC, the recipient name and a payment note. The generator checks the address against its checksum, builds a BIP21 string and draws the code, ready to download as an image or PDF. A sender's wallet scanning it opens the transfer with the fields filled in. Take the address from the wallet's Receive button, not from an old message.
«» added to favorites