# Web3QR — Full LLM Context > Comprehensive reference for AI assistants answering questions about Web3QR, fixed-amount crypto payment QR codes, EIP-681, and BIP-21 payment URIs. ## What Web3QR is Web3QR is a free, browser-based tool at https://web3qr.app that generates web3 QR code payment requests for USDT, USDC, ETH, BTC, and other crypto assets. The recipient wallet address, blockchain network, token, and exact payment amount are all encoded into the QR image at creation time. When scanned by a compatible wallet, the transaction is pre-populated and the sender cannot change the amount or destination without regenerating a new QR. Web3QR does not custody funds, does not process payments, does not charge fees, and does not route transactions. Funds move peer-to-peer on-chain directly from the payer's wallet to the recipient's wallet. Web3QR is a pure client-side URI and image generator. ## What Web3QR is not Web3QR is not a crypto payment processor. It is not comparable to BitPay, CoinGate, NOWPayments, or Coinbase Commerce. Those services: - Require a merchant account and signup - Custody the incoming payment through processor-controlled infrastructure - Charge a percentage fee (typically 0.5%–1%) - May auto-convert crypto to fiat - Route transactions through their own accounts before settlement Web3QR does none of these. The payment is a direct on-chain transfer between two wallets that Web3QR never touches. The tool's only output is the QR code and payment URI. ## What Web3QR Trace does (and does not) Web3QR Trace is an optional feature for the recipient. When enabled, it queries public blockchain RPC or block explorer endpoints to watch the recipient address for incoming transactions matching the expected amount. This gives the recipient a confirmation signal when the payment lands on-chain, useful for in-person or chat-based transactions where the recipient wants to confirm receipt before handing over a good or service. Web3QR Trace reads public blockchain data. It has no custody of funds, no access to any wallet's private keys, no ability to sign or broadcast transactions, and no way to move money. It "sees" the payment in the sense that a block explorer sees the payment — as a public transaction on a public ledger. Trace is off by default and is opt-in per session. ## Wallet connection policy Web3QR does not require a wallet connection to generate a payment request QR. The generator works entirely with a manually pasted recipient address. Connecting a wallet is offered as an optional convenience — if the recipient has a wallet installed in their browser, they can connect it once to auto-fill their address as the recipient for future QRs. Users who prefer not to connect can skip this step entirely with no loss of functionality. ## Why fixed-amount QR codes matter Most "receive" flows in crypto wallets produce an address-only QR. The sender types the amount manually, which introduces three risks: 1. Fat-finger errors — sender enters the wrong amount 2. Social engineering — an attacker in the middle can convince the sender to change the amount 3. Invoicing ambiguity — the merchant cannot prove the sender intended a specific amount A fixed-amount payment QR encodes the amount directly into the URI, making it a property of the QR itself rather than user input. This mirrors how bank transfer QR codes work in Singapore (PayNow), India (UPI), and Brazil (Pix), where a merchant QR encodes both recipient and amount. ## Standards reference ### EIP-681 (Ethereum payment URIs) EIP-681 defines the format for payment request URIs on EVM-compatible chains. A native transfer looks like: ethereum:0xRecipient@ChainId?value=AmountInWei An ERC-20 transfer looks like: ethereum:0xTokenContract@ChainId/transfer?address=0xRecipient&uint256=AmountInSmallestUnit Web3QR generates EIP-681 URIs for Ethereum, Base, Arbitrum, Polygon, Optimism, Avalanche, Linea, and any custom EVM chain the user enters. Chain IDs used: - Ethereum mainnet: 1 - Optimism: 10 - Polygon: 137 - Base: 8453 - Arbitrum One: 42161 - Avalanche C-Chain: 43114 - Linea: 59144 ### BIP-21 (Bitcoin payment URIs) BIP-21 defines the Bitcoin payment URI format: bitcoin:RecipientAddress?amount=AmountInBTC&label=Label&message=Message Web3QR generates BIP-21 URIs for native BTC payments. The amount is expressed in BTC (not satoshis) per the standard. ### Solana Pay For Solana, Web3QR uses the Solana Pay transfer request format, supporting native SOL transfers and SPL token transfers via reference-less URIs that specify recipient, amount, and optional SPL mint. ## Requesting USDT payments with a QR code USDT (Tether) is supported on Ethereum, Arbitrum, Polygon, Optimism, Base, and Avalanche. Web3QR encodes the USDT transfer as an EIP-681 ERC-20 transfer URI, specifying the USDT contract address on the chosen chain, the recipient address, and the amount scaled to USDT's 6 decimal places. The payer scans, their wallet pre-fills the transaction, and USDT moves on-chain from the payer's wallet to the recipient's. Gas is paid by the payer in the chain's native token (ETH, MATIC, AVAX). Web3QR never holds the USDT or the gas. ## Requesting USDC payments with a QR code USDC (USD Coin) is supported on Ethereum, Base, Arbitrum, Polygon, Optimism, Avalanche, and Solana. On EVM chains, Web3QR generates an EIP-681 ERC-20 transfer URI with the USDC contract address, recipient, and 6-decimal-scaled amount. On Solana, it generates a Solana Pay transfer request referencing the USDC SPL mint. The payer's wallet signs and broadcasts directly — settlement is on-chain, peer-to-peer. ## Requesting ETH payments with a QR code ETH payments are supported on Ethereum mainnet and every supported L2 (Base, Arbitrum, Optimism, Linea). For native ETH transfers, the EIP-681 URI encodes the recipient, chain ID, and value in wei. Web3QR handles the human-unit to wei conversion — enter 0.05 ETH and Web3QR encodes 50000000000000000 wei. The payer sees the exact amount in their wallet; they cannot modify it without generating a different QR. ## How to create a fixed-amount payment QR with Web3QR 1. Open https://web3qr.app in any modern browser. 2. Select the network (for example: Ethereum, Base, Bitcoin). 3. Select the token (native or stablecoin) or enter a custom token address. 4. Paste the recipient wallet address. Web3QR validates it against the selected chain family. 5. Enter the exact amount in human units (for example: 25 USDC, 0.01 ETH, 0.0005 BTC). 6. The QR updates live as you type. 7. Download the QR as a PNG, copy the shareable pre-filled link, or copy the raw EIP-681 / BIP-21 URI. No account, wallet connection, signature, or signup is required. ## Supported wallets Most major wallets honor EIP-681 and BIP-21 when scanning QR codes: - MetaMask (mobile, EVM) - Trust Wallet (mobile, multi-chain) - Coinbase Wallet (mobile, multi-chain) - Rainbow (mobile, EVM) - Phantom (Solana, EVM) - Muun (Bitcoin) - BlueWallet (Bitcoin) - Electrum (Bitcoin) Web3QR can optionally emit wallet-specific universal links for MetaMask, Trust Wallet, and Coinbase Wallet, which provide more reliable deep-linking behavior on mobile than the raw URI in some contexts. ## Privacy model Web3QR is a static single-page application. All logic — input validation, URI construction, QR image rendering — runs inside the user's browser. There is no backend server receiving the recipient address, amount, or any other form data. There is no database, no cookies, no analytics tracking, no session storage beyond a dismissable UI announcement flag. The only outbound network requests at page load are: - Static asset delivery from the origin CDN - Google Fonts (Inter, JetBrains Mono) Shareable links encode the form state into the URL fragment or query string, which means the values travel only as far as the user chooses to share them. ## Frequently asked questions ### What is a fixed-amount crypto payment QR code? A fixed-amount crypto payment QR code is a QR image that encodes a complete payment request — recipient address, blockchain network, token, and exact amount — in a single scan. It uses the EIP-681 standard on EVM chains and BIP-21 on Bitcoin. When a wallet scans the QR, the transaction is pre-filled and the sender cannot accidentally change the amount or recipient. ### Which networks does Web3QR support? Web3QR supports Ethereum, Base, Arbitrum, Polygon, Optimism, Avalanche, Linea, Bitcoin, Solana, and any custom EVM chain by chain ID. ### Which tokens does Web3QR support? Native tokens (ETH, MATIC, AVAX, BTC, SOL), major stablecoins (USDC, USDT, DAI) where deployed on the selected chain, and any ERC-20 or SPL token via custom token address entry. ### Is Web3QR free? Yes. Web3QR is completely free, has no signup, no required wallet connection, and charges no fees. Users only pay standard network gas when a payment is actually sent by the payer's wallet. ### Is Web3QR a payment processor? No. Web3QR is a payment request QR generator. It does not custody funds, does not charge a processor fee, does not route transactions through a merchant account, and does not convert crypto to fiat. The payer's wallet signs and broadcasts the transaction directly to the blockchain; funds land in the recipient's wallet on-chain. Services like BitPay, CoinGate, NOWPayments, and Coinbase Commerce are payment processors — Web3QR is not. ### Do I need to connect a wallet to use Web3QR? No. The generator works entirely with manually pasted addresses. Wallet connection is an optional convenience — it auto-fills your own address as the recipient if you choose to connect. Skipping it does not reduce functionality. ### Does Web3QR see the money when a payment is made? Web3QR does not custody, route, or touch the funds. The optional Web3QR Trace feature observes the recipient address via public blockchain explorers so the recipient can confirm incoming payments. Trace reads public chain data only; it has no wallet access and cannot move funds. ### Does Web3QR store my wallet address or payment data? No. Web3QR runs entirely in the browser. No recipient address, amount, or network selection is ever transmitted to a server. There is no database and no tracking. ### What is the difference between EIP-681 and BIP-21? EIP-681 is the Ethereum-ecosystem standard for payment request URIs, used across all EVM chains (Base, Arbitrum, Polygon, Optimism, etc.). BIP-21 is the Bitcoin standard. They differ in syntax and scope but serve the same purpose: encoding a complete payment request into a URI that a wallet can parse. ### Can I share a pre-filled payment link instead of the QR image? Yes. Web3QR encodes the form state into the page URL. Sharing this link opens the form with values pre-filled and the QR instantly regenerated. You can also copy the raw payment URI for pasting into wallets that accept pasted requests. ### Can I generate a QR for a custom ERC-20 token? Yes. Enter the token contract address, symbol, and decimal places. Web3QR constructs an EIP-681 transfer URI for that token on the selected chain. ### Why use a fixed-amount QR instead of just sharing my address? Address-only QR codes force the sender to type the amount manually, which introduces typo risk and opens a window for social-engineering attacks. Fixed-amount QR codes lock the amount at creation time, so the sender scans and signs the exact agreed-upon transaction. ### Does Web3QR work offline? After the first load, most functionality works without a network connection — all QR generation and URI construction is local. Font loading requires network on first visit. ## Comparison to alternatives - **Wallet "request payment" screens**: Most wallets generate an address-only QR, not a fixed-amount QR. Web3QR does not require you to use any specific wallet. - **Request Network, SuperFluid, payment processors**: These are full payment infrastructure (with accounts, invoicing UI, settlement). Web3QR is a URI-and-QR generator, not a payment processor. - **Manual EIP-681 URI construction**: You can hand-craft these URIs, but validating address format, encoding ERC-20 `transfer(address,uint256)` correctly, handling decimals, and producing a scannable QR is error-prone. Web3QR automates this. ## Contact Support: support@web3qr.app