Stop trusting And Start Verifying

Clip Mode Examples Use Cases Opportunity Privacy Source Code

How it works

Documents carry a verify: line pointing at the issuer's domain, e.g. verify:issuer.example.com/claims. Clip mode: select the text. Camera mode: snap and OCR it. Either way, the text is normalized, hashed with SHA-256, and looked up at the issuer's URL. You decide upfront whether that domain is an authority on the claim.

1
Get text
Select (Clip) or snap & OCR (Camera).
2
Normalize
Apply text normalization rules locally.
3
SHA-256
Hash the normalized text.
4
Verify
GET the issuer URL; 200 = status returned (OK / REVOKED / etc.), 404 = not found.

What problems does this solve?

... use cases
across ... categories

Fraud, safety, security, compliance, authenticity — unverified documents cause harm across every sector. We've mapped the landscape:

Browse all use cases →

What "Verified" means (and doesn't)

Verifications are revocable

Revocation is part of trust. Issuers can update or withdraw claims over time, so the result reflects what they stand behind today. Some issuers may return an operational instruction, e.g. Stolen ID — please retain/cut in half and contact https://example.com/stolen_and_found quoting reference 283762..

Simulated integration tests

Screenshots captured by Playwright during automated tests against simulated authority chains in Docker. All organisations and people are fictitious. The Chrome extension is being itself or simulating something built-in to Outlook, Adobe or operating systems.

Clip mode (browser extension)

Bank statement (James, FDIC/Treasury chain)

Before: bank statement
Document
After: verified with authority chain
Verified
Extension popup with FDIC chain
Authority chain

OFSI sanctions licence (UK gov chain)

Before: OFSI licence
Document
After: verified via gov.uk chain
Verified
Extension popup with gov.uk chain
Authority chain

Pub receipt (Red Lion, HMRC VAT chain)

Before: pub receipt
Document
After: receipt verified
Verified
Extension popup with HMRC chain
Authority chain

Scottish solicitor practising certificate (Law Society → gov.scot)

Before: practising certificate
Document
After: certificate verified
Verified
Extension popup with law society chain
Authority chain

Scottish solicitors firm registration

Before: firm registration
Document
After: firm verified
Verified
Extension popup with firm chain
Authority chain

Sanctions screening attestation (FCA chain)

Before: sanctions screening document
Document
After: screening verified
Verified
Extension popup with FCA chain
Authority chain

Revoked employment reference

Before: employment reference
Document
After: revoked banner
Revoked
Extension popup showing revocation
Revocation detail

Camera mode

Police ID verified (Gina Dallimore, Midsomer police)

Before: police ID document
Document
After: verification banner shown
Verified
Extension popup with authority chain
Authority chain

Fake police ID rejected (Lex Luthor, NYPD)

Before: fake NYPD ID
Document
After: not verified banner
Not verified
Extension popup showing failure
Hash not found

Police ID verified (Gina, Android emulator zoomed in)

Android: captured warrant card
Captured
Android: OCR extracted text
OCR extracted
Android: normalized text
Normalized

Fake police ID rejected (Lex, Android emulator zoomed in)

Android: captured fake ID
Captured
Android: OCR extracted text
OCR extracted
Android: normalized text
Normalized

Real peer reference (hash live on issuer's personal website)

Real iPhone 0:51 · Real Android 0:18

Privacy model

Text normalization + SHA-256 happen on-device (Clip mode never sends your text anywhere; Camera mode runs OCR on-device too). The only network step is a hash lookup. The science of one-way hashes is explained at one-way-hash.html, and we go into the rest of the guarantees in the Privacy Declaration.

Source code & technical documentation on GitHub