What is a BIP21 Payment URI?
BIP21 (Bitcoin Improvement Proposal 21) defines a standard format for Bitcoin payment links. These URIs allow you to encode a Bitcoin address along with optional payment details like amount, label, and message into a single string that can be shared or embedded in QR codes.
When someone scans a BIP21 QR code or clicks a payment link, their Bitcoin wallet automatically fills in all the payment details - no manual copying of addresses or amounts required. This reduces errors and makes Bitcoin payments more user-friendly.
BIP21 URI Format
A BIP21 payment URI follows this structure:
bitcoin:<address>?amount=<amount>&label=<label>&message=<message>- address - Required. Any valid Bitcoin address (legacy, SegWit, or Taproot)
- amount - Optional. Payment amount in BTC (decimal format)
- label - Optional. A label for the address (URL-encoded)
- message - Optional. A message for the payment (URL-encoded)
All parameters except the address are optional. If no parameters are needed, the URI is simply bitcoin:address.
Common Use Cases
- Payment requests - Send customers a link or QR code with the exact amount to pay
- Donations - Embed QR codes on websites or printed materials
- Invoicing - Include payment details in invoices that wallets can auto-fill
- Point of sale - Generate QR codes for in-person Bitcoin payments
- Recurring payments - Create saved payment links for regular transactions
Wallet Compatibility
BIP21 is universally supported by Bitcoin wallets. When you create a payment link with this tool, it will work with:
- Mobile wallets (BlueWallet, Phoenix, Muun, Breez, etc.)
- Desktop wallets (Sparrow, Electrum, Bitcoin Core, etc.)
- Hardware wallet apps (Ledger Live, Trezor Suite, etc.)
- Web wallets and exchanges that support Bitcoin withdrawals
The QR code generated by this tool uses standard black-on-white formatting with padding, ensuring maximum scannability across all devices and wallet apps.
Frequently Asked Questions
What is a Bitcoin payment link?
A Bitcoin payment link (BIP21 URI) is a standardized way to share Bitcoin payment details. It starts with "bitcoin:" followed by an address and optional parameters like amount and message. Wallets recognize this format and auto-fill payment forms.
How do I create a Bitcoin QR code?
Enter your Bitcoin address in the generator above. Optionally add an amount, label, and message. The tool automatically generates a BIP21-compliant URI and QR code that any Bitcoin wallet can scan.
What's the difference between amount in BTC and sats?
Satoshis (sats) are the smallest unit of Bitcoin - there are 100 million sats in 1 BTC. Our generator lets you enter amounts in either unit for convenience. The BIP21 URI always converts to BTC as required by the standard.
Do I need to include an amount?
No, the amount is optional. If you leave it blank, the recipient's wallet will prompt them to enter an amount. This is useful for donations or variable payments where the sender chooses how much to send.
What are label and message used for?
The label is displayed in the wallet as the recipient's name or reference. The message is a note attached to the payment request (not stored on the blockchain). Both help identify the purpose of the payment.
Are payment links secure?
BIP21 URIs contain only public information (address, amount, labels). They don't include private keys or give anyone access to your funds. However, always verify the address before sending - payment links can be modified by attackers.
Can I use this for Lightning payments?
This tool generates on-chain Bitcoin payment links (BIP21). For Lightning Network payments, you need BOLT11 invoices which include routing information. Some unified QR standards combine both, but this tool focuses on the standard BIP21 format.
Can I customize the QR code appearance?
The QR code uses standard black-on-white formatting for maximum compatibility. You can download it as a PNG and use image editing software to add branding, but avoid modifying the QR pattern itself to ensure scannability.
Build with Bitcoin
Spark enables instant Bitcoin payments for developers. Build payment flows, stablecoins, and programmable money on Bitcoin L2.