A field photo is not proof. Seal the frame on the phone.
Before it can be swapped, spoofed, or edited. The phone decides before the photo leaves — captured live, at this spot, of this scene. If camera, IMU motion and GNSS disagree, it refuses the seal and names the failed check.
Latehar NMMS worksite photos found fraudulent or duplicated.
Times of India · Sep 2026of those had already been approved before the review.
Times of India · Sep 2026India e-commerce RTO, with fake delivery attempts a named driver.
Seller logistics reports · 2026cloud calls in the seal path. Works in airplane mode.
FrameSeal design ruleFour outcomes. One seal. Three refusals.
Sensors refuse first. The hash only checks the edit. Every refusal names the failed check — and the laptop can't override it.
Sealed
- Walked ~2 steps
- Live frame
- GNSS agrees
- Hash written
SHA-256 · on deviceGallery
- No capture motion
- File is old
- Seal blocked
- Reason shown
GALLERY: no capture motion · file not from live cameraSpoof
- Mock location on
- IMU still
- Signals disagree
SPOOF: mock location on · IMU still · signals disagreeEdit
- After-photo wiped
- Hash mismatch
- Scene changed
EDIT: hash break · scene changedThe phone decides before the photo leaves.
No cloud call in the seal path. Every step runs on the device — this prototype runs it in your browser.
Live camera
Frame grabbed from the live stream. There is no gallery path into a seal.
IMU + GNSS
Step / still check and a GNSS fix — and they must agree. Disagreement refuses.
SHA-256, local
Hash of frame bytes + sensor packet, computed on the phone.
Perceptual hash
Best-effort dHash compare of the after-photo. Never claims to catch every deepfake.
Read-only review
Laptop verifies and accepts. It cannot mint a seal or override a refusal.
The decision happens where the sensors are.
Camera, accelerometer and GNSS are read together at capture. The seal is written locally — or refused, with the reason.
no cloud
Try it as a judge
- Open Phone (Seal). On a laptop it opens in Judge mode with a built-in Ward 14 scene.
- Tap Pass, Gallery, Spoof and Edit. Sensors tick and the checklist resolves to SEALED or REFUSED, naming the failed check.
- Tap Send to desk (or download the
.frameseal.json). - Open Laptop (Review Desk). Accept the sealed card; refused cards stay blocked. Hit Verify, then Tamper a copy to watch the desk catch an edited card.
- On a phone, switch to Live sensors — real rear camera, accelerometer steps and GPS. Walk two steps toward the subject, then seal.
The reviewer, not the worker
The person who pays a wage, closes a ward ticket, or releases a delivery has nothing but a JPEG and trust. FrameSeal hands them a card that says how the frame was captured.
Wiped & spoofed in Gurugram
One worker AI-wiped a garbage heap from a photo; another spoofed GPS from Jhajjar.
The Print · Jul 2026Seal one. Refuse three.
Then try to fool the desk.
Runs entirely in your browser. Turn on airplane mode after it loads — it keeps sealing.