Verify a photo or video

Load any copy of a file, including one downloaded from a social platform, to check which device recorded it, when, and whether it was modified. Verification runs in the browser; the file is not uploaded.

Drop a photo or video here
or click to choose a file — verification is local, nothing is uploaded

How to read a verdict

✓

Verified

This is the exact file that came out of the camera: the proof it carries inside checks out against its hardware key. This is the strongest claim the system makes.

!

Origin traced

The invisible mark carries the capture's id, and it survives social-media compression. When the verified original is on file, it is shown side by side with your copy for comparison. This indicates origin, not authenticity.

✕

No proof found

Either the file was never captured with TrustCam, or too little of the original is left — say a crop that keeps less than half of the image, or a screenshot of a small preview. We can't tell these two apart, so we claim nothing.

Videos can additionally show bitstream signatures: every ~1s segment is signed individually at capture, so even a trimmed clip proves which parts are intact. And when a file carries a C2PA / Content Credentials manifest, the verifier says so — inspect it with any Content Credentials validator.

Command-line verifier

The same verification modules, run locally from the command line for scripts and batch checks (needs node ≥ 18, plus ffmpeg for the pixel scan):

curl -sO https://trustcam.gregoriogalante.com/verify.mjs
node verify.mjs photo.jpg           # proof-trailer check
node verify.mjs --scan file.jpg     # + invisible-mark scan (photos AND videos)