Get paid in Bitcoin without anyone retyping your address
A Bitcoin address is 26 to 62 characters of case-sensitive gibberish. Reading one aloud or copying it by hand is how money gets lost. A QR code hands the wallet the exact string plus, if you want, the amount to send.
The single most important thing about a payment code is that there is no undo. A scanned address goes straight into a transaction the sender signs. If the address in the code is wrong, the coins are gone — so the value of encoding it is precisely that it removes human retyping error.
Networks are not interchangeable
A Bitcoin address only works on the Bitcoin network. It is not an Ethereum address, and sending BTC to an address from a different chain, or coins from a different chain to a BTC address, usually means permanent loss.
If you accept more than one currency, generate a separate code per network and label each one clearly. Never rely on a single code for 'crypto' in general — wallets match the address format to the chain, and a mismatch fails or, worse, sends to the wrong place.
What the sender's wallet shows on scan
When you include an amount, most wallets pre-fill it and show the fiat equivalent at the current rate, so the sender sees '0.005 BTC ≈ $x' before confirming. Without an amount, the wallet opens the address with an empty amount field for the sender to type.
Pre-filling the amount cuts a second source of error and speeds up point-of-sale payments. For a donation code where any sum is welcome, leave the amount blank.
Double-check the address before you print
Copy the address directly from your wallet — never retype it. After generating, scan your own code with the receiving wallet and confirm the address it shows matches character-for-character. Print a code once and it may hang on a wall for months; a single wrong character means every payment it collects is lost.
How to create a Bitcoin payment code
- Paste your receiving address. Copy it from your wallet's receive screen. Pasting avoids the case-sensitivity mistakes that come with typing.
- Add an amount if the price is fixed. For a product with a set price, enter the BTC amount so the sender can't underpay by mistake. Leave it blank for donations.
- Verify by scanning your own code. Open your wallet, scan the generated image, and check the address matches before you trust it.
- Download at high resolution. Export SVG or a large PNG so the fine pattern of a long address stays crisp when printed.
Technical details
- Maximum characters: 2953
- Recommended error correction: Q (quartile) — payment codes get printed and handled, and the higher recovery guards a string where one wrong module is unacceptable.
- Payload format: bitcoin:<address>?amount=<btc> following BIP-21.
- The amount is in BTC, not satoshis or fiat; wallets convert to the local currency for display only.
Frequently asked questions
- Is it safe to share my Bitcoin address publicly?
- Yes. A receiving address is meant to be public — it only lets people send you coins, not take them. Be aware that a reused address makes your incoming payments visible on the public ledger; generate a fresh address per campaign for privacy.
- Can I set the amount in dollars instead of BTC?
- No. The code carries a BTC amount because the exchange rate moves constantly. The sender's wallet shows the fiat equivalent at scan time, but the fixed value in the code is denominated in Bitcoin.
- What happens if someone scans an old code after the price changed?
- If you encoded a fixed BTC amount, that amount is unchanged; only its dollar value differs. If you encoded no amount, the sender simply enters the current price. For volatile pricing, leave the amount out and quote the price separately.
- Does this work for Lightning payments?
- This generates a standard on-chain Bitcoin address code. Lightning invoices use a different format and are usually single-use, so they are generated fresh per payment rather than printed.
- Can I recover coins sent to a wrong address?
- No. On-chain Bitcoin transactions are irreversible and there is no support line. This is exactly why encoding the address in a code — rather than trusting a hand-typed one — matters.
- Why is my code so dense?
- Long addresses plus an amount make a lot of data. Print larger and keep a white margin; don't shrink a payment code to fit a small label.