Example QR Codes
Reference QR codes for testing wallet and scanner integrations.
Reference QR codes for wallet developers (and the Branta scanner) to confirm a Branta integration handles each destination type correctly — on-chain, Lightning, unified BIP-21, ZK variants, and not-found. Scan them with your wallet to verify counterparty info renders before broadcast.
Pages are split by environment:
Production — points at
guardrail.branta.pro.Staging — points at
staging.guardrail.branta.pro.
Each page exposes the QR variants as tabs:
On-chain vs Lightning — the destination network.
ZK vs non-ZK — Zero-Knowledge destinations encrypt the payment destination so it never reaches Branta in plain text. On-chain ZK QRs carry
branta_id+branta_secretquery params alongside the address; Lightning ZK relies on the SDK encrypting the invoice itself before lookup. Non-ZK destinations are plain addresses or invoices.ZK Testnet (staging) — same as ZK on-chain, using a Bitcoin testnet (
tb1q…) address.ZK Unified — a BIP-21 URI with on-chain address,
lightning=invoice, andbranta_id/branta_secret. This is the QR POS like BTCPay show when both rails are enabled. Assembled from the ZK On-chain and ZK Lightning examples; pass the full string togetPaymentsByQrCode.Not found — an unregistered destination. Per the wallet integration pattern, wallets should render nothing on a miss.
Tampered — a ZK on-chain QR whose visible address doesn't match the address its
branta_id/branta_secretdecrypt to (e.g. an attacker swapped the address but left the ZK params pointing at a real payment). The SDK rejects this instead of returning it as verified — wallets should show a hard warning, not treat it like a miss.
Last updated