Sources & Methodology
Every technical claim on QRMaker traced to its primary source: ISO/IEC 18004, DENSO WAVE documentation, IETF RFCs and the vendored libraries' licences.
Every number and rule on this site traces to a primary source: the format’s inventor (DENSO WAVE), the ISO standard it wrote, the IETF RFCs that define the payload types, and the open-source libraries that do the work here. Where a figure is industry convention rather than spec, it’s marked as such.
The QR Code format itself
- ISO/IEC 18004 — the international standard for QR Code Model 2, approved June 2000. Specification summary and standardization history: DENSO WAVE — QR Code standardization. Confirmed figures: 40 symbol versions (21×21 to 177×177, +4 modules/side), maximum capacities 7,089 numeric / 4,296 alphanumeric / 2,953 byte / 1,817 kanji characters, and structured append up to 16 symbols.
- Error correction levels — L/M/Q/H restore approximately 7/15/25/30% of codewords via Reed–Solomon; level M is the common default. DENSO WAVE — error correction feature.
- Quiet zone — a four-module margin on all sides is required. DENSO WAVE — securing the margin / code area; the same page provides the 400-dpi worked example (29 modules × 0.254 mm + margin ≈ 9.4 mm) reproduced in our print-size guide.
- Minimum module size — ~0.17 mm on a common laser printer, giving a ~3.6 mm theoretical floor for a Version 1 symbol; ~271 bytes (Version 10, level L) cited as a practical mobile-camera payload limit. DENSO WAVE — FAQ.
- “10× width ≈ scan distance” — industry rule of thumb for phone cameras, not an ISO provision. We present it as a heuristic and recommend proof-scanning at the real distance.
- Trademark — “QR Code” is a registered trademark of DENSO WAVE INCORPORATED; the pattern itself is free to use, no licence needed. DENSO WAVE — FAQ, intellectual property.
Payload formats the generator writes
- Wi-Fi — the
WIFI:T:WPA;S:ssid;P:pass;;convention, including backslash-escaping of\ ; , : ", as documented by the ZXing barcode project’s barcode-contents guide: github.com/zxing/zxing/wiki/Barcode-Contents. - vCard 3.0 — RFC 2426 (the address-book exchange format; superseded by RFC 6350 vCard 4.0, but 3.0 remains the variant phone QR scanners parse most consistently).
- Email —
mailto:URIs per RFC 6068. - SMS —
sms:URIs per RFC 5724. - Phone —
tel:URIs per RFC 3966. - Location —
geo:URIs per RFC 5870.
Software
- Encoder —
qrcodegenv1.4.0 by Project Nayuki, MIT License. github.com/nayuki/QR-Code-generator. The file is vendored unchanged (assets/qrcodegen-1.4.0.js, licence text distributed alongside asqrcodegen-LICENSE.txt). - Decoder —
jsQRv1.4.0 by the jsQR contributors, Apache License 2.0. github.com/cozmo/jsQR. Vendored unchanged (assets/jsQR-1.4.0.js, licence injsQR-LICENSE.txt). It powers the generator’s Test scan and the scanner page, and is fetched only when scanning is actually used.
What we did not rely on
No claims here were copied from competitor QR-generator sites or their blogs; the “dynamic codes expire” explanation on the static vs dynamic page is architectural (a redirect URL lives in the code), not a quotation. Contrast warnings use the WCAG relative-luminance formula as a practical proxy — scanners care about module/background luminance difference, not WCAG compliance per se.