Back to Blog
Tutorials
October 3, 2026 4 min readBy CQRG Team

Bitcoin QR Codes: Sending and Receiving Crypto by Scan

A Bitcoin QR code is not just a picture of a wallet address. It can carry an amount and a label too, so a scan opens a wallet app with the payment half-filled in. Here is the format, and how to use it safely.

A Bitcoin wallet address is already an ugly string to type by hand — thirty-plus characters where a single mistyped one sends funds somewhere unrecoverable. A QR code removes the typing entirely, and a well-built one can carry more than the address: an amount, a label, even a short note, so a wallet app opens with the payment almost ready to confirm.

The format: BIP21

Bitcoin QR codes follow BIP21, a standard URI format defined in Bitcoin's own improvement proposal process. The shape is:

bitcoin:ADDRESS?amount=0.001&label=Coffee%20Shop&message=Thanks%21

  • address — the only required part; everything after the ? is optional.
  • amount — the payment amount in decimal BTC. The spec is specific here: no commas, and a period as the decimal separator, regardless of the sender's regional number formatting.
  • label — a short name for who or what the address belongs to, shown to the person paying.
  • message — a short note describing the payment, also shown before they confirm.

Text in label and message needs standard URL encoding (a space becomes %20, and so on) since both can contain characters outside what a URI allows unescaped. Our generator handles that encoding automatically — you fill in plain text fields, and the address, amount, label and message are assembled into a correctly formatted URI behind the scenes.

Address-only versus amount-included codes

These serve genuinely different purposes, and mixing them up causes most of the real-world problems:

A bare address code — no amount, no label — is safe to print and reuse indefinitely, which makes it the right choice for something like a storefront tip jar sticker or a donation page. Anyone can scan it and send whatever they choose.

An amount-included code is a specific invoice for a specific payment. It should not be reused once that payment is made or the request expires, the same way you would not hand a second customer an invoice addressed to the first one. For recurring or per-transaction invoicing, generate a fresh code each time rather than reusing one with the amount simply edited.

One note worth being precise about: for privacy, many modern wallets generate a new receiving address for every transaction rather than reusing one address forever. A single printed address is still extremely common for tip jars and donations, where that privacy trade-off is accepted deliberately — just know it is a trade-off, not a technical requirement.

Wallet compatibility

BIP21 has been the standard since 2012, and essentially every modern Bitcoin wallet app supports it — scanning the code pre-fills the address, amount, and note directly into the send screen. A handful of very minimal or older wallets read only the bare address and silently ignore the extra parameters, which is a graceful failure rather than a broken one: the worst case is the sender has to type the amount themselves.

Safety matters more here than almost anywhere else

This is the one QR code category where a mistake is not just inconvenient, it is permanent. A transaction sent to the wrong address cannot be reversed or clawed back the way a bounced email or a wrong SMS can be deleted. A few habits are worth treating as non-negotiable:

  • Copy the address directly from your wallet, character for character. Never retype it by hand.
  • Scan your own printed code with a separate device before distributing it, and confirm the address it decodes to matches exactly.
  • Send a small test amount first for any code tied to a meaningful sum, before relying on it for the full payment.
  • Remember what error correction does and does not protect against. A QR code's error correction can recover a scan from a torn corner or a smudge — it has nothing to do with whether the value encoded in the first place was correct. A perfectly scannable code can still carry the wrong address if it was built wrong.

It is also worth reading how quishing works and how to stay safe — a sticker swapped over a printed donation code is a real, documented scam pattern, and the fix (checking before scanning anything in an unexpected or public location) applies just as much to a crypto address as to a phishing link.

Before you print

Scan your own code and verify the decoded address matches your wallet exactly, send a small test payment first, and only then commit to a full print run or a public display.

Build a Bitcoin QR code, with or without an amount and label, in our Bitcoin QR code generator.

bitcoincryptotutorial

Ready to make a Bitcoin QR code?

Put these tips into practice in seconds, no sign-up required.

Bitcoin QR Code Generator

Read next

More from Tutorials.