No Python needed — verify directly in your browser

Every face
leaves a trace.
We make it verifiable.

Drop a portrait. We detect the face, search the open web for where it appears, compare candidates with cosine similarity, canonicalize the match and anchor its SHA-256 on an Ethereum-compatible chain. Then prove it — VERIFIED / TAMPERED.

Verify in browserHow it works Python 3.12 • Solidity 0.8.20 • InsightFace
FACE
0.80 conf
512-D ArcFace
MATCH
100.00%
Face Similarity
HASH
SHA-256
canonical JSON
CHAIN
Block #2
VERIFIED
Inputsamples/input.jpg
lena
face 0.80
bbox208,178 → 352,390
emb512-D · L2 1.000
● Live detection
Web discovery — /api/search → Yandex reverse-image6 candidates
100.0%
✓ Match
68.2%
below
41.7%
below
BLOCKCHAINVERIFIED
SHA-256 7a63a215…3676
tx 0xa4e8…809a7e · block #2 · 0x5FbD…aa3
✓ BLOCKCHAIN VERIFICATION SUCCESSFUL
Try it now — /verify
BUILT WITHInsightFace buffalo_l • OpenCV 4.10 • Web3.py 6 • Solidity 0.8.20 • Next 15.3.9 • eth-tester / Ganache

How it works

Six focused steps. Click to explore — the code preview on the right follows your selection.

Face Detection
Face Detection

Browser FaceDetector + InsightFace fallback. ArcFace 512-D, L2-normalized.

Live on this siteNo install needed
Input
Portrait
Proof
SHA-256
Chain
Anchored
RESULT
VERIFIED on-chain
Tamper → instantly shows TAMPERED
Live run — no code neededLena · VERIFIED
Input
1 face found
bbox 208,178 → 352,390 · 0.80 conf · 512-D
Search
6 candidates
Live web discovery — real external fetch
Match
100.00% — Face Similarity Match
Best candidate selected by similarity
Proof
Fingerprint anchored
SHA-256 → on-chain record · Block #2
VERIFICATION
✓ VERIFIED — on-chain fingerprint matches
Edit anything → instantly shows TAMPERED
Quick start — no setup needed

Use the browser verifier above — no install. For the full audited pipeline, the project also runs locally.

Start in one tap
Upload → auto-detect → search → proof in seconds
Open Verify
Why this PoC is real
  • InsightFace — accurate face detection
  • Live web search — real external fetch, not a local database
  • Candidates are face-verified before ranking
  • Only the fingerprint goes on-chain — no personal data
  • Tamper instantly shows TAMPERED