VCAP Verifier

Is this photo or video real?

Drop a photo or video and this page tells you whether the camera that took it signed it, and whether anything changed since.

The file never leaves your browser — no upload, no account, no server of ours.

Drop the file here

a sealed photo or video

No file chosen yet.

Advanced Using: the shipped defaults · pinned detector

Watermark detector

Reading a mark out of pixels needs a model. It is downloaded only when a file needs it — never on load — and checked against the digest this page pins before it runs.

Proof as a separate .vcap file

When the proof travels beside the file (<filename>.vcap). It is read here, not looked for anywhere. Dropping both files on the zone above works too.

Content Credentials as a separate .c2pa file

A C2PA manifest store kept beside the file. It is read here only when the file embeds none of its own, never looked for anywhere, and only for the vcap proof it may carry: its own signature is not checked.

Transparency logs

Used to check that a file's signing key was published before the capture. Published beside this page as logs.json; a proof naming a log you do not follow reads log not trusted.

    Your own trust document

    Timestamping authorities

    Used to check an RFC 3161 token binding a proof to an instant. Run by other people, published beside this page as tsa.json. With all of them off, a timestamp reads trusted time not evaluated.

      Your own TSA trust document

      Public chains read for anchors

      For a proof with an anchor, this page can ask the chain's public endpoint in chains.json which root the contract stored. It is off until you ask — here, or from the verdict of an anchored file — because the request carries the anchor id and, like any request, your address; never the file or the proof. Off, or offline, an anchor reads anchoring not verified.