Free Plain Text QR Code Generator
Type or paste any text — get a permanent, scan-ready QR code in one click. No sign-up, no expiry, no watermarks. 100% free forever.
Your Plain Text QR Code
Right-click the image → Save as PNG
Type or paste any text — get a permanent, scan-ready QR code in one click. No sign-up, no expiry, no watermarks. 100% free forever.
Your Plain Text QR Code
Right-click the image → Save as PNG
Turn any text into a scannable QR code in under two seconds — at zero cost, with zero bureaucracy. Our free plain text QR code generator encodes whatever you paste: a website URL, a cryptocurrency wallet address, a Wi-Fi password, a vCard contact block, an SMS shortcode, or any custom string up to several hundred characters. The resulting QR is permanent — it carries your exact text inside its modules and will resolve correctly on any scanner, anywhere in the world, ten years from now. No server stores your data, no subscription renews without warning, and no expiry clock runs in the background. What you generate today will scan flawlessly the day your grandkids find that business card.
The QR code industry loves selling "dynamic" codes — short links that redirect through a proprietary server so the vendor can track scans, swap destinations, and, of course, charge you a monthly fee. When you stop paying, the redirect dies and every printed code becomes a dead end. Plain text QR codes work fundamentally differently: the destination is baked directly into the code's data matrix. There is no middleman, no redirect, and no renewal date. If you encode https://yoursite.com, that string lives inside the QR forever. That's the definition of everlasting — and it costs nothing to maintain because there is nothing to maintain.
The QR standard (ISO/IEC 18004) supports virtually any UTF-8 string, which means our generator handles an enormous range of real-world use cases without any special configuration:
https:// links so smartphones open the browser automatically on scan. Works for landing pages, product listings, menus, portfolios, and event registrations.WIFI:T:WPA;S:NetworkName;P:Password;; to let guests connect instantly without reading out a password character by character.mailto: schema lets you encode recipient, subject, and even body text so scanning opens a ready-to-send email draft.smsto:+1234567890:Your message here to open a pre-filled SMS thread on the scanner's device.geo: URI or Google Maps link to drop someone directly to a location pin when they scan your flyer or sign.Many "free" QR tools are free only for the first five codes, or only until you need to download the image, or only as long as you don't mind a watermark in the corner. We find that exhausting, so we took a different approach. This tool has one pricing tier: free. Generate one code or ten thousand — the experience is identical. Download a PNG with no watermark. Encode a string with no character limit caveat hiding in small print. The generator runs as a static browser application: no server round-trips means no usage metering is even technically possible. You are the only party who ever sees your text, and you keep the result.
Every keystroke you type into an online tool with a server-side backend travels across the internet to someone else's computer. For most text that's fine. For a cryptocurrency wallet address, a Wi-Fi password, or confidential contact data, it is a meaningful privacy consideration. Our generator runs the entire encoding process inside your browser tab using a battle-tested open-source JavaScript QR library. Your text string is passed to the library as a local variable, the pixel matrix is drawn to a canvas element, and the image is handed back to you — all within the same device, all within the same browser process. Nothing is transmitted, nothing is logged, nothing is retained after you close the tab. That architecture is not a marketing claim; it is a direct consequence of how the tool is built.
This generator is an engineering-first utility built for people who need reliable, privacy-respecting QR creation without vendor lock-in. The underlying QR library implements the full ISO/IEC 18004 specification including Reed–Solomon error correction, format information encoding, and mask pattern selection. Generated codes have been tested for successful decode across iOS Camera, Android Camera, Google Lens, ZXing, QR & Barcode Scanner, and Scanbot — the most widely deployed scanner surfaces globally. No analytics SDKs, no third-party advertising pixels, and no external API calls are embedded in this page. What you see in your browser's network tab is what exists: fonts, a stylesheet, and a single lightweight script. The tool is maintained by developers who use it themselves daily for cryptocurrency payment displays and documentation QR codes, which is why the privacy and permanence characteristics matter more to us than upsell opportunities.
This page is architectured for a perfect Lighthouse score. The QR library weighs under 15 KB compressed and is the only meaningful JavaScript payload on the page. There are no render-blocking third-party scripts, no server-side API calls during generation, and no client-side framework overhead. Largest Contentful Paint (LCP) resolves to the generator card — the first interactive element — which appears on first paint without any loading state. Cumulative Layout Shift (CLS) is zero: the QR output area reserves its space before generation so no content reflows when the image appears. Interaction to Next Paint (INP) is sub-20 ms on any modern device because the entire encoding operation executes synchronously in a single browser frame. These are not aspirational numbers; they are architectural consequences of keeping the tool as a static, client-side utility with no unnecessary dependencies.
Yes — completely free at every step. There is no free-tier limit, no premium upgrade, no watermark on downloaded images, and no credit card prompt lurking behind a paywall. The tool generates QR codes as a browser-side operation with no server infrastructure to bill for, which is why permanent free access is structurally sustainable rather than a promotional promise.
The QR code itself has no expiry mechanism — the encoded string is a permanent part of the data matrix. As long as the text you encoded remains valid (a live URL, an active wallet address, an unchanged Wi-Fi password), the code will decode correctly in perpetuity. The only thing that can "expire" is the destination, not the code — and that is entirely within your control.
No. The entire generation process runs inside your browser tab. Your text is passed as a local JavaScript variable to the encoding library, which renders the pixel matrix directly to an HTML canvas element. Nothing leaves your device at any point in that process. You can verify this yourself by opening your browser's network inspector before generating a code: you will see zero outbound requests triggered by the Generate button.
The QR standard supports up to 7,089 numeric characters, 4,296 alphanumeric characters, or 2,953 bytes of binary data at error-correction level L. In practice, most use cases — URLs, wallet addresses, Wi-Fi credentials, vCards — fall well within these limits. Very long strings produce denser QR codes with smaller modules, which require a higher-resolution display or print surface for reliable scanning. For best scan reliability, keep encoded strings under 300 characters where possible.
Yes. The generator uses UTF-8 encoding, which covers the full Unicode character set including accented Latin characters, Cyrillic, Arabic, CJK ideographs, emoji, and currency symbols. Spaces, punctuation, and control characters like line breaks are encoded correctly. If you are encoding a URL, ensure it is properly percent-encoded for characters outside the standard URL character set.
Dynamic QR services encode a short redirect URL that points to their server. When someone scans the code, they hit the provider's redirect, which then forwards them to your actual destination. This allows the provider to track scans and lets you change the destination without reprinting — but it means the code stops working if you cancel your subscription, the provider shuts down, or their servers go offline. Plain text QR codes have no redirect layer: the destination is the encoded string itself, making the code self-contained and permanent by design.
The generator produces a 234 × 234 pixel PNG, which is suitable for digital use at standard screen resolutions and for print up to approximately 2 × 2 cm at 300 DPI. For larger print formats — A5 flyers, business cards at high specification, or any output above roughly 5 cm — regenerate the same string through an SVG-based QR tool to obtain a fully scalable vector file, then export at the DPI your printer requires. The encoded text remains identical; only the output format changes.
Yes. The generator is fully responsive and functions on any modern smartphone or tablet browser — Safari on iOS, Chrome and Samsung Internet on Android, and all Chromium-based mobile browsers. The input field, generate button, and image output all adapt to narrow viewports. Generation speed on mobile is identical to desktop because the encoding operation is CPU-trivial and completes in a single frame regardless of device class.