QR Code Generator
ISO/IEC 18004 · byte mode · v1–40 · in-browser
otpauth:// URI format used by 2FA apps is supported — this is the easiest way to migrate a secret onto your phone's authenticator.Picking an error correction level
QR codes embed Reed–Solomon error correction so they survive scratches, smudges, and partial occlusion. There are four levels:
- L (Low, 7%) — smallest, densest grid; use for clean digital screens.
- M (Medium, 15%) — the default balance between size and resilience.
- Q (Quartile, 25%) — better tolerance for prints, stickers, and labels.
- H (High, 30%) — survives substantial damage; useful for outdoor signage or codes that may overlap with logos.
otpauth:// for 2FA setup
The otpauth://totp/Issuer:account?secret=BASE32&issuer=Issuer format is what apps like Google Authenticator and 1Password expect when you scan a setup QR. Paste a working URI here, render the QR, and scan it with your phone — identical to scanning the QR a service would have shown you during 2FA enrollment. Going the other way, generate the URI on the TOTP page and bring it here for scanning.
How the encoder works
The encoder produces standards-compliant QR codes per ISO/IEC 18004 in byte mode (UTF-8). It picks the smallest version (1–40, 21×21 to 177×177 modules) that fits the payload at the chosen error correction level, applies all eight masks, and selects the one with the lowest penalty score. Output is rendered as scalable SVG so it stays sharp at any zoom.
Privacy
Whatever text you encode is processed entirely in your browser. There is no upload step, no analytics, no remote rendering — the QR is generated by JavaScript on the page and downloads happen via a local Blob. If you're encoding something sensitive (a 2FA secret, a token), it stays on your device.