Skip to main content

sniffQR for Android is out now on Google Play. Get it

QR code security for Android, iPhone and your browser

Scan Smart.
Stay Safe.

sniffQR shows you what is really inside a QR code, and tells you honestly when it cannot be sure.

sniffQR live viewfinder tracking QR codes
Get it on Google Play Coming soon to the App Store

Android is out now, iPhone is next. Same engine, same verdicts.

Pro is a one-time purchase, never a subscription

No accounts, no servers, no analytics

Same verdicts across the apps

Free browser extension

Free forever, with the same detection engine as the apps, running in your browser.

How It Works

Four steps from unknown to known

Scan

Point your camera at any QR code, or scan from a photo or your clipboard (a photo or a text link). sniffQR detects and decodes it instantly.

Decode

The payload is identified and parsed: URLs, WiFi, contacts, crypto and more. Lookalikes and brand fakes are checked right on your device.

Analyze

Tap 'Check where this goes' to see the real destination. The link's site sees that, just like opening the link would. Your link goes only to the services you turned on: Web Risk online or offline, VirusTotal, or your feeds.

Verdict

Get a clear verdict ('Safe', 'Potentially Suspicious', 'Likely Malicious', or 'Unknown') before you open anything, with a plain-English reason for every non-Safe result.

Features

What sets sniffQR apart

Tap a QR code. Know what is inside before you follow it.

Nothing is checked until you say so

Nothing is checked until you say so

Consent architecture

Nothing leaves your device until you say so. Every local check runs first. A link goes only to the threat services you turned on with your own key, and its own website is contacted only when you tap 'Check where this goes' or 'Preview Safely in App', or turn on 'Check links automatically'. Contact cards, Wi-Fi, calendar, crypto and 2FA codes stay private by default: zero network contact, and never sent to a custom feed. Email and contact-card domains are checked on your device only.

Camera, photo, clipboard or share: every intake runs the same pipeline Local analysis runs before the first network call, always Turn on 'Check links automatically' and you tick which URLs on a redirect may be sent Contact, Wi-Fi, calendar, crypto and 2FA codes stay on the device by default The threat service you choose is the source of truth, and sniffQR never overrides it
On-device
Offline
Free tier
Local DB

The local detection engine is free, and it works offline

Free on every platform

No key, no account, no purchase, no network. sniffQR reads the payload, and every URL in a redirect chain once you check it, for brand impersonation, hidden characters, harmful file types, shell commands and the user@host trick, among others. Then it names what it found, in plain English.

Well-known brands checked for leetspeak, confusables, typo-squats and subdomain impersonation Harmful file types caught in both double-extension directions (invoice.pdf.exe and setup.zip.txt) Hidden characters stripped, counted and re-marked where they were Punycode decoded and re-scanned; TLS downgrades and WebSocket payloads flagged That is the shortlist. The features page has every check, platform by platform
Whole chain
1 to 15 hops
user@host trick
Checked on request

URL Analysis

Core Feature

A shortened link is a mystery until it is followed. tap 'Check where this goes' and sniffQR walks the redirect chain and shows every stop with its own verdict marker, recovers the user@host disguise so the trick can be shown to you, and stops cold on an HTTPS to HTTP downgrade. Free follows one hop; Pro follows up to 15.

Every hop shown with its own verdict marker Free follows 1 hop; Pro 1 to 15, defaulting to 5 HTTPS → HTTP downgrades stop resolution and become a warning user@host disguises (example.com@evil.example) recovered and shown Off until you ask: tap 'Check where this goes', or turn on 'Check links automatically' (free everywhere)
Some of those letters are lying to you

Some of those letters are lying to you

The attack you cannot see

The domain example.com is easy to trust. But swap its Latin "a" for a Cyrillic "а" that looks identical, and you have a different website your eye cannot tell apart. Neither can your browser. sniffQR can. It shows you the real punycode address next to what you saw, so the look-alike has nowhere to hide.

Look-alike characters across five scripts, named down to the exact Unicode character The real punycode address shown next to what you saw Checked in every payload type, not just links A name written honestly in one script never trips it
Threat Intelligence. Example scan. Service results are simulated.

Example scan. Service results are simulated.

Threat Intelligence

Your keys, your services

Check a link against real threat databases you turn on. Google Web Risk works with your own key. Pro adds VirusTotal (Premium API key required), up to 8 custom threat feeds, and Google Web Risk (Offline), which checks links on your phone. If a possible match is checked with Google, only a short piece of the link's fingerprint is sent, never the link itself.

Google Web Risk on the free tier, with your own key VirusTotal (Premium API key required) checked by a SHA-256 fingerprint, never the URL (Pro) Up to 8 custom threat feeds (Pro) Google Web Risk (Offline) with a local hash database (Pro)
Safe
Potentially Suspicious
Likely Malicious
Unknown

It would rather say it does not know

The honest verdict

Four verdicts: 'Safe', 'Potentially Suspicious', 'Likely Malicious', and 'Unknown'. 'Unknown' is the point, not an omission. A 'Safe' verdict requires a threat service to have actually said so. A missing key, a skipped check, a rate limit, a dead destination or a short link nobody checked: all of them report 'Unknown', and the screen tells you which. Every non-Safe verdict has to explain itself in plain English.

No check means 'Unknown', never 'Safe' Only a true 'Safe' opens without a confirmation Per-hop rows distinguish 'Not checked' from 'Unknown' A long chain or a dead destination is shown as context, not an accusation Reason-free results can only ever be 'Safe'
History & Export 1. Example scans. Service results are simulated.History & Export 2. Example scans. Service results are simulated.

Example scans. Service results are simulated.

History & Export

Free · unlimited with Pro

Every scan saved with its verdict, redirect chain and timestamp, searchable down to the Unicode character name. Free keeps your newest 5 visible and nothing older is deleted. Pro makes it unlimited and exportable.

Unlimited history with Pro; free shows the newest 5, older scans are retained Search the value, verdicts, redirect chain and flagged characters Export to TXT, CSV, JSON or XML (Pro) Deleting records and sharing a single result are free
Face unlock
Fingerprint
Encrypted
Root/Jailbreak

App Security

Built In

sniffQR protects itself as seriously as it protects you. A biometric lock that fails closed ('Lock on Exit'), your scan history encrypted on the device, and every link previewed in an isolated browser in the apps.

Biometric lock ('Lock on Exit') with device-credential fallback, fails closed Scan history encrypted at rest with per-field AES-256-GCM Copied passwords and 2FA secrets auto-clear from the clipboard Certificate pinning on the built-in services; no analytics, telemetry or ads A non-blocking warning if the device looks jailbroken or rooted
Android
iPhone + iPad
Browser extension
One verdict

Same answer on every platform

Enforced, not claimed

The same QR code gives you the same verdict on your phone, their phone, and your laptop. The apps and the extension are verified against each other before every release. The apps give the same verdict, and the extension differs only where a browser cannot see, each difference documented.

One shared detection engine behind every app Android, iPhone and the extension verified against each other before release The only differences are browser limits, each documented

Know what is in a QR code
before you act on it

Out now: the Android app on Google Play and the free browser extension. Next: iPhone. The apps add the camera, the offline threat database, VirusTotal, custom threat feeds, history and the rest of the Pro toolkit. One payment, never a subscription.

Get it on Google Play Coming soon to the App Store

Android is out now, iPhone is next. Same engine, same verdicts.

Free browser extension

Free forever, with the same detection engine as the apps, running in your browser.

Free to start · No subscription · Privacy first