How Crypto QR Codes Work
A cryptocurrency QR code encodes a wallet address (and optionally a requested amount and a label) in a standardised URI format. When a wallet app scans the code, it automatically populates the recipient address, amount (if included), and any memo fields. The sender just confirms the transaction details and approves. No typing, no copy-paste, no human error.
This matters more in crypto than in almost any other context, because a crypto transaction sent to the wrong address is irreversible. There is no bank to call, no chargeback, no dispute process. Getting the address right every single time is not optional. It is critical. QR codes make that reliability effortless.
Crypto QR Code URI Formats
Each blockchain network has its own URI scheme that wallet apps recognize. Using the correct format ensures compatibility with the widest range of wallet applications.
Bitcoin (BTC)
The Bitcoin URI format is defined by BIP-21:
bitcoin:[ADDRESS]
With optional parameters:
bitcoin:[ADDRESS]?amount=[BTC AMOUNT]&label=[LABEL]&message=[MESSAGE]
Example: bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7Divf7Q?amount=0.005&label=Coffee%20Shop&message=Order%20%23142
The amount is expressed in BTC, not in fiat currency. Both native SegWit (bc1...) and legacy (1...) address formats are supported.
Ethereum (ETH)
Ethereum uses EIP-681 for its payment URI format:
ethereum:[ADDRESS]
With value: ethereum:[ADDRESS]?value=[WEI AMOUNT]
Note that the amount in Ethereum URIs is expressed in wei (the smallest Ethereum denomination), not in ETH. 1 ETH = 1,000,000,000,000,000,000 wei (10^18). Most wallet apps handle this conversion automatically, but it is something to be aware of if building automated invoicing. For simple receive addresses without a pre-set amount, a plain ethereum:[ADDRESS] QR code is sufficient and compatible with virtually all ETH wallets.
Solana (SOL)
The Solana Pay standard defines:
solana:[ADDRESS]
With optional amount: solana:[ADDRESS]?amount=[SOL AMOUNT]&label=[LABEL]&message=[MESSAGE]
Solana Pay is increasingly well-supported across Solana wallets including Phantom and Solflare. The amount is expressed in SOL (not lamports) in the URI string, which is more human-friendly than Ethereum's wei denomination.
Litecoin (LTC)
Litecoin follows the same BIP-21 structure as Bitcoin, but with its own URI scheme:
litecoin:[ADDRESS]
With optional parameters: litecoin:[ADDRESS]?amount=[LTC AMOUNT]&label=[LABEL]
Litecoin addresses can begin with L, M, or ltc1 depending on the address type. All are valid in the URI format.
Other Networks
Most networks follow similar URI patterns. Bitcoin Cash uses bitcoincash:[ADDRESS]. Dogecoin uses dogecoin:[ADDRESS]. For networks without a widely-adopted URI standard (some newer L2s and altcoins), a plain text QR code encoding just the wallet address (without a URI prefix) is typically the safest approach, as wallet apps will often recognize and handle raw addresses.
How Wallet Apps Process Crypto QR Codes
When a user opens their wallet app and taps the "Send" or "Scan" button, the camera activates in QR scanning mode. On reading a crypto QR code, the app parses the URI and:
- Validates the address format and checksum for that network
- Pre-fills the recipient address field
- Pre-fills the amount if included in the URI
- Displays the label and message as a memo if included
- Prompts the user to review and confirm before sending
Most major wallet apps, including MetaMask, Trust Wallet, Coinbase Wallet, Phantom, Exodus, and BlueWallet, fully support standard crypto URI formats. Hardware wallet interfaces like Ledger Live also support QR-based address input.
Use Cases for Crypto QR Codes
In-Person Payments at Shops and Markets
Print your Bitcoin or Ethereum receive address as a QR code and display it at your point of sale. A small laminated card or a framed print near the register works well. For higher-volume retail use, consider displaying the QR on a tablet screen so you can cycle between different payment amounts or update the address periodically for security reasons.
Always confirm the transaction in your wallet before releasing goods. Crypto transactions need at least one network confirmation before being considered reliable. Bitcoin confirmations typically take 10 minutes. For low-value transactions, many merchants accept zero-confirmation transactions at their own risk.
Tipping
Content creators, musicians, street performers, and service workers in crypto-friendly environments can display a QR code for tips. A small card or sticker with a Bitcoin or Ethereum address QR code and the text "Tip with crypto" requires no setup beyond a wallet address. Unlike payment processing systems, there are no platform fees: the full amount reaches the recipient minus only the network transaction fee.
Invoice Payments
Including a crypto QR code on a PDF invoice or a printed invoice gives clients a fast, low-friction payment option. Including the exact BTC or ETH amount in the URI eliminates the need for the client to calculate exchange rates or manually enter figures. Use a label parameter to reference the invoice number for easy reconciliation.
Donation Boxes
Charities, open-source projects, and community organizations increasingly accept crypto donations. A printed QR code displayed prominently (at events, in newsletters, on websites) makes donating as easy as scanning and confirming. Because crypto transactions are pseudonymous, donors who value privacy may prefer this to traditional card payments.
Security Considerations
Crypto QR codes require more careful security thinking than other QR code types because the financial stakes are direct and errors are permanent.
Always Verify the Address After Scanning
Before confirming any transaction, compare the first 6 and last 6 characters of the scanned address with your known receive address. Sophisticated attackers have deployed address replacement malware that modifies clipboard contents and in some cases intercepts QR camera feeds. A quick visual check prevents this attack vector.
Do Not Print Private Keys as QR Codes
A QR code of a wallet's private key or seed phrase is catastrophically dangerous to print or display. Anyone who scans it gains full control of the wallet. Only ever create QR codes from your public receive address, the address you share with others to receive funds. Your private key never leaves your secure wallet environment.
Update Printed Materials if You Change Addresses
For privacy and security, some crypto best practices recommend generating a fresh receive address for each transaction (Bitcoin in particular supports this natively). If you use a static address on printed materials, understand that all transactions to that address are publicly visible on the blockchain. This is generally acceptable for business use but worth being aware of.
Use Hardware-Wallet Generated Addresses
For any meaningful amount of crypto, generate your receive address from a hardware wallet (Ledger, Trezor, etc.) rather than a software wallet or exchange. Hardware wallets verify addresses on their secure display, reducing the risk of address substitution attacks.
Printing Your Crypto QR Code Safely
Before printing any crypto QR code at scale:
- Generate the QR code using Vexifa QR Code with the correct URI format for your network.
- Scan it with two different wallet apps to confirm both read the address correctly.
- Verify the decoded address matches your wallet's receive address character-for-character.
- Only then print the final version for deployment.
Download as SVG for large-format printing. Use high-contrast black foreground on a white background. Avoid decorative colors for crypto QR codes where a misread is financially consequential. Laminate printed versions to prevent physical tampering.
Frequently Asked Questions
Can I include a specific amount in the QR code?
Yes. The URI format for Bitcoin, Litecoin, and Solana supports an amount parameter expressed in the native coin denomination. For Ethereum, the amount is in wei. This is useful for invoices and fixed-price purchases but less practical for general receive addresses since crypto prices fluctuate.
What if the person paying me uses a different wallet app?
All major wallet apps support standard URI formats (BIP-21 for Bitcoin-family coins, EIP-681 for Ethereum). If someone uses an unusual wallet that does not recognize the URI prefix, they can still manually enter the address shown in the QR data. The QR code always helps, though it may just not auto-fill the fields in non-standard wallets.
Is it safe to display my wallet address publicly?
Your receive address (public address) is designed to be shared: it is the crypto equivalent of a bank account number. Sharing it publicly allows anyone to send you funds. No one can withdraw funds with just the receive address; that requires the private key, which must remain secret. The main privacy consideration is that all transactions to a public address are visible on the blockchain.
Can I accept multiple cryptocurrencies with one QR code?
Not with a single standard crypto URI QR code. Each QR code is specific to one network and address. For accepting multiple currencies, create separate QR codes for each network and display them side by side, or link to a payment page that supports multiple currencies.
What is the minimum size to print a crypto QR code?
Crypto addresses are long, which means the QR code carries more data and has a denser pattern. Print at a minimum of 3 cm × 3 cm (1.2 inches) for reliable scanning. For counter displays scanned from 30-50 cm away, 5-8 cm is recommended.