Don't just trust. Verify.

Verify any document against its source.

An open standard: select or snap the text, and a SHA-256 lookup tells you whether the issuer stands behind it right now — no central database, no blockchain.

The £122m document nobody could check

During the pandemic, PPE Medpro supplied the NHS against a safety test report bearing Intertek's name — report code SHAT06648491. Intertek never issued it. The forgery rode through procurement and 72 shipments before anyone could establish it was fake; courts later ordered £122m repaid, and the unusable goods went to landfill anyway.

If Intertek had published a hash of every genuine report on intertek.com, any procurement clerk could have caught the fake in four seconds, on day one. That gap — between a document that names an authority and a way to ask that authority — is what Live Verify closes, for every document type, in every industry.

I issue documents Universities, regulators, insurers, certifiers, councils — stop forgeries that carry your name. For issuers → I build software that issues documents Invoicing, HR, insurance, credentialing platforms — ship verifiability your competitors don't have. For SaaS builders → I build platforms Camera, browser, OS, PDF vendors — the step after Live Text is whether the text is true. For platforms → I sell verification today Degree checks, document authentication, KYC — the unsentimental read on what gets commoditized and where the durable value moves. For incumbents & investors →
15-Minute Quickstart Clip Mode Examples Use Cases Opportunity Privacy Source Code

Forgery is now free

Until recently, a convincing forged certificate took skill, software, and nerve. Today anyone can ask a chatbot for a pixel-perfect insurance certificate, bank statement, employment letter, or test report — correct letterhead, plausible reference numbers, clean typography — in under a minute, at zero cost. Every control that relies on a document looking right is already obsolete.

Detection is an arms race that defenders lose: each generation of fakes is trained against the last generation of detectors. Attestation doesn't play that game. A document either hashes to a value the issuer's own domain stands behind right now, or it doesn't — and no improvement in generative models changes that arithmetic. The organizations that adopt issuer-side verification early aren't taking a bet on a trend; they're exiting an arms race they can't win.

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.

A global anti-fraud system

Taken together, the use cases describe something bigger than a single product: a global, decentralized anti-fraud system for documents and claims of every kind. It works the way the web and email do — as an open standard anyone can implement, not a service anyone signs up to.

This is not a blockchain. There is no ledger, no token, no mining, no consensus network, and no shared global state. A verification is a plain HTTPS lookup against the issuer's own server, answered live — which is exactly why claims can be revoked the instant an issuer changes its mind. A blockchain's permanence is the opposite of what fraud-fighting needs; the authority you trust is a domain name, not a chain.

Roadmap

Two parallel tracks: client-side reach (where verification happens) and issuer-side adoption (whose claims get verified).

Client side — where verification happens

DONE Proof of concept Web demo, hash lookup DONE Solid apps iOS, Android, Chrome ext. 3 NEXT Platform adoption Google, Apple, Microsoft, Samsung, Adobe, Mozilla, Opera take over the standard & ship in OS / browser / PDF

Issuer side — whose claims get verified

DONE Proof of concept Static hash endpoints DONE Scaled tech reference Authority chains, VCRS, OIRST 3 NEXT Pilot issuer deployments Real issuers, real endpoints 4 GOAL 1,000 SaaS vendors Verification baked into document-issuing platforms

Stage 3 is open now: the first ten pilot issuers and first ten SaaS integrations get free advisory support from the author (up to an advice limit) and a permanent listing — see the founding adopter program.

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..

Watch it work

Real documents, real phones

A real peer reference — hash live on the referee's own website, today

Real iPhone 0:51 · Real Android 0:18

Not a simulation: a professional reference whose hash is published on the issuer's personal domain, verified end-to-end by pointing a phone at it.

Genuine ID verified, fake ID rejected — on real hardware

Genuine warrant card: Real Android 0:30 · Real iPhone 0:30  |  Fake rejected: Real Android 0:22 · Real iPhone 0:39

Simulated authority chains (automated 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

Coffee shop receipt (The Daily Grind, HMRC VAT chain)

Before: coffee shop 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

Coffee shop receipt OCR (The Daily Grind, Android emulator) — not yet passing

Android: coffee receipt result
Result
Android: OCR extracted text with stitched rows
Extracted (stitched)
Android: normalized candidate 1
Normalized-1

Hash lookup fails due to Google ML Kit OCR errors: Henley -on-Thames (spurious space around hyphen), TOTAL : (space before colon). Row stitching and iterative blank-line candidate search work correctly — the remaining gap is OCR character accuracy. Apple Vision on iOS gets these right.

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

Live Verify is an open standard begun by Paul Hammant, prompted by the PPE Medpro / Intertek forgery case. Pilots, integrations, questions: paul@hammant.org