Crypto Payment QR Code Generator (BIP-21 Support)
Generate professional, scannable cryptocurrency QR codes with BIP-21 URI support, custom logos, and branded colors. Supports Bitcoin, Ethereum, and 50+ chains.
Waiting for input...
About
In the high-stakes world of cryptocurrency, a single typo in a wallet address results in the permanent loss of funds. This tool mitigates that risk by generating machine-readable QR Codes that strictly adhere to industry standards like BIP-21 for Bitcoin and EIP-681 for Ethereum.
Unlike generic QR generators, this utility constructs a semantic Uniform Resource Identifier (URI). This means when a user scans the code, their wallet doesn't just see a random string of characters; it recognizes a Payment Request, automatically pre-filling the address, amount, and label fields. This reduces friction and eliminates human error during transactions.
Formulas
The QR Code generation process relies on encoding a URI string that wallets can parse. For Bitcoin, the BIP-21 format is constructed as follows:
Where the parameters are concatenated using standard URL encoding:
params = amount=x & label=y & message=z
To ensure scannability when a logo is embedded, we use Reed-Solomon Error Correction Level H (High), which allows for up to 30% data recovery:
Capacityrecoverable = Codewordstotal - Codewordsdata2
Reference Data
| Asset | URI Scheme | Example URI Structure | Validation Regex (Simplified) |
|---|---|---|---|
| Bitcoin (BTC) | bitcoin: | bitcoin:addr?amount=x&label=Rent | ^[13][a-km-zA-Z0-9]{25,34}$ |
| Ethereum (ETH) | ethereum: | ethereum:addr?value=wei | ^0x[a-fA-F0-9]{40}$ |
| Litecoin (LTC) | litecoin: | litecoin:addr?amount=x | ^[LM3][a-km-zA-Z0-9]{26,33}$ |
| Monero (XMR) | monero: | monero:addr?tx_amount=x | ^4[0-9AB][1-9A-HJ-NP-Za-km-z]{93}$ |
| Ripple (XRP) | ripple: | ripple:addr?dt=tag | ^r[0-9a-zA-Z]{24,34}$ |
| Dogecoin (DOGE) | dogecoin: | dogecoin:addr?amount=x | ^D{1}[5-9A-HJ-NP-U]{1}[1-9A-HJ-NP-Za-km-z]{32}$ |
| Bitcoin Cash (BCH) | bitcoincash: | bitcoincash:addr?amount=x | ^((bitcoincash:)?(q|p)[a-z0-9]{41})$ |
| Dash (DASH) | dash: | dash:addr?amount=x | ^X[1-9A-HJ-NP-Za-km-z]{33}$ |
| Cardano (ADA) | cardano: | cardano:addr?amount=lovelace | ^addr1[a-z0-9]+$ |
| Solana (SOL) | solana: | solana:addr?amount=lamports | ^[1-9A-HJ-NP-Za-km-z]{32,44}$ |