capyQR
← All posts

Bitcoin QR codes: how the bitcoin: URI format actually works

How to build a bitcoin: URI (BIP21) QR code with a fixed amount, label, and message — a payment format that genuinely works across nearly every wallet.

·5 min read

Unlike some payment platforms, Bitcoin actually has a standardized, well-supported QR format — the bitcoin: URI (BIP21) works across nearly every wallet app. Here's exactly how to build one, with or without a fixed amount.

The bitcoin: URI format

A Bitcoin QR code encodes a URI in the format bitcoin:[your address], optionally extended with parameters:

A full example: bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh?amount=0.001&label=Coffee%20Shop. Most wallets read this standard directly with no extra setup required on the sender's side.

How to make one

  1. Get your Bitcoin receiving address from your wallet.
  2. Build the URI — just bitcoin:address for an open amount, or add ?amount= for a fixed one.
  3. Encode it with Capy QR's text QR code generator — the bitcoin: URI works the same as any other text payload.

Fixed vs. open amount

Build yours in the editor → capyqr.com

A note on privacy

A single static address reused indefinitely (like on a printed sign) is simple but ties all payments to one visible address on the blockchain. For higher privacy, some people generate a fresh address per transaction and make a new QR code each time — worth weighing against the convenience of a permanent, printed code depending on your use case.

A code ready for a wallet address

Here's a Capy QR styled for a receipt, invoice, or counter display:

A Mono-preset Capy QR — high contrast, ready to encode a bitcoin: URI for any wallet to scan.

Frequently asked questions

How do I make a Bitcoin QR code?
Encode a bitcoin: URI — bitcoin:[your address] or bitcoin:[address]?amount=0.001 for a fixed amount — into a QR code. Nearly every Bitcoin wallet app can scan this format directly and pre-fill the payment.
What is the bitcoin: URI format?
It's a standardized format (BIP21) that most wallets support: bitcoin:ADDRESS optionally followed by ?amount=X&label=Y&message=Z. This lets a QR code pre-fill the recipient address, amount, and even a note in one scan.
Can I set a fixed amount in a Bitcoin QR code?
Yes — add ?amount=0.001 (or whatever amount, in BTC) to the bitcoin: URI before encoding it. The receiving wallet will pre-fill that amount, though the sender can usually still edit it before confirming.
Is it safe to display a Bitcoin QR code publicly, like at a market stall?
A receiving address QR code only lets people send you Bitcoin — it can't be used to withdraw funds. For privacy, some people prefer generating a new address per transaction rather than reusing one static code indefinitely, though a single address is simpler for a fixed display.
Do all wallets support the bitcoin: URI scheme?
The vast majority of Bitcoin wallets support scanning bitcoin: URIs — it's a long-established, widely adopted standard (BIP21), not something specific to one wallet or provider.

Bottom line: Bitcoin's bitcoin: URI is one of the few payment formats that genuinely works as a universal QR standard — no platform-specific caveats needed. Ready to make one? Open the text QR code generator or browse more QR guides.