QR Codes for Crypto Payments: BIP-21 & EIP-681 Explained

QR codes have become the standard way to share crypto wallet addresses in person and online. But not all crypto QR codes are created equal. The difference between a basic QR code and a properly formatted one can mean the difference between a successful payment and lost funds.

The basics: what’s inside a crypto QR code?

A crypto QR code encodes a text string — usually a wallet address. But modern QR codes go beyond just the address. They use URI schemes that tell the scanning wallet app which blockchain to use, what address to send to, and optionally how much to send.

BIP-21: the Bitcoin URI scheme

BIP-21 (Bitcoin Improvement Proposal 21) defines the standard format for Bitcoin payment URIs:

bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh?amount=0.001

Breaking this down:

  • bitcoin: — tells the wallet app this is a Bitcoin payment
  • bc1qxy2... — the actual Bitcoin address
  • ?amount=0.001 — optional: requests 0.001 BTC

When a wallet app scans this QR code, it automatically fills in the address and amount. The user just needs to confirm.

BIP-21 also supports optional parameters like label (description of the recipient) and message (a note for the transaction).

EIP-681: the Ethereum URI scheme

EIP-681 does the same thing for Ethereum and ERC-20 tokens:

ethereum:0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7?value=1e18

Breaking this down:

  • ethereum: — identifies this as an Ethereum payment
  • 0x8920... — the Ethereum address
  • ?value=1e18 — amount in wei (1e18 wei = 1 ETH)

For ERC-20 tokens like USDT, the URI includes the token contract:

ethereum:0xdAC17F958D2ee523a2206206994597C13D831ec7/transfer?address=0x89205A...&uint256=1e6

This tells the wallet to call the transfer function on the USDT contract, sending 1 USDT (1e6 because USDT uses 6 decimals) to the specified address.

Why proper URI schemes matter

They prevent network errors

Without a URI scheme, a QR code is just a raw address string. The wallet app doesn’t know if it’s a Bitcoin address, an Ethereum address, or something else. With a URI scheme, the wallet knows exactly which network to use.

They reduce user error

When the address, amount, and network are all encoded in the QR code, there’s nothing for the user to type or select. Fewer manual steps = fewer mistakes.

They enable instant payments

Some point-of-sale systems use BIP-21/EIP-681 QR codes with amounts pre-filled. The customer scans, confirms, done — similar to tapping a credit card.

QR codes for other blockchains

Other networks have their own URI schemes:

  • Solana: solana: prefix (using Solana Pay specification)
  • Litecoin: litecoin: prefix (based on BIP-21)
  • Dogecoin: dogecoin: prefix
  • TON: ton://transfer/ prefix

How cryptr.ee handles QR codes

When you add a wallet address to your cryptr.ee page, the system automatically:

  1. Detects the blockchain from the address format
  2. Generates a QR code with the correct URI scheme
  3. Displays the network badge so visitors know which chain it is

For Bitcoin addresses, it generates BIP-21 URIs. For Ethereum and ERC-20 tokens, it uses EIP-681. This means when someone scans your QR code with their wallet app, the address and network are pre-filled automatically.

Premium users can also customize QR code colors to match their brand — while keeping the URI scheme functionality intact.

Try it yourself: create a free page at cryptr.ee and see how the QR codes work for your addresses.

Share your crypto addresses with one link

Create your free CrypTree page in under 2 minutes. No credit card, no password.

Create Your Page — Free