W2QR

QR Format Versions

W2QR reads all historical QR formats. New backups use the latest format for your chosen security mode.

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.

V2BBasic Mode — current default

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

V2AAdvanced Mode

CBOR-serialized binary packet with authorization secret, HKDF domain separation, recovery ciphertext, and Shamir shares. Honey encryption is preserved — wrong password or wrong S both produce valid mnemonics. Includes wrapped Recovery Code data for offline S recovery.

Shamir ShareShamir Shares Mode

Compact binary format: version byte (6) + share metadata (index, threshold, total, word count) + 16-byte salt + honey-encrypted share data. Each share is independently encrypted using Argon2id + XOR, the same scheme as V2B. Also available as a w2qr-share: prefixed text string.

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 (Basic)
  • - Binary CBOR data with packet header → V2A (Advanced)
  • - Binary data with version byte 6 → Shamir Share
  • - Text starting with w2qr-share: → Shamir Share (text format)

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. V2A uses CBOR (Concise Binary Object Representation) for compact binary encoding — the QR code contains raw binary data rather than a URL, allowing more data in a smaller QR.

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 in Basic, Advanced, or Shamir Shares mode — your old QR still works as a backup.