QR Format Versions

W2QR reads all historical QR formats. New backups use the latest format.

Version history

V1Legacy — text2qr.com

AES-256-CBC with CryptoJS / OpenSSL EVP_BytesToKey (MD5, 1 iteration, 8-byte salt). URL format: text2qr.com/?ds=<base64>. Deterministic fallback for non-BIP-39 content. Still fully supported for reading.

V2BCurrent default

Honey encryption with Argon2id. XOR of BIP-39 entropy with Argon2id-derived key — every password produces a valid mnemonic. This is the current default format.

V2B LightPlastic Card — Pre-Activation

Identical encryption to V2B (Argon2id + XOR honey encryption), but created for pre-printed plastic cards. Contains no server-side registration and no recovery materials. Print both wallet QR and password QR on separate plastic cards for durable access.

CardW2QR Card — Pre-Printed Wallet

Uses the V2B (V4 envelope) format. The QR contains random bytes generated during card creation. When activated with a password, honey encryption derives a valid BIP-39 mnemonic. Use with the Strong Password Generator for quantum-resistant protection.

How detection works

When you scan or upload a QR code, W2QR automatically detects the format:

  • - URL with ?ds= and no v= parameter → V1 (text2qr.com legacy)
  • - URL-encoded payload with version tag → V2B
  • - Binary data with version byte 5 → treated as V2B (legacy format, password-only)
  • - URL with hash fragment #ds= and raw binary payload → V4 (Card, honey encryption)

You do not need to know or remember which format your QR uses — W2QR handles it automatically.

Data encoding

V1 and V2B use URL-encoded Base64 within a URL string.

Migration

Old QR codes never expire. You can continue using legacy format QR codes indefinitely. If you want the latest security features, create a new QR with the same seed phrase — your old QR still works as a backup.