A crypto QR code holds a wallet address in the form wallet apps read, so the sender's app fills in the destination, and for Bitcoin and Litecoin the amount too, without anyone copying a long string by hand and checking it character by character. A mistyped address sends the money somewhere it cannot be recovered from, which is why wallets have scanned codes since the beginning.
This tool builds the code in your browser for a Bitcoin, Ethereum or Litecoin address. Paste the address, add an amount and label if you want them, and download a PNG or SVG. Nothing is sent to a server, and the page keeps no record of what you typed.
What the code contains
For Bitcoin and Litecoin the code follows BIP-21, the payment URI convention wallets share: bitcoin: or litecoin: followed by the address, then an optional ?amount= in whole coins and an optional &label= for a name the wallet can show. A Bitcoin code with an amount and label looks like bitcoin:address?amount=0.01&label=Shop. The label is percent-encoded, so spaces and symbols in it are safe.
For Ethereum the code is ethereum: followed by the address and nothing else. Ethereum's own URI standard, EIP-681, expresses value in wei, not in ETH, and wallets differ in how they handle it, while a bare address is accepted by all of them. So for Ethereum the amount and label fields are hidden and the sender types the amount in their wallet.
The panel under the preview shows the exact string, so you can compare the address in it against the one in your wallet before you download.
What the address check does and does not do
Spaces inside a pasted address are removed. For Bitcoin and Litecoin the tool then checks that the address is 20 to 100 letters and digits, which covers legacy addresses starting with 1 or 3, bech32 addresses starting with bc1, and Litecoin's L, M and ltc1 forms. For Ethereum it checks for 0x followed by exactly 40 hexadecimal characters. Anything else shows a message and the download button stays disabled.
That is a shape check, not a checksum. An address with one character wrong still has the right shape and will pass, so the tool cannot tell a valid address from a near miss. Copy the address from your wallet, never retype it, and read the string in the preview panel against the wallet once more before printing.
An amount, where offered, must be a positive number with up to eight decimal places, which is the smallest unit Bitcoin and Litecoin divide into. Zero and negative amounts are rejected.
What the sender's phone does
A wallet app's own scanner reads the bitcoin:, litecoin: or ethereum: string, fills in the address, and for a BIP-21 code the amount and label as well, leaving the sender to check and confirm. A phone's plain camera app behaves differently: it hands the string to an installed app that has registered that scheme, and if there is none, it shows the string as text. Telling the sender to scan from inside their wallet avoids the guesswork.
The amount is a pre-fill in the sender's wallet, not a constraint. The sender can change it before confirming, and the network fee is added on top by the sender's wallet, so the figure that arrives can differ from the figure in the code.
Printing and placing it
A crypto code belongs where a payment or donation is made in person or from print: a donation card, a tip sign at a counter, a conference badge, an invoice footer or the back of a product insert. Print the coin's name beside the code, and the address in full underneath it in a monospace font, so the sender can check the first and last few characters against what their wallet shows after scanning.
Download the SVG for anything that will be printed. It scales to any size without going blurry, where a PNG has a fixed pixel size. A Bitcoin address with an amount and label makes a fairly dense code, so print it larger than you would a short web link and keep the quiet zone at two modules or more.
Test the printed piece with a real wallet app before distributing it, and confirm the address the wallet shows matches yours. A code that scans is not proof that it scans to the right place.
Frequently asked questions
Is my wallet address sent anywhere?
No. The code is generated inside your browser and the address is only placed into the image file you download. There is no upload, no account and no history kept on this page. A public receiving address is not a secret, but the same holds for the amount and label.
Which coins are supported?
Bitcoin, Ethereum and Litecoin. Bitcoin and Litecoin codes follow BIP-21 and can carry an amount and a label. Ethereum codes carry the address alone.
Why can I not set an amount for Ethereum?
Ethereum's URI standard, EIP-681, states the value in wei, the smallest unit, and wallets are not consistent in how they read it. A bare ethereum:address is understood by every wallet, so the tool encodes only that and the sender enters the amount in their wallet.
Does the tool verify that my address is correct?
It checks the shape: length and allowed characters for Bitcoin and Litecoin, and 0x plus 40 hexadecimal characters for Ethereum. It does not compute a checksum, so a single wrong character can pass. Copy the address from your wallet and compare the readout under the preview with it before printing.
Is the amount in BTC or in satoshis?
In whole coins, as BIP-21 requires: 0.01 means 0.01 BTC or 0.01 LTC. Up to eight decimal places are accepted, which is the precision of one satoshi or one litoshi.
Will the sender pay exactly the amount in the code?
The amount is filled into the sender's wallet, where they can still change it, and the network fee is added on top by their wallet. Treat it as a suggested amount and confirm what arrives in your own wallet.
Can I add a logo to the code?
Yes. Under Branding, add a PNG, JPEG, SVG or WebP and it is centred over the code. Error correction rises to H automatically so the covered modules can be recovered. A crypto code is already dense, so print it larger and test the scan before distributing it.
Related Utilities You Might Need
URL Slug Generator
Generate clean, search engine optimized slugs from title strings or written copy.
QR Code Generator
Create a custom QR code with your own foreground and background colours and a centred logo, then download a high-resolution PNG up to 2048px.
UTM Campaign URL Builder
Build tagged campaign URLs and catch what splits your reporting: duplicate UTM parameters, capital letters and stray spaces. Runs in your browser.
