Bitcoin QR code generator
A BIP-21 payment link: the wallet opens with your address filled in, and the amount when you set one. Nothing moves until the payer confirms in their own wallet.
A Bitcoin QR code stores a bitcoin: payment link with a wallet address and 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.
What the code carries, and what it cannot
The payload is a bitcoin: URI from BIP-21 — address, optional amount in BTC, an optional label and message. It is a request, not a transfer: the wallet shows all of it and the payer approves or does not. A typo in the address is money gone, which is why the shape is validated before anything encodes.
Shape-checked, not balance-checked
The address is verified to look like a Bitcoin address — legacy 1…, script 3…, or bech32 bc1… — and nothing more. No one can tell from the string whether it is yours; scan the printed code with your own wallet once before the print run.
Other chains
Ethereum, Solana, XRP and USDT each have their own page, because each encodes differently and only one of them is a BIP-21 URI. Ethereum carries value in wei with a chain id; Solana Pay takes plain decimal amounts; XRP has no payment-link standard at all, so its code is an address. None of them reads a Bitcoin address, and this page will not build one of theirs.
Bitcoin QR codes
Does the amount lock what the payer sends?
No — wallets prefill it and the payer can change it before confirming. Leave it blank for a tip-jar code where any amount is welcome.
Which address type should I use?
The one your wallet gives you. bc1 (bech32) addresses are the current default and encode slightly smaller; all three shapes work in any maintained wallet.
Is it safe to print an address?
An address only receives. The real risk is substitution — someone pasting their own over yours — so scan the final print with your own wallet and check the first and last characters against your records.
What are label and message for?
The label names the recipient in the payer’s wallet; the message describes the payment. Both travel percent-encoded inside the URI and neither is required.

Built to ISO/IEC 18004:2024 (the QR code symbology) · BIP-21 (the bitcoin: payment URI)