Bitcoin Payment Links & QR Codes: What Is a Bitcoin Payment URI?

Sending Bitcoin normally means entering or scanning a Bitcoin address, choosing an amount, and reviewing the transaction before confirming it.

But there is an easier way.

You may have seen a Bitcoin QR code on a website, donation page, invoice, or payment screen. When you scan it with a compatible wallet, the wallet can automatically open a payment screen with information already filled in.

That is where a Bitcoin payment URI comes in.

A Bitcoin payment URI provides structured payment information that a wallet application can understand. It can contain a Bitcoin payment destination along with optional details such as an amount, label, or message.

The modern specification for this system is BIP 321, which describes the bitcoin: URI scheme and is designed to make Bitcoin payment instructions easier to share through links and QR codes. BIP 321 replaces the older BIP 21 specification.

In this guide, we’ll explain what Bitcoin payment URIs are, how they work, why wallets use them, and how they relate to QR codes and ordinary Bitcoin addresses.


What Is a Bitcoin Payment URI?

A Bitcoin payment URI is a standardized way of representing Bitcoin payment instructions in a format that software can understand.

The URI normally begins with:

bitcoin:

After that, it can contain a Bitcoin payment destination and additional information.

A simple example looks like this:

bitcoin:<bitcoin-address>

A more detailed payment URI can include information such as:

  • Bitcoin address
  • Requested amount
  • Recipient label
  • Payment message
  • Other supported payment instructions

The idea is simple:

Instead of manually entering several pieces of payment information, a wallet can read them from one structured payment request.

BIP 321 specifically describes Bitcoin URIs as a way for users to make payments by clicking links on webpages or scanning QR codes.


Why Do Bitcoin Payment URIs Exist?

Imagine that someone gives you a Bitcoin address:

bc1qexample...

You could copy the address into your wallet.

Then they separately tell you:

Send 0.002 BTC.

And perhaps they also tell you:

Payment for website hosting.

You now have to enter or remember multiple pieces of information.

A payment URI can package this information together.

For example, conceptually:

bitcoin:<address>?amount=0.002&label=Example&message=Website%20hosting

When a compatible wallet reads the URI, it can use the information to prepare the payment screen.

This reduces manual typing and can make payment requests easier to share.


Bitcoin Payment URI vs Bitcoin Address

These two terms are related, but they are not the same thing.

A Bitcoin address identifies a destination for a Bitcoin payment.

A Bitcoin payment URI can contain an address plus additional payment information.

Think of it like this:

Bitcoin address

Where should the Bitcoin go?

Payment URI

Where should the Bitcoin go, how much should be sent, and what information should the wallet display to the user?

The URI is therefore more like a payment instruction than simply an address.

This distinction becomes especially important as Bitcoin payment systems become more advanced.


What Does a Bitcoin URI Look Like?

A traditional Bitcoin payment URI can look something like:

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=20.3&label=Example

The address appears immediately after bitcoin:.

The question mark begins the optional query information.

For example:

amount=20.3

specifies the requested amount.

Another parameter might be:

label=Example

which can provide a human-readable label for the recipient.

BIP 21 originally defined parameters such as amount, label, and message. BIP 321 builds on this idea and updates the URI scheme for modern Bitcoin payment methods.


What Is the bitcoin: Part?

The first part of the URI is called the scheme.

In a Bitcoin payment URI, the scheme is:

bitcoin:

It tells compatible software:

This is a Bitcoin payment instruction.

You may already be familiar with other URI schemes.

For example:

  • https: for websites
  • mailto: for email
  • tel: for telephone links
  • bitcoin: for Bitcoin payment instructions

When a device or application recognizes the bitcoin: scheme, it can offer a compatible Bitcoin wallet to handle the payment request.


What Is a Bitcoin Payment QR Code?

A QR code is simply a convenient visual way to encode information.

A Bitcoin payment QR code can contain a Bitcoin payment URI.

Instead of typing something like:

bitcoin:<address>?amount=0.002

the user can point a phone camera or wallet app at the QR code.

The wallet reads the encoded information and converts it into a payment request.

The process can look like this:

Bitcoin payment information

Bitcoin URI

QR code

Wallet scans QR code

Payment details appear

User reviews and approves

The QR code itself is therefore not the Bitcoin payment.

It is simply a machine-readable representation of payment information.


Why Are QR Codes Useful for Bitcoin?

Bitcoin addresses can be long and difficult to type accurately.

A single character mistake can result in an invalid address or, depending on the situation, an unintended destination.

QR codes reduce the need for manual typing.

For example, a merchant could display a payment QR code at a checkout counter.

The customer scans it with their wallet.

The wallet can then populate the payment information automatically.

This is particularly useful for:

  • Shops
  • Restaurants
  • Donations
  • Freelancers
  • Online businesses
  • Invoices
  • Conferences
  • Bitcoin events
  • Personal payments

The underlying goal is convenience.


What Information Can a Bitcoin Payment URI Contain?

The exact information depends on the URI format and supported features.

Traditional Bitcoin URIs commonly include three important pieces of information.

1. Bitcoin Address

This identifies the payment destination.

Example:

bitcoin:<address>

The address is the core destination information.


2. Amount

A payment URI can request a specific amount.

For example:

bitcoin:<address>?amount=0.01

This tells a compatible wallet that the requested payment amount is 0.01 BTC.

The amount is expressed in decimal BTC in the traditional URI format.

The wallet should still show the amount to the user before the transaction is approved.


3. Label

A label can provide a human-readable description of the recipient.

For example:

label=Coffee%20Shop

The wallet may display this as:

Coffee Shop

The label is useful because a long Bitcoin address isn’t particularly easy for a human to recognize.


What Is the message Parameter?

A payment URI can also contain a message.

For example:

message=Donation%20for%20project

The message can give the user context about what the payment is for.

This can be useful for:

  • Donations
  • Invoices
  • Purchases
  • Membership payments
  • Personal transfers

Importantly, this information is not automatically written into the Bitcoin blockchain simply because it appears in the URI.

Bitcoin’s developer documentation notes that fields such as the label and message are generally handled by the wallet and are not added to the actual Bitcoin transaction.

This means a payment message should not be confused with permanent blockchain data.


How Does a Bitcoin Payment URI Work?

Let’s imagine you’re buying something from an online store.

The merchant provides a Bitcoin payment QR code.

You open your Bitcoin wallet and scan it.

Step 1: Scan the QR Code

Your wallet reads the information encoded inside the QR code.

Step 2: Decode the URI

The wallet recognizes the bitcoin: scheme and interprets the payment information.

Step 3: Fill in the Payment Screen

The wallet may automatically populate:

  • Destination
  • Amount
  • Recipient label
  • Payment message

Step 4: Review the Payment

You should verify the details before approving anything.

Step 5: Sign the Transaction

Your wallet uses your private keys to authorize the Bitcoin transaction.

Step 6: Broadcast the Transaction

The transaction is sent to the Bitcoin network.

Step 7: Confirmation

The transaction eventually receives confirmations as Bitcoin miners include it in blocks.

The URI therefore helps with the payment setup.

It does not replace Bitcoin’s normal transaction process.


Does a Bitcoin URI Send Bitcoin Automatically?

No — not by itself.

This is an important security feature.

BIP 321 states that Bitcoin clients must not act on payment URIs without the user’s authorization.

In other words, scanning a payment QR code should not silently drain your wallet.

A compatible wallet should present the payment information and require appropriate user authorization before sending funds.

The URI is an instruction.

The user still controls whether the payment is actually made.


Are Bitcoin Payment URIs Safe?

The URI format itself is not a guarantee of safety.

A payment URI can contain a legitimate payment request.

It can also be created by a scammer.

For example, someone could display a QR code that sends funds to an address controlled by them.

Therefore, never assume:

“It’s a QR code, so it must be safe.”

Instead, review the payment information before confirming.

Pay particular attention to:

  • Recipient
  • Amount
  • Network
  • Wallet warnings
  • Payment destination
  • Source of the payment request

A QR code makes payment information easier to enter.

It does not make the recipient trustworthy.


Bitcoin Payment URI vs QR Code

These terms are often used interchangeably, but they describe different things.

Bitcoin Payment URI

The structured payment information.

QR Code

The visual encoding used to communicate that information.

So you can think of it this way:

URI = the information

QR code = the container used to scan the information

A QR code could contain other information as well.

It isn’t inherently a Bitcoin technology.

The Bitcoin-specific part is the bitcoin: payment URI encoded inside it.


Why Payment URIs Matter

Bitcoin was designed to allow users to transfer value without relying on a traditional payment intermediary.

But usability still matters.

Typing long addresses manually is inconvenient.

Payment URIs help bridge the gap between Bitcoin’s technical infrastructure and everyday payment experiences.

They allow websites, applications, invoices, and physical signs to provide structured payment information that compatible wallets can understand.

This makes Bitcoin easier to use without changing how Bitcoin transactions themselves work.


What Changed From BIP 21 to BIP 321?

The original Bitcoin URI standard was defined by BIP 21.

BIP 21 introduced the familiar bitcoin: URI format and parameters such as amount, label, and message.

However, Bitcoin payment technology has evolved.

Modern wallets and payment systems can work with more than a simple on-chain Bitcoin address.

BIP 321 was created as a modern replacement.

It expands the payment URI concept to support modern Bitcoin payment instructions and provide a more forward-compatible structure. The specification is currently marked Complete in the Bitcoin BIPs repository.

That becomes particularly interesting when payment URIs are combined with technologies such as:

  • Lightning
  • Lightning BOLT 12 offers
  • Silent Payments
  • Modern SegWit addresses
  • Proof-of-payment mechanisms

rations users should understand before approving a payment.

How Bitcoin Payment URIs Work

In Part 1, we covered the basic idea behind Bitcoin payment URIs and why wallets use them.

Now let’s look more closely at what happens inside a payment URI.

A Bitcoin URI is not simply a Bitcoin address written in a different format. It can carry additional payment instructions that tell a wallet how a payment should be presented or which payment method should be used.

The modern specification, BIP 321, defines the bitcoin: URI scheme and provides a framework for traditional on-chain payments as well as newer payment instructions such as Lightning and Silent Payments.


The Basic Structure of a Bitcoin URI

A Bitcoin URI generally follows this structure:

bitcoin:ADDRESS?PARAMETER=VALUE

For example:

bitcoin:ADDRESS?amount=0.01

There are two main sections:

1. The Bitcoin URI scheme

bitcoin:

This identifies the URI as a Bitcoin payment instruction.

2. The payment information

This can contain a Bitcoin address and optional parameters.

BIP 321 defines the address as the path component and additional payment options as query parameters.

You can think of the structure like this:

bitcoin: → tells the wallet what type of URI this is

ADDRESS → identifies a traditional Bitcoin destination

? → begins additional parameters

amount=0.01 → requests a specific payment amount


What Are URI Parameters?

Parameters are pieces of additional information attached to the payment URI.

They can tell the wallet things such as:

  • How much Bitcoin is requested
  • Who the payment is for
  • What the payment is about
  • Which modern payment method should be used
  • Where proof of payment can be returned

A parameter generally follows this pattern:

name=value

Multiple parameters are separated with &.

For example:

bitcoin:ADDRESS?amount=0.01&label=Example

Here, the URI contains two parameters:

amount = 0.01 BTC

label = Example


The Amount Parameter

The amount parameter specifies how much Bitcoin the recipient is requesting.

For example:

bitcoin:ADDRESS?amount=0.005

This tells a compatible wallet that the requested amount is:

0.005 BTC

BIP 321 specifies that amounts in the URI are expressed in decimal BTC. Commas cannot be used as thousands separators.

For example:

amount=0.005

is valid.

But something like:

amount=5,000

is not a valid Bitcoin URI amount.

The wallet should display the requested amount before the user confirms the transaction.


What Is the Label Parameter?

The label parameter provides a human-readable name for the recipient.

For example:

bitcoin:ADDRESS?label=Coffee%20Shop

The wallet could display:

Coffee Shop

instead of forcing the user to identify the recipient only by looking at a long address.

This is particularly useful for:

  • Businesses
  • Charities
  • Websites
  • Freelancers
  • Personal payment pages

The label is primarily for the user’s convenience.

It should not be treated as cryptographic proof that the payment destination actually belongs to the named person or business.


What Is the Message Parameter?

The message parameter provides additional context about the payment.

For example:

bitcoin:ADDRESS?message=Website%20hosting

A wallet may display:

Website hosting

to help the user understand why the payment is being requested.

This can be useful for invoices, donations, purchases, and other payments.

However, the message is part of the payment request presented to the wallet. It should not be confused with data permanently stored in the Bitcoin transaction.

In other words:

Payment URI information ≠ blockchain transaction data

That distinction is important when discussing Bitcoin privacy.


Why Do Some Characters Look Strange?

You may notice that spaces sometimes appear as:

%20

For example:

Coffee Shop

can become:

Coffee%20Shop

This is called percent encoding.

URI specifications require certain characters to be encoded so that software can interpret the URI correctly.

BIP 321 requires characters outside the permitted query-character range to be UTF-8 encoded and percent-encoded according to the URI standard.

You don’t normally need to perform this encoding manually.

Wallet software and QR-code generators handle it automatically.


What Happens When You Click a Bitcoin Payment Link?

Suppose a website contains a link such as:

bitcoin:ADDRESS?amount=0.01

You click it.

Your operating system can recognize the bitcoin: scheme and open a compatible Bitcoin wallet.

The wallet reads the payment information.

It can then populate the payment screen with the requested destination and amount.

The user reviews the transaction.

If everything looks correct, the user authorizes the payment.

The wallet then creates and signs the Bitcoin transaction.

Finally, it broadcasts the transaction to the network.

The URI therefore acts as a bridge between a website or application and the wallet.


What Happens When You Scan a Bitcoin QR Code?

The process is similar, but instead of clicking a link, you use a camera or wallet scanner.

The process looks like this:

QR code

Encoded Bitcoin URI

Wallet decodes URI

Payment information appears

User reviews payment

User authorizes transaction

Wallet signs and broadcasts

The QR code does not itself contain Bitcoin.

It contains information that helps the wallet prepare a payment.


Why Wallet Authorization Matters

This is one of the most important security rules in BIP 321.

A Bitcoin wallet must not automatically make a payment simply because it receives a URI.

BIP 321 says Bitcoin clients must obtain user authorization before acting on payment URIs and generally should require the user to approve payments individually.

This protects users from a dangerous scenario.

Imagine scanning a QR code and having your wallet immediately send Bitcoin without showing you what is happening.

That would create an obvious security problem.

Instead, a wallet should give the user an opportunity to inspect the payment before authorizing it.


What Should You Check Before Confirming a Payment?

Even when the payment information comes from a URI, you should review it carefully.

Check:

Recipient

Make sure the payment is going to the intended destination.

Amount

Confirm that the requested amount is correct.

Payment method

A modern URI may contain instructions for different payment systems.

Make sure your wallet is using the method you expect.

Wallet warnings

Never ignore a security warning simply because the QR code came from a website or business.

Source

Consider where the payment request came from.

A QR code displayed on a trusted merchant’s official website is different from one sent to you by an unknown person.


BIP 21 vs BIP 321

The original Bitcoin URI specification was BIP 21.

It introduced the familiar bitcoin: URI format and supported parameters such as:

  • amount
  • label
  • message

BIP 321 modernizes that approach.

The current BIP 321 specification is marked Complete and explicitly replaces BIP 21.

The goal is not to throw away the old format.

Instead, BIP 321 documents existing usage more clearly and provides a framework for modern Bitcoin payment instructions.


What Did BIP 321 Improve?

Several important changes make BIP 321 better suited to modern Bitcoin payments.

Support for Modern Address Formats

BIP 321 allows the Bitcoin address component to use:

  • Base58 addresses
  • Bech32 SegWit addresses
  • Bech32m addresses

This reflects the evolution of Bitcoin address formats.


Support for an Empty Address

One of the interesting changes is that a URI does not always need to contain a traditional Bitcoin address.

The address field can be empty when the URI contains another payment instruction.

For example, a modern payment request could look conceptually like:

bitcoin:?sp=...

The sp parameter can carry a Silent Payment instruction.

This is important because modern Bitcoin payment systems do not always fit the old model of:

one URI → one ordinary Bitcoin address.

BIP 321 provides a more flexible framework.


BIP 321 and Lightning

Bitcoin payment URIs can also carry Lightning payment information.

BIP 321 defines the lightning parameter for Lightning BOLT 11 invoices.

For example, a URI can contain a Lightning invoice while also providing an on-chain Bitcoin address as a fallback.

Conceptually:

Try Lightning first → use on-chain Bitcoin if appropriate

This allows one payment instruction to support more than one payment method.

BIP 321 also defines the lno parameter for Lightning BOLT 12 offers.

This is a major difference from the original, simpler Bitcoin URI concept.


BIP 321 and Silent Payments

This is particularly relevant to our previous article.

BIP 321 defines the sp parameter for BIP 352 Silent Payment addresses.

That means a Bitcoin payment URI can carry Silent Payment information.

For example, conceptually:

bitcoin:?sp=sp1...

The wallet can recognize that the payment request uses Silent Payments rather than treating the value as an ordinary Bitcoin address.

This creates an interesting connection between two technologies:

Silent Payments

provide reusable private receiving information.

BIP 321

provides a standardized way to communicate payment instructions through links and QR codes.

Together, they can make modern Bitcoin payment requests easier to share.


What Is a Payment Fallback?

A payment fallback allows a URI to provide another payment method if the preferred method isn’t supported.

For example, a payment URI could contain:

Traditional on-chain address

plus

Lightning payment information

A compatible wallet can choose the payment method it supports.

This is useful because not every wallet supports every Bitcoin payment technology.

BIP 321 was designed with this type of forward compatibility in mind.


What Are Required Parameters?

BIP 321 introduces an important distinction between ordinary unknown parameters and parameters beginning with:

req-

The req- prefix means that the parameter is required.

If a wallet does not understand a required parameter, it must treat the URI as invalid rather than simply ignoring the unknown instruction.

For example:

bitcoin:ADDRESS?req-something=123

A wallet that does not understand req-something should not blindly continue.

This prevents future payment instructions from being silently ignored in ways that could cause incorrect payments.


What Happens to Unknown Parameters?

Not every new parameter needs to make an older wallet reject the URI.

BIP 321 allows unknown parameters without the req- prefix to be ignored when the wallet does not understand them.

This creates a useful balance.

Optional parameter

Don’t understand it?

Ignore it and continue when safe.

Required parameter

Don’t understand it?

Treat the payment request as invalid.

This approach helps Bitcoin payment URIs evolve without breaking compatibility unnecessarily.


What Is Proof of Payment?

BIP 321 also introduces an optional pop mechanism.

pop stands for Proof of Payment.

The idea is that a payment-initiating application can request information proving that a payment was completed.

For example, a wallet could return information to the application that initiated the payment.

For an on-chain Bitcoin payment, the payment information can include the completed transaction.

For a Lightning BOLT 11 payment, the payment information can include the payment preimage.

This can be useful when one application starts a payment and needs confirmation that the payment actually happened.


Why Is Proof of Payment Useful?

Imagine a mobile application selling something.

The application opens your Bitcoin wallet.

You make the payment.

The original application then needs to know whether the payment was completed.

A proof-of-payment mechanism can help connect those two steps.

The important point is that the wallet still controls the payment.

The proof mechanism exists to communicate payment completion rather than to authorize payment without the user’s approval.


Payment URI vs Payment Invoice

These concepts can overlap, but they aren’t identical.

A payment URI is a standardized way to communicate payment instructions.

A payment invoice can contain more specific information about a particular payment.

For example, a Lightning invoice contains information needed to make a Lightning payment.

BIP 321 can package Lightning payment information inside a bitcoin: URI.

This allows the URI to function as a broader payment container.


Why Bitcoin Payment URIs Are Becoming More Important

Bitcoin payments are no longer limited to one simple model.

Today, users can encounter:

  • Traditional on-chain addresses
  • SegWit addresses
  • Taproot addresses
  • Lightning invoices
  • Lightning BOLT 12 offers
  • Silent Payments
  • Other evolving payment instructions

A modern payment URI needs to handle this changing environment.

That’s why BIP 321 is important.

Instead of creating an entirely separate linking system for every new payment technology, Bitcoin can use a common URI framework.


The Bigger Picture

Bitcoin payment URIs may seem like a small technical detail.

In reality, they sit at the intersection of Bitcoin, wallets, websites, QR codes, and payment infrastructure.

A user might only see:

Scan QR → Pay

Behind that simple experience, several layers can be involved:

Website or application

Bitcoin payment URI

QR code or clickable link

Bitcoin wallet

Payment instruction

Transaction or payment protocol

Bitcoin network or Lightning Network

The URI provides a standardized bridge between these layers.


Bitcoin Payment URIs: Real-World Uses, Security, Privacy, and FAQs

Bitcoin payment URIs may look like a small technical feature, but they solve a very practical problem.

Bitcoin addresses are long strings of characters that are difficult to type and remember. Payment URIs provide a structured way to communicate payment information to compatible wallets, while QR codes make that information easy to scan.

Modern Bitcoin payment instructions can go beyond ordinary on-chain addresses.

They can also interact with technologies such as Lightning and Silent Payments, giving businesses and users more flexible ways to request Bitcoin payments.

However, convenience should never replace careful verification.

Before approving a Bitcoin payment, always understand what your wallet is asking you to sign.


Where Are Bitcoin Payment URIs Used?

Bitcoin payment URIs can be useful anywhere someone needs to request a payment.

1. Online Stores

An online store can display a Bitcoin payment button or QR code during checkout.

Instead of asking customers to manually copy an address, the website can provide structured payment information.

The customer scans or clicks the payment request.

Their wallet then opens the payment screen.

This can make checkout considerably easier.


2. Donations

Donation pages are another natural use case.

A charity or individual can display a Bitcoin QR code on its website.

Visitors can scan the code using a compatible wallet.

The payment URI can contain information that helps the wallet prepare the requested payment.

For privacy-focused organizations, modern payment methods such as Silent Payments can provide additional options for receiving Bitcoin without repeatedly publishing the same ordinary address.

You can learn more about this in our guide to What Are Bitcoin Silent Payments?


3. Invoices

Businesses and freelancers can include Bitcoin payment information in invoices.

For example, an invoice could contain:

Amount: 0.01 BTC

Description: Website development

Payment: Bitcoin QR code

The QR code can encode a Bitcoin payment URI containing the relevant payment information.

This reduces manual data entry for the customer.


4. Physical Stores

Payment URIs are also useful in physical environments.

A merchant could place a QR code beside a checkout counter.

The customer scans it.

Their wallet opens the payment details.

After reviewing the amount and destination, they approve the transaction.

This creates a simple bridge between a physical business and a digital payment system.


5. Personal Payments

You don’t need to run a business to use payment URIs.

Someone could generate a Bitcoin payment link when requesting money from a friend.

Instead of sending:

“Send Bitcoin to this address.”

they could provide a payment link containing the destination and requested amount.

The recipient’s wallet can then interpret the information.


Bitcoin Payment Links

A payment URI can also be used as a clickable link.

For example, a website could provide a button such as:

Pay with Bitcoin

Behind the button is a bitcoin: URI.

When a compatible device or wallet recognizes the URI, it can open the wallet and populate the payment request.

This is particularly useful on smartphones.

The user doesn’t need to copy a long address from one application to another.


Bitcoin QR Codes vs Payment Links

Both methods can communicate the same underlying payment information.

QR Code

Best suited for:

  • Physical stores
  • Printed invoices
  • Donation signs
  • In-person payments
  • Screens

Clickable Payment Link

Best suited for:

  • Websites
  • Mobile applications
  • Online checkout
  • Email
  • Digital invoices

The underlying payment instruction can be the same.

Only the way the user receives it changes.


What Happens If a Wallet Doesn’t Support a Feature?

This is an important consideration with modern Bitcoin payment URIs.

A URI can contain information that an older wallet doesn’t understand.

BIP 321 provides rules for dealing with unknown parameters.

Optional parameters can generally be ignored if the wallet doesn’t understand them.

However, parameters marked with the req- prefix are different.

A wallet that doesn’t understand a required parameter must treat the URI as invalid rather than simply ignoring the instruction. (bitcoin.org)

This prevents incompatible software from accidentally proceeding with an incomplete payment request.


Can One Payment URI Support Multiple Payment Methods?

Yes.

This is one of the useful features of the modern URI design.

A payment request can potentially contain information for different Bitcoin payment methods.

For example, a URI could include:

On-chain Bitcoin

and

Lightning

The wallet can then determine which supported payment method is appropriate.

This becomes especially useful because Bitcoin users don’t all use the same wallets or payment networks.

Some users may prefer on-chain transactions.

Others may use Lightning for faster, smaller payments.

A flexible payment URI can help bridge these different environments.


Silent Payments and QR Codes

Silent Payments introduce an interesting variation.

With an ordinary Bitcoin address, the QR code can directly encode the receiving address.

With Silent Payments, the QR code can instead encode a Silent Payment instruction.

The recipient can publish this reusable payment information.

The sender’s compatible wallet uses it to derive the actual payment destination.

This means:

Published payment information

does not necessarily equal

on-chain payment destination

That distinction is one of the main privacy benefits of Silent Payments.

However, both the sender and recipient need compatible software.

For a deeper explanation, see our article What Are Bitcoin Silent Payments?


Are Bitcoin QR Codes Private?

Not necessarily.

A QR code itself does not provide privacy.

If the QR code contains a normal Bitcoin address and you publish it publicly, anyone can see that address.

If that address receives multiple payments, blockchain observers may be able to associate those payments with the same destination.

The privacy depends on what the QR code contains.

For example:

Ordinary Bitcoin address

→ potentially reusable and publicly visible.

Fresh Bitcoin address

→ better practice for receiving payments.

Silent Payment information

→ designed to avoid repeatedly exposing the same on-chain destination.

So don’t confuse the QR-code format with the privacy properties of the payment system.


Can a Bitcoin Payment QR Code Be Changed?

Yes.

A QR code is simply an encoded representation of information.

If the underlying payment URI changes, the QR code can also change.

For example, a merchant could generate different payment requests for different customers.

One customer might receive:

0.001 BTC

while another receives:

0.004 BTC

Each could have its own QR code.

This is useful for invoices and point-of-sale systems.


Are Bitcoin Payment Links Safe?

They can be safe when used correctly, but they should never be trusted automatically.

The biggest danger is not the bitcoin: format itself.

The danger is where the payment information leads.

A scammer could create a legitimate-looking website containing a QR code that directs payments to the scammer’s address.

The QR code may work perfectly.

The wallet may decode it correctly.

The payment can still be fraudulent.

Therefore:

Technical validity does not equal trustworthiness.


Common Bitcoin QR Code Scams

Fake Donation QR Codes

A scammer may replace a legitimate donation QR code with one pointing to their own wallet.

Users believe they’re supporting the intended organization.

The Bitcoin instead goes somewhere else.


Fake Checkout Pages

A fraudulent website may imitate a legitimate store.

The checkout process looks normal.

The payment QR code works.

But the destination belongs to the scammer.


Tampered Printed QR Codes

A QR code displayed in a physical location can potentially be replaced or covered with another code.

This is why businesses should periodically inspect payment displays.


Fake Support Messages

Someone may claim to be customer support and send you a Bitcoin payment QR code.

They might tell you that you need to send Bitcoin to “verify” your wallet or unlock an account.

Legitimate wallet support should never need your Bitcoin sent to an unknown personal address for verification.


How to Verify a Bitcoin Payment Request

Before approving a payment, follow a few simple steps.

Step 1: Check the Source

Ask yourself where the payment request came from.

Is it the official website?

A trusted merchant?

Someone you know?

Or an unknown account?


Step 2: Check the Amount

Make sure the requested amount is what you expect.

A QR code can contain a payment amount, but that doesn’t mean the amount is correct.


Step 3: Review the Wallet Screen

Don’t approve a payment immediately after scanning.

Look at the details displayed by your wallet.


Step 4: Be Careful With Unexpected Requests

If someone suddenly asks you to send Bitcoin using a QR code, stop and investigate.

Urgency is a common feature of financial scams.


Step 5: Never Share Your Private Keys

A payment request should never require you to reveal your:

  • Seed phrase
  • Private key
  • Wallet password
  • Recovery phrase

Anyone asking for these is a major red flag.

For more information, see our guide to Bitcoin Private Keys vs Public Keys.


Can a QR Code Steal Bitcoin?

A QR code cannot magically extract Bitcoin from your wallet simply because you scanned it.

The important question is what happens after the scan.

A malicious QR code can direct your wallet toward an attacker-controlled payment destination or potentially contain malicious information designed to exploit a vulnerable application.

Your wallet should show you the payment details and require authorization before spending funds.

Therefore, treat QR codes like links.

Don’t trust them simply because they’re convenient.


Payment URI Privacy Considerations

Payment URIs can improve usability, but they can also expose information depending on how they’re used.

For example, a website could create a payment URI containing:

  • A specific amount
  • A recipient label
  • A payment description
  • A particular payment method

Some of this information may be visible to anyone who can access the URI.

The URI itself should therefore be treated as payment information, not as a secret credential.

Most importantly, a Bitcoin payment URI does not contain your private key.

A payment request tells your wallet where and how to pay.

It does not give the recipient control over your wallet.


Do Bitcoin Payment URIs Store Information on the Blockchain?

Not everything inside a payment URI becomes part of the Bitcoin transaction.

For example, a label such as:

Coffee Shop

is primarily wallet-facing information.

It doesn’t mean that the Bitcoin blockchain will permanently record:

“Coffee Shop payment.”

The blockchain records transaction data according to Bitcoin’s transaction rules.

The payment URI is a separate layer used to communicate payment instructions.

This distinction is important when thinking about privacy and permanent blockchain records.


What Is the Difference Between a Bitcoin URI and a Bitcoin Transaction?

A URI is payment information.

A transaction is the actual transfer of Bitcoin recorded on the blockchain.

The URI can help prepare the transaction.

The transaction is what actually moves Bitcoin.

Think of it as:

Payment URI

Wallet prepares payment

User authorizes

Bitcoin transaction created

Transaction broadcast

Blockchain records transaction

The URI itself does not transfer coins.


Why BIP 321 Matters for Bitcoin’s Future

Bitcoin’s payment ecosystem is becoming more diverse.

Users now have multiple ways to make payments.

On-chain Bitcoin remains important.

At the same time, Lightning can provide fast payments, while technologies such as Silent Payments address different privacy and receiving concerns.

A payment standard that can accommodate these systems makes the overall ecosystem easier to use.

BIP 321 provides a common URI framework for these evolving payment methods rather than requiring a completely separate linking system for every technology. (bitcoin.org)

This may become increasingly important as wallets add support for more payment technologies.


Frequently Asked Questions

What is a Bitcoin payment URI?

A Bitcoin payment URI is a structured payment instruction beginning with bitcoin: that compatible wallet software can interpret.

It can contain a Bitcoin destination and additional information such as an amount or label.

What is a Bitcoin QR code?

A Bitcoin QR code is a visual representation of Bitcoin payment information that can be scanned by a compatible wallet.

The QR code itself does not contain Bitcoin.

Does scanning a Bitcoin QR code send Bitcoin?

No.

Scanning normally prepares the payment information.

The user must still review and authorize the transaction.

What is BIP 321?

BIP 321 is the modern Bitcoin URI specification. It replaces BIP 21 and expands the URI framework to support modern payment instructions, including Lightning and Silent Payments. (github.com)

What is BIP 21?

BIP 21 was the original Bitcoin URI specification. It introduced the familiar bitcoin: format and parameters such as amount, label, and `message.

Can Bitcoin payment URIs include an amount?

Yes.

An amount parameter can specify the requested amount in BTC.

Can a Bitcoin URI include a message?

Yes.

Payment URIs can contain a message that a wallet may display to the user.

Is the message stored on the Bitcoin blockchain?

Not simply because it appears in the URI.

The URI and the Bitcoin transaction are separate layers.

Are Bitcoin QR codes safe?

They can be safe, but you should always verify the payment information before approving a transaction.

A malicious QR code can direct funds to an attacker-controlled destination.

Can I use Bitcoin payment URIs for donations?

Yes.

Donation websites can use payment links and QR codes to make Bitcoin contributions easier.

Can businesses use Bitcoin payment URIs?

Yes.

They can be used for checkout pages, invoices, physical stores, payment requests, and other merchant applications.

Can a Bitcoin URI contain Lightning information?

Yes.

BIP 321 provides parameters for Lightning payment instructions, including BOLT 11 invoices and BOLT 12 offers. (github.com)

Can Bitcoin URIs work with Silent Payments?

Yes.

BIP 321 defines the sp parameter for Silent Payment instructions based on BIP 352. (github.com)

Can a Bitcoin payment URI steal my private key?

A legitimate payment URI does not contain your private key.

However, malicious websites or applications can attempt to trick users into revealing sensitive information or approving harmful transactions.

Never share your recovery phrase or private key.

Should I trust a QR code from a stranger?

No.

Treat an unknown Bitcoin QR code like an unknown payment link.

Verify the source and payment details before approving anything.


Final Thoughts

Bitcoin payment URIs make Bitcoin payments easier to communicate.

Instead of forcing users to manually enter a long address and payment amount, a website, invoice, or physical sign can provide structured payment information.

QR codes make that information even easier to use.

The basic process is simple:

Payment information → URI → QR code or link → wallet → user approval → Bitcoin payment

But modern Bitcoin payment URIs are becoming more powerful.

With BIP 321, the bitcoin: URI framework can accommodate more than traditional on-chain addresses. It provides a standardized way to communicate payment instructions involving technologies such as Lightning and Silent Payments. (github.com)

At the same time, users should remember an important rule:

Convenience does not equal safety.

A QR code can make a payment easier to enter, but it cannot tell you whether the recipient is trustworthy.

Always verify the destination, amount, and payment method before approving a transaction.

For businesses and websites, payment URIs can make Bitcoin easier to use.

For users, they reduce manual entry and simplify payments.

And for the broader Bitcoin ecosystem, standards such as BIP 321 provide a foundation for connecting different payment technologies through a familiar interface.

Ultimately, the technology behind a Bitcoin payment may be complex, but the user experience can remain simple:

Scan. Review. Approve. Pay.

Leave a Comment