WiFi QR Code Generator
Type your network name and password and get a printable WiFi QR code guests can scan to join — generated entirely on this device.
Demo — sample WiFi content. Fill the form above to replace it.
Version 4 · 33×33 modules
48 of 2331 bytes at level M
Show the exact payload
Contains the password exactly as typed — it exists only on this screen and inside the code.
WIFI:T:WPA;S:Sunroom Guest;P:counter-breeze-47;;
Press ? for shortcuts
Do it offline:$ qrencode -t SVG -o wifi.svg 'WIFI:T:WPA;S:HomeNet;P:example-pass;;'
How to use it
- Enter the network name exactly as the router broadcasts it — capitalization counts, and a stray trailing space is the classic silent join failure.
- Pick the security type. WPA covers WPA2 and WPA3-Personal, which is nearly every home and small-office router; open networks take None and skip the password field entirely.
- Type the password (8–63 characters for WPA). The reveal toggle shows what you typed — a QR code that encodes a typo strands every guest who scans it.
- Check the byte line and warning chips under the preview, then pick an error-correction level — M suits a framed print by the door; move up to Q or H for laminated or outdoor placements.
- Download the SVG (⌘/Ctrl + S) for print work or a PNG for chats and slides, and test one real scan before running off twenty copies.
Type the network name and password and a joinable WiFi code renders as you type, ready to print or download as SVG and PNG. The password never leaves this device — no account, no shortener, no redirect; the pattern on screen is built from your keystrokes in this tab. Guests point a camera at the printed code and their phone offers to join, credentials included, spelling mistakes excluded.
How it works
The code encodes one plain string in the WIFI: scheme that camera apps agreed on years ago: WIFI:T:WPA;S:HomeNet;P:example-pass;; — T names the security type, S the network name, P the key, and an optional H:true marks a hidden network. Segments end with semicolons and the whole payload ends with two. Because ; , : \ and " carry meaning in that grammar, this tool backslash-escapes them inside your values automatically — the second worked example shows the escaping in action.
Nothing about that string requires a server, and this page does not use one: the payload builder and the QR encoder are both compiled into the page and run in this tab. A static code is its content — there is no shortener between the scan and the join, no dashboard counting scans, and nothing to renew, so the printed code works for as long as the password stays the same. Change the router password and you print a fresh code; nobody can edit the old one remotely, including us.
The security choices are deliberately honest. WPA is the token the grammar defines for the whole WPA/WPA2/WPA3-Personal family — phones negotiate the strongest mode the router offers, so one token covers all three. WEP still encodes because old hardware exists, but it ships with a warning, not a blessing. And WPA2-Enterprise is refused outright with a named message: EAP logins are per-user credentials that a static code cannot carry safely, and a half-working code is worse than none.
WiFi payloads are tiny — the examples below land between 30 and 52 bytes, versions 3 and 4, symbols small enough to scan from a table tent. That leaves headroom to raise error correction: at level H roughly 30 percent of the symbol can be scratched, splashed or glared out and the join still works, which is why the level selector, not the size slider, is the knob that matters for a code living next to a coffee machine.
Examples
HomeNet-Guest · WPA · paper-lantern-42 (fictional)WIFI:T:WPA;S:HomeNet-Guest;P:paper-lantern-42;;
47 bytes · version 4 at MThe everyday case — a guest network with a fictional passphrase. T:WPA is correct for a WPA2 or WPA3-Personal router; the phone picks the real mode when it joins.
B&B "Linden" · WPA · court;yard:9,plum (fictional)WIFI:T:WPA;S:B&B \"Linden\";P:court\;yard\:9\,plum;;
52 bytes · version 4 at MEvery reserved character in this fictional pair — the quotes, semicolon, colon and comma — gains a backslash so scanners read the values intact. Hand-built payloads usually get this wrong; the builder cannot.
Attic Office · WEP · hidden networkWIFI:T:WEP;S:Attic Office;P:ten-quiet-lofts;H:true;;
52 bytes · version 4 at M
WEP is broken cryptography — the key can be recovered from captured traffic in minutes; prefer WPA if the router offers it.
Hidden network — some phones ignore the H:true flag and cannot join until the SSID broadcasts; test a real scan before printing.A legacy setup earns both warnings verbatim (the key here is fictional). The code still encodes — old routers are real — but each chip names a way this deployment can fail in the field.
Reading Room · open network (nopass)WIFI:T:nopass;S:Reading Room;;
30 bytes · version 3 at MOpen networks drop the P segment entirely rather than encoding an empty key — 30 bytes, the smallest symbol on this page, and the phone joins without prompting for anything.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
Hidden networks join unreliably
H:true is part of the grammar, and this tool encodes it — but a hidden SSID is not broadcast, and some handsets refuse to join a network they cannot see in a scan. If the code is for guests, unhiding the network fixes more support conversations than any other setting.
WPA2-Enterprise is refused, not fudged
Corporate networks that ask for a username use EAP, where each person authenticates separately. There is no honest way to put that in a static code — encoding T:WPA with a shared secret that does not exist would strand every guest at the router — so the Enterprise option explains itself and generates nothing.
What actually scans it
iPhone cameras have parsed WIFI: codes natively since iOS 11, and Android handles them in the stock camera or the quick-settings QR scanner, with the join offered as a notification. Laptops are the stragglers — most desktop platforms have no native handler, so keep the password available for them.
Print size is a non-issue at these densities
A 50-byte payload yields a version 3 or 4 symbol — far below the density where the encoder starts asking for about 3 centimeters of printed width (that chip appears from version 10 upward). A WiFi code on a business card scans fine; contrast and the quiet border matter more than size here.
WEP encodes with its reputation attached
The WEP option exists for hardware that cannot do better, and it always carries the broken-cryptography warning. If the router menu offers WPA2 anywhere, switch the router rather than print a code that hands out a recoverable key.
Common errors
Network name is 34 bytes as UTF-8 — 802.11 SSIDs hold at most 32 bytes.- The 802.11 standard caps an SSID at 32 bytes, and accented or non-Latin characters cost two to four bytes each — this capture is seventeen é characters. If the router accepted the name, it fits; re-check what the router actually broadcasts.
WPA passphrases are 8–63 characters (IEEE 802.11) — this one is 7.- Eight characters is the floor the WPA specification itself sets, so a shorter string cannot be a valid passphrase — encoding it would produce a code that fails on every phone. The counter in the message shows what arrived, typos included.
Password is 64 characters — the WPA passphrase ceiling is 63 (IEEE 802.11).- A 64-character string is not a passphrase but the raw hex-encoded key some router UIs display — phones joining from a QR code expect the human passphrase, so the longer form is refused rather than encoded into a code that cannot work.
Enter the network name (SSID) — a WiFi code without one has nothing to join.- The S segment is the one mandatory part of the grammar. Whitespace-only names are refused too: a code that joins a network named by spaces is technically expressible and always an accident.
FAQ
Does my WiFi password leave this page?
No. The payload is assembled and drawn in this tab, and you can verify that instead of trusting it: watch the browser's network inspector while typing and downloading — after the page loads, no request goes out at all. The password is also structurally excluded from share links and saved drafts, so the only places it exists are this screen and the printed pattern.
Does a WiFi QR code expire?
Not on its own. The pattern encodes the credentials directly, with no service behind it, so it works until the router's name or password changes — at which point the printed code simply encodes stale credentials and you generate a new one. Rotating the guest password on a schedule? Reprint on the same schedule.
Which security type should I pick?
WPA, almost always — it is the grammar's token for the whole WPA/WPA2/WPA3-Personal family, and the phone negotiates the best mode the router supports. Pick None only for genuinely open networks, and WEP only when 2005-era hardware leaves no choice.
Can I make a code for a WPA2-Enterprise network?
No, and that is a refusal rather than a gap: EAP networks authenticate each user with their own login, so there is no shared secret a static code could carry. The tool says so in plain words instead of emitting a code that looks right and fails at the router.
Why does my guest's phone see the code but not join?
Work through the usual four: the password changed since printing, the network is hidden and the handset refuses non-broadcast joins, the SSID was typed with different capitalization or a stray space, or the device is a laptop with no native WIFI: handler. The first and third are why the reveal toggle and a single test scan exist.
Is the payload compatible with both iPhone and Android?
Yes — both parse the same ZXing-documented WIFI: grammar this tool emits, escaping rules included. Behavior differs only in presentation: iOS shows a join banner from the camera, Android offers the network via the scan sheet or notification.
Should I print the SVG or the PNG?
SVG for anything going through a printer or a designer — it scales without blurring and weighs a couple of kilobytes. The PNG presets exist for chat threads, slide decks and door-sign templates that only accept raster images; both render the same encode, so they scan identically.
Keyboard shortcuts
- ⌘/Ctrl + S
- Download the SVG. On this page the shortcut saves the code, not the page.
- ⌘/Ctrl + Shift + C
- Copy the code to the clipboard as a PNG image.
- ? or ⌘/Ctrl + /
- Open the keyboard shortcut overlay.
- t
- Cycle the color theme (ignored while typing in a field).
- Esc
- Close the topmost dialog — the form keeps everything typed.