Make a Bitcoin QR Code From Your Wallet Address

Paste your address, add an amount if you want one, and download a code that any Bitcoin wallet reads - styled to match your artwork and exported at print quality.

1 Content
https://
No registration required Unlimited QR codes No watermark Free high-resolution downloads
2 Design
Shape
Pattern
Eyes
3 Preview
Copied!

What Is a Bitcoin QR Code?

A Bitcoin QR code is a QR code that stores a Bitcoin payment URI - an address, and optionally an amount, written in the BIP-21 format. Scanning it in a wallet app fills in the recipient so nobody has to retype 42 characters. The address lives in the pattern; no transaction happens until the sender approves one.

The KoloQR designer with a QR code being styled - shape, colors and center logo

What BIP-21 Puts Inside the Pattern

The payment URI is a small, well-defined structure, and each part changes what the receiving wallet does:

  • bitcoin: - the scheme. It is what makes a phone offer the code to a wallet app rather than to a browser.
  • The Address - where the funds go. A modern bech32 address starts bc1 and runs 42 characters; older formats start 1 or 3 and run 26 to 35.
  • ?amount=0.05 - optional, and always in decimal BTC rather than satoshis. The wallet pre-fills the amount, and the sender can still change it before approving.

Nothing else is required, and nothing about the code touches the network. A Bitcoin QR code is a piece of text about where to send money - it cannot move funds, cannot be spent from, and works identically whether it is on a screen or printed on paper.

Uppercase a bech32 Address to Halve the Pattern

Bech32 addresses - the ones beginning bc1 - are defined as case-insensitive, and BIP-173 recommends using the uppercase form specifically inside QR codes. The reason is how QR codes encode data. Mixed-case text has to go into byte mode at 8 bits per character; text limited to digits, uppercase letters, and a handful of symbols qualifies for alphanumeric mode at 5.5 bits. For a 42-character address that is roughly a third fewer bits, which typically drops the symbol a version or two: fewer modules in the same square, each one larger, and a code that reads from further away and survives a worse print. The saving is real and free - BC1QAR0SRRR7XFKVY5L643LYDNW9RE59GTZZWF5MDQ is the same address as its lowercase form to every wallet that implements the standard. It applies only to bech32. Legacy addresses starting 1 or 3 are Base58Check, where case is significant and changing it produces a different, invalid address - and Ethereum goes further still, using case to carry a checksum, which is why an Ethereum address must never be uppercased.

Generate QR Code
A phone scanning a printed QR code to test it before the print run

Where Bitcoin QR Codes Are Used

The code exists to stop people transcribing a 42-character string, which is why it turns up wherever an address has to leave a screen:

Point-of-Sale Displays

A shop taking Bitcoin shows a fresh address and amount per sale, on a screen rather than on paper, so no address is reused.

Donation Signs and Tip Jars

A printed donation code is the one case where a static address is normal - and the one case where address reuse is an accepted trade-off.

Invoices and Statements

A code beside the total lets a payer scan rather than copy, which removes the most common cause of a payment going nowhere.

Conference and Meetup Signage

Bitcoin events pay each other constantly, and a stand code is faster than reading an address aloud.

Paper Wallets and Cold Storage Backups

The receiving address is printed as a code so funds can be sent in without exposing anything that can spend them.

Streamer and Creator Support Pages

An overlay code collects tips from viewers who already hold coin, without a payment processor in the middle.

How to Create a Bitcoin QR Code

Address, amount, download - and one check that matters:

Generate QR Code
  1. 1

    Copy the Receiving Address From Your Wallet

    Copy and paste it; never type it out. A single wrong character produces either an invalid address or, in rare cases, a valid one belonging to nobody.

  2. 2

    Open the Type Picker and Choose Bitcoin

    Bitcoin sits under More, in the Crypto group. Paste the address, and add an amount in BTC if you want the wallet to pre-fill one.

  3. 3

    Style It, but Keep It Readable

    Choose a shape and colors if the code is going into branded artwork. Contrast matters more here than on any other type, because a misread character is a failed payment.

  4. 4

    Verify by Scanning, Character by Character

    Scan the exported file with a real wallet app and compare the address it shows against the one you copied - all of it, not the first and last four. Then export SVG or PDF.

The KoloQR generator with a QR code being designed and ready to download

Which File Format Should You Download?

KoloQR exports your Bitcoin QR code in three formats. Pick by where it will be seen:

  • PNG for point-of-sale screens, overlays, and web pages, where the code appears at one fixed size.
  • SVG for donation signage, invoices, and printed cards - anything a printer scales without softening the edges.
  • PDF for handing to a print shop or dropping into an invoice template at print-ready quality.

Print quality is not cosmetic here. A soft or broken module in a link code costs a page view; in a payment code it either fails to scan or, in the worst case, forces the sender to fall back on typing the address by hand. Export vector, print large, and keep the contrast absolute.

Generate QR Code

Best Practices for Bitcoin QR Codes

A payment code has a failure mode no other QR type has, so the habits are stricter:

  • Uppercase bech32 Addresses Before Encoding

    An all-uppercase bc1 address qualifies for alphanumeric encoding, roughly a third fewer bits than mixed case. Same address, sparser pattern, better scan distance.

  • Never Uppercase a Legacy Address

    Addresses starting 1 or 3 use Base58Check, where case is significant. Changing it does not produce the same address - it produces an invalid one, or somebody else's.

  • Verify the Full Address After Generating

    Scan the exported file in a wallet and compare every character. Checking only the first and last four is exactly the shortcut address-swapping malware is built to exploit.

  • Think Twice Before Printing a Static Address

    Reusing one address links every payment to it in the public ledger, which is a privacy loss for you and for everyone who pays you. Point-of-sale should generate a fresh address per sale.

  • Be Careful With Fixed Amounts

    An amount in BTC is fixed the moment it is printed, while the exchange rate is not. For anything priced in local currency, print the address alone and let the till supply the amount.

  • State the Network Beside the Code

    “Bitcoin (BTC) only” prevents the most expensive mistake in crypto payments - coins sent on the wrong network are usually unrecoverable.

  • Keep the Modules Pure Black

    Styling is fine around the code. Inside it, this is the one type where a marginal contrast ratio is not worth the design, because the cost of a misread is a payment that does not arrive.

  • Protect the Quiet Zone

    Four modules of clear margin on every side, and more on a busy sign. Error correction can rebuild damaged modules; it cannot find a code with no margin.

  • Size It Generously

    At least a tenth of the reading distance, and then a step larger. A Bitcoin URI is a long payload, so the symbol is dense even at its best.

  • Never Put a Private Key or Seed in a QR Code You Publish

    A receiving address is safe to show anyone. A private key or seed phrase in a code is the whole wallet, readable by every camera pointed at it.

Why Your Bitcoin QR Code Isn't Working

A payment code fails in ways worth knowing before money is involved. These four cover nearly every case.

  • The Wallet Says the Address Is Invalid

    Cause
    Usually a legacy address that was uppercased, or an address copied with a stray space or line break from an email or a PDF. Base58Check is case-sensitive and unforgiving.
    Fix
    Copy the address fresh from the wallet, paste it without editing, and only apply the uppercase trick if it starts bc1. Then rescan the exported file to confirm.
  • The Code Is Very Dense and Hard to Scan

    Cause
    A 42-character bech32 address in mixed case is encoded in byte mode at 8 bits per character, and an amount parameter adds more. That combination pushes the symbol several versions up.
    Fix
    Uppercase the bech32 address to move it into alphanumeric mode, drop the amount parameter if it is not essential, and print larger. All three help, and the first is free.
  • The Phone Opens a Browser Instead of a Wallet

    Cause
    No app on the phone is registered to handle the bitcoin: scheme, so the operating system falls back to treating it as an unknown link.
    Fix
    That is expected on a phone with no wallet installed. Anyone paying you will have one; test with a wallet app rather than judging from a phone that has none.
  • Payments Arrived at the Wrong Amount

    Cause
    The printed amount parameter is in BTC and was set at a past exchange rate, so it no longer matches the price in local currency.
    Fix
    Print the address alone on anything long-lived and let the sender or the till enter the amount. Fixed amounts belong on a screen that regenerates per transaction.

Still not sure whether the fault is the file or the print? Drop the exported image into the QR code scanner - if it decodes on a desktop and not on paper, the fault entered after the file.

Questions? Answered

A Bitcoin QR code stores a payment URI - an address, and optionally an amount - in the BIP-21 format. Scanning it in a wallet app fills in the recipient, so nobody has to retype a 42-character address.

Copy the receiving address from your wallet, choose Bitcoin in KoloQR's type picker, and paste it in. Add an amount if you want one pre-filled, then download PNG or SVG. Nothing is sent to a server.

Yes, if it holds a receiving address - that's public information and can only be used to send you funds. Never put a private key or seed phrase in a code you publish; that is the entire wallet.

Because bech32 is case-insensitive, and an uppercase address qualifies for the QR alphanumeric encoding at 5.5 bits per character instead of 8. That's about a third fewer bits and a visibly sparser, easier-to-scan code.

No - only bech32 addresses starting bc1. Legacy addresses starting 1 or 3 use Base58Check, where case is significant. An Ethereum address must never be uppercased either - there the casing carries the EIP-55 checksum.

Only on a screen that regenerates per transaction. An amount is fixed in BTC at the moment of printing while the exchange rate moves, so a printed amount drifts away from the price you meant.

It works, but every payment to that address is publicly linked to every other one. For a donation sign that's an accepted trade-off; for a point of sale, generate a fresh address per transaction.

No. The scan fills in the recipient and, if present, the amount. The sender still reviews and approves the transaction in their wallet - a QR code cannot move funds on its own.

The code itself is just text, so it scans offline. Broadcasting the transaction needs a connection - which is what makes these codes usable on paper wallets and in cold-storage setups.

Because no app on that phone is registered for the bitcoin: scheme. That's normal on a phone with no wallet installed. Test with a real wallet app rather than from a device that has none.

Why KoloQR?

  • Create QR codes for websites, menus, Wi-Fi, PDFs, and business cards
  • Customize colors, logos, and unique shapes
  • Download high-quality PNG and SVG files
  • Built for both print and digital
Generate QR Code
A plain black QR code beside the same code restyled as a circle with brand colors