Choose which categories you allow. Your choice is saved in your browser and never sent to our server. You can change it at any time via the “Cookie Preferences” link in the footer. See our Privacy Policy §3 for full details.
qreagle_cookie_consent_v1) so this notice does not reappear.
No personal data is transmitted. Exempt from consent under Art. 5(3) ePrivacy Directive.
fonts.googleapis.com, fonts.gstatic.com).
This causes your browser to send a request to Google’s servers; Google’s
privacy policy
applies to that request. If you decline, a system font is used and the site works normally.
Everything you need to know — from your first QR code to cryptographic signing. Use ⌘P to save as PDF.
QREagleStudio is available exclusively on macOS 13 Ventura and later, distributed through the Mac App Store. Download it free — core features are available immediately, premium features unlock with a subscription or lifetime licence.
QREagleStudio is divided into three areas:
QREagleStudio supports 167 QR content types across 8 categories. Every type has a dedicated form — no manual string formatting required.
The Style tab gives you complete control over every visual aspect of your QR code — colours, pixel shapes, eye styles, gradients, logos, labels, and frames.
Tap any preset card to instantly apply a complete visual style: colours, pixel shapes, and eye shapes in one click. Presets include Classic, Nebula, Sakura, Circular variants, and many more. You can further customise any preset after applying it.
Data pixels are the individual modules that make up the QR pattern. Eye shapes are the three corner squares used by scanners to orient the code. Available shapes include Square, Circle, Rounded, Star, Flower, Sharp, Pointy, Squircle, and Diamond. Use the Inset and Corner sliders to fine-tune each shape.
Enable the Gradient Fill toggle to apply a Linear or Radial gradient across data pixels. Pick start and end colours independently. Gradients render correctly in all export formats (PNG, SVG, PDF).
Add a logo from your Mac (PNG, JPEG, GIF, SVG) or choose from Apple’s 1,000+ SF Symbols. Keep logos at 25–30% of the QR code area and set Error Correction to Q or H (25–30%) to preserve scannability.
Enable the Text Label toggle to add up to two lines of text above or below the QR code. Set font size (14–80 pt), colour, alignment, and vertical offset for precise placement.
Add a decorative frame with a solid background colour, adjustable padding, and corner radius. When Circular QR is enabled, the frame adapts automatically to an oval.
Smart Cards are QREagleStudio’s signature feature — 85 interactive web pages encoded entirely within the QR code URL. No server storage, no database. The entire card payload lives in the URL parameters and is rendered by qreagle.com on demand.
When you fill out a Smart Card form (e.g. Gift Card, Business Card, Wedding Invitation), QREagleStudio encodes all the fields into URL-safe parameters and builds a URL like qreagle.com/api/gift?to=Alice&fr=Bob&msg=…. Scanning the QR code opens that URL, which renders a beautifully styled HTML page — with no data stored on any server.
Dynamic QR codes contain a short link (e.g. qreagle.com/go/abc123) instead of a fixed URL. You can update the destination at any time from the QREagleStudio app — without reprinting or redistributing the code. A scan counter shows how many times each code has been scanned.
/go/ short URL.Open the Dynamic QR tab in the app, select the link, tap Edit Destination, enter the new URL, and save. The change is immediate — no reprinting needed.
The scan count is displayed in the Dynamic QR tab. Only an aggregate integer is stored — no IP addresses, no device data, no timestamps per scan, and no cookies are collected from the people who scan your code.
Dynamic QR requires a Premium subscription. Your API key is derived from your StoreKit transaction ID via HMAC-SHA256 and stored exclusively in your macOS Keychain. See our Privacy Policy for full details.
The Bulk Generator creates dozens or hundreds of QR codes in one click, each from a row in a CSV file, all styled identically to your current design.
001.png, 002.png, 003.png… matching row order.Each row is the raw QR content — a URL, phone number, Wi-Fi string, plain text, etc. No header row is needed. Example:
https://example.com/product/001 https://example.com/product/002 mailto:sales@example.com +43123456789
Cryptographic QR Signing is QREagleStudio’s most advanced security feature. It lets you attach a verifiable digital signature to any QR code you create — so anyone who scans it can confirm the content is authentic and untampered, directly from qreagle.com/api/verify.
Your private signing key is generated once on your Mac using Apple’s CryptoKit framework and stored in your macOS Keychain. It never leaves your device and is never transmitted to any server — including ours. Only the public key and signature, which are intentionally public, are embedded in the QR code URL.
Digital signing is a well-established cryptographic technique. QREagleStudio implements it for QR codes using the P-256 ECDSA algorithm (also known as ES256 or secp256r1) — the same curve used by Apple’s Secure Enclave, passkeys, and TLS 1.3.
When you sign a QR code, the app produces a unique mathematical signature over the QR content using your private key. Anyone with your public key can verify that signature — proving that:
The public key, signature, your optional signer name, and the original content are all embedded as URL-safe base64 parameters in a verification URL. Scanning the signed QR code opens the verification page automatically.
qreagle.com/api/verify?d=…&s=…&k=…&n=… URL. The original content is fully preserved and displayed on the verification page.When someone scans a signed QR code, their device opens:
https://qreagle.com/api/verify?d=BASE64URL&s=BASE64URL&k=BASE64URL&n=BASE64URL
The page shows:
In both cases the page displays: the content type (URL, email, text, etc.), the original QR data, your optional signer name, and a short key fingerprint (first 8 hex characters of the SHA-256 hash of your public key) so scanners can identify which key was used.
The URL parameters are:
d= — base64url-encoded original QR contents= — base64url-encoded P-256 ECDSA signature (64 bytes IEEE P1363 format)k= — base64url-encoded raw P-256 public key (64 bytes, x‖y uncompressed)n= — base64url-encoded signer name (optional)Private key storage: Your P-256 private key is generated using Apple’s CryptoKit framework (P256.Signing.PrivateKey) and stored in your macOS Keychain with kSecAttrService = "com.eaglestudio.qr.signingKey". The Keychain entry is AES-256 encrypted, sandboxed to QREagleStudio’s bundle identifier, and protected by your Mac’s login password. On Macs with the Apple T2 chip or Apple Silicon, Keychain secrets are additionally protected by the Secure Enclave.
Signing algorithm: P-256 ECDSA with SHA-256 (P256.Signing.PrivateKey.signature(for:)). The signature is in IEEE P1363 format (64 bytes: r‖s). The verification endpoint converts it to DER format for PHP’s OpenSSL.
Verification endpoint: qreagle.com/api/verify is completely stateless. No data from the request is written to any database. Only the standard Apache access log entry is created (deleted after 30 days). See Privacy Policy §5f.
Key rotation: Your key pair persists across app updates. If you want a new key pair (e.g. after a security incident), you must delete the Keychain entry manually via Keychain Access.app under the entry com.eaglestudio.qr.signingKey, then relaunch QREagleStudio to generate a new pair. QR codes signed with the old key will still verify — they carry the old public key in their URL.
Does signing work with any QR type?
Yes — URLs, vCards, Wi-Fi credentials, email addresses, plain text, Smart Cards, payment addresses, and every other type QREagleStudio supports.
Is signing free?
Signing is included with a QREagleStudio Premium subscription or lifetime licence. The verification page at qreagle.com/api/verify is free for anyone to use, with no account required.
What if I get a new Mac?
If you migrate your Keychain (iCloud Keychain, or the Migration Assistant), your signing key transfers automatically. On a clean install without Keychain transfer, a new key pair is generated. Old signed QR codes still verify correctly — the public key is embedded in each code’s URL.
Can someone forge my signature?
Not without access to your private key. P-256 ECDSA is considered computationally infeasible to forge. Protect your Mac’s login credentials and Keychain as you would any signing credential.
Does the verification page store the content I signed?
No. The verification endpoint is stateless. Nothing is written to any database. The content you see on the verification page comes directly from the URL parameters of that request and is never persisted.
The QR Library saves complete QR configurations — type, content, style, and all options — so you can restore any saved design instantly.
Click the Library button (book icon) in the toolbar. Press Save Current and give it a name. All settings — type, form fields, colours, pixel shape, logo, labels, frame — are saved locally in UserDefaults on your Mac.
Open the Library and tap any saved item to restore it instantly. You can also delete items by swiping or clicking Delete. Library data is stored locally and is never transmitted to any server.
QREagleStudio exports in three formats. Choose the right one for your use case.
QREagleStudio is built around a privacy-first principle: most processing happens on your device, and server-side interactions are minimal and fully documented.
QR generation, style settings, your QR library, logo files, and all design work happen entirely on your Mac. No account is required for core features.
API keys (Dynamic QR), AI service keys, and your signing private key are stored exclusively in the macOS Keychain — AES-256-encrypted and sandboxed to QREagleStudio’s bundle identifier. They are never logged, never shown in plaintext, and never transmitted to our server.
QREagleStudio contains zero analytics, tracking, or advertising SDKs. No Firebase, Amplitude, Sentry, Crashlytics, or similar libraries. No IDFA access. No behavioural data collection of any kind.
Full details in our Privacy Policy.
Most issues have a quick fix. Try these steps before contacting support.
For issues not covered here, visit qreagle.com/support or email us at info@it-egarter.at. We aim to respond within 72 hours (business days).
Every Dynamic QR link automatically records anonymised scan events. The Analytics sheet — opened via the View Analytics button in the Edit Link sheet — gives you a full breakdown of who scans your codes, from where, and on which devices. All data is privacy-compliant worldwide: no IP addresses, no cookies, no device fingerprints are ever stored.
When someone scans a Dynamic QR code and their browser opens qreagle.com/go/{slug}, the server records one anonymised scan event containing the following fields:
| Field | What is stored | What is NOT stored |
|---|---|---|
| Date | Calendar date (YYYY-MM-DD) | Hour, minute, second |
| Country | 2-letter country code (e.g. DE) | IP address, city, postal code |
| Browser | Browser family (e.g. Safari, Chrome) | Full User-Agent string, version |
| OS | OS family (e.g. iOS, Android) | OS version, device model |
| Language | Accept-Language code (e.g. de, en-US) | Full header value |
| Referrer | Hostname only (e.g. google.com) | Full referrer URL, query params |
| A/B variant | Variant label (A, B, C…) | User identity, session data |
NULL for the vast majority of QR scans. It will only be populated when someone clicks your short link from a webpage, social media post, or email.The analytics sheet contains:
The analytics system was designed from the ground up to be privacy-compliant worldwide. Key design decisions:
go.php sets no cookies and runs no JavaScript. The redirect is a single HTTP 302 response.A/B testing (split testing) lets you route scans of a single Dynamic QR code to multiple different destination URLs according to configurable traffic weights. Use it to compare landing pages, offers, or content variants and identify the highest-performing destination — all without reprinting the QR code.
Each variant has a numeric weight. The redirect engine calculates each variant’s share of traffic as:
share(variant) = weight(variant) / sum(all weights)
Examples:
Interpreting results:
QREagleStudio User Manual v4.0 — May 2026
© 2026 IT Solutions Egarter, Mag. Wolfgang Egarter — St. Oswalderstraße 14, A-9546 Bad Kleinkirchheim, Austria
Email: info@it-egarter.at · Privacy Policy · Terms