Payment links and QR codes
Sharing a bare address works, but a payment request is clearer. BIP-21 defines a simple link that starts with bitcoin:, followed by the address and optional parameters: an amount in bitcoin, a short label (often a name or order number) and a free-form message. When someone scans a QR of that link, their wallet can fill everything in for them.
This tool builds that link, checks the address first so a typo never becomes a QR, and draws the QR code in your browser. Nothing is uploaded. You can copy the link, or download the code as PNG or SVG to print or embed.
Amounts
BIP-21 amounts are written in BTC as a plain decimal — never in scientific notation, and never with more than eight decimal places (one satoshi). Leaving the amount blank means the sender chooses how much to pay, which is useful for donations.
Upper-case bech32
Native SegWit and Taproot addresses can be written entirely in upper case. QR codes encode that denser alphanumeric alphabet more efficiently, so the code is physically smaller. Legacy addresses starting with 1 or 3 are case-sensitive and must not be upper-cased; the tool refuses to do so.
What a QR cannot guarantee
A valid QR only means the string inside is what you typed. Before you share it, scan it yourself and compare the address and amount with what your wallet shows. Malware that tampers with QR codes is rare but not unheard of.
Worked example
Address bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq, amount 0.0015 BTC, label “Lunch”. The tool produces bitcoin:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq?amount=0.0015&label=Lunch and a QR encoding that exact string. With upper-case mode it becomes BITCOIN:BC1Q…MDQ?AMOUNT=0.0015&LABEL=LUNCH — smaller on paper, same payment.
Frequently asked questions
What is a bitcoin: payment link (BIP-21)?
A short link that starts with bitcoin: and carries an address, plus optional amount, label and message. Most wallets understand it when you open or scan it, so the recipient’s address and the amount are filled in for you.
Why would I upper-case the address?
Bech32 addresses (bc1…) can be written entirely in upper case. QR codes encode upper-case letters more densely, so the code is smaller and often easier to scan. Legacy addresses (1… / 3…) are case-sensitive and must not be upper-cased.
Does this tool send my address anywhere?
No. Building the payment link and QR code happens entirely in your browser. The live price is fetched from mempool.space only if you choose to enter the amount in USD or EUR.
Can someone change the amount after I share the QR?
No. The amount is baked into the payment link inside the QR. If you change the amount, you must generate a new QR. Always scan your own QR with a wallet before sharing it.
What if my wallet cannot scan it?
Try the downloadable PNG at a larger size, use the upper-case option for bech32 addresses, or paste the bitcoin: link instead. Very long labels or messages make denser QR codes that some cameras struggle with.
Is the label or message shown to the sender?
Usually yes — wallets that support BIP-21 show the label and message when they open the link. Do not put private information in them; anyone who sees the QR can read them.