Prove a photo or video is untouched since capture.
AI-generated images, deepfakes and edited videos now look exactly like real ones. VCAP seals each one the moment it is taken — hardware-backed where the device attests it, a browser session key where it does not — so any later change, by AI or by hand, breaks the seal.
Intact, not fully proven — unchanged since it was sealed, but not everything behind the seal is proven.
- Signed at captureThe proof states how strong the key is.
- Checked in the browserThe file is never uploaded.
- No account neededTo capture or to verify.
- Open formatPublic specification, MIT.
Detectors guess. A seal does not.
An AI or deepfake detector looks at pixels and returns a probability, and every new model makes it less sure. VCAP turns the question around: real captures carry proof of where they came from, so nobody has to judge the pixels.
A valid seal proves
- These exact bytes were signed by the key that sealed them, on a phone or in a browser.
- How strong that key is, as the proof itself states: hardware-backed, with a chain naming the app, where the device attests it; a browser session key, which proves neither hardware nor app, where it does not.
- Nothing changed since: no filter, no retouch, no edited frame, no generative edit.
It does not claim
- That the scene was real: a sealed capture of a screen is still a capture of a screen.
- Who was holding the phone.
- That a file without a seal is fake. It is not accused of anything.
Three steps on the device, before the file goes anywhere.
Signed at capture
A key made on the device — in its secure hardware where it has one — signs the file the instant it is taken. The proof travels inside the file itself, and as a separate .vcap file beside it for platforms that would strip it: a genuine .vcap is never overruled by unverified bytes someone added to the file.
Marked in the pixels
An invisible watermark names the capture. If a platform strips the proof and recompresses the file, the mark can still point back to the capture in VCAP’s registry, as a hint, never a verdict. It holds up better on photos than on heavily re-encoded video, and our tests simulate platform re-compression rather than covering every platform.
Checked by anyone
Drop the file on the verifier. Everything runs in the browser, and the answer comes back in plain words.
On video, the seal goes frame group by frame group.
authentic As recorded. Every group of frames is sealed, and each seal is linked to the one before.
verified_clip Trimmed. The groups that were kept still check out, and the verifier says it is part of a longer recording.
frames_not_compared Re-timed. Frozen, slowed down or reordered: the seals still hold, but the timing they signed no longer matches, so no frame is vouched for.
tampered One frame edited. Its group no longer matches its seal, and the verifier says so.
Anyone can check a seal. No trust in us required.
The proof format and the public verifier are open source under the MIT licence. If VCAP disappeared tomorrow, every sealed file could still be checked for everything the file itself carries.
Specification
The proof format, JSON Schema, watermark layouts, threat model and conformance vectors. An independent verifier can be written from it alone.
Read on GitHubPublic verifier
A static page that judges only what the file carries. Everything runs in the browser and keeps working offline once loaded; the one request a check can make, reading a blockchain anchor, waits until you ask and never sends the file.
Open the verifierWhat it answers
Yes — this file is what it says it is.
In part — these are signed frames of a longer recording.
Cannot tell — the proof is genuine, but nothing shows these frames are the ones it signed.
No — this file changed after it was sealed.
No — the proof is damaged and cannot be read.
No — a sealed file was sealed a second time, and the outer seal cannot be trusted.
This file carries no proof.
This page cannot read a proof of this version.
Each answer is a word from the specification with the sentence the verifier prints beside it. On the public verifier an authentic file is shown amber, intact but not fully proven, because it cannot see whether the key still stands. When the proof was stripped, the verifier may still read the invisible mark, and says plainly that a mark alone is not a verdict of authenticity.
For anyone who has to rely on a photo or video taken by someone else.
Insurers handling claims, newsrooms and fact-checkers, site inspectors, legal teams that need a chain of custody. On top of the open seal, VCAP keeps the records that make a capture defensible: which device took it, whether its key still stands, when it was registered.
VCAP app
A camera that seals every photo and video at capture. Works without an account; enrolled in your organization, it registers each capture.
Get it on Google PlayConsole verifier
The complete check. It reads the file and the registry's full proof, including the trusted time and anchoring attached after capture, and labels every fact with its source.
Check a file in the consoleConsole
Devices, captures and cases in one place, with an encrypted vault for originals whose keys belong to you, not to us.
Sign in to the consoleSDKs
Android, iOS, React Native and the web, to seal inside your own app and register captures with your organization.
Developer portalWhat a capture can prove, and who tells you
Every proof is named with its source. The public verifier reads what the file carries and needs no trust in us; the console verifier adds what our records know.
- Yes
- If the file carries it
- Not available
- our recordsa fact from VCAP’s registry, named as such
| Proof | What it shows | Public verifierWhat the file proves | Console verifierComplete check |
|---|---|---|---|
| Signature | These exact bytes, unchanged since the key signed them. | Yes | Yes |
| Hardware key | The key was made in the phone’s secure chip, by an approved app. | YesOn Android, from Google’s certificate chain | Yesour recordsOn iPhone too |
| Device integrity | Google’s check found no sign the phone was modified when the capture was sent. | If the file carries it | YesAlso added after capture |
| Registration | The key was in our public log before the capture. | If the file carries it | Yes |
| Key status | The key had not been revoked. | Not availableNeeds our log, online | Yesour records |
| Trusted time | The file existed by a time an independent timestamp authority signed. | If the file carries it | YesAlso added after capture |
| Anchoring | The file existed before a block of a public blockchain (a test network while VCAP is in development). | If the file carries itRead from a public node, when you ask | YesAlso added after capture |
| Video segments and timing | Which parts of a video are as recorded, trimmed or re-timed. | Yes | Yes |
| Watermark | Points back to the capture when the proof was stripped. | YesA hint, never a verdict | YesA hint, never a verdict |
| Location | Where the phone said it was, and whether an operator corroborated it. | Declared onlyAs declared | Yesour recordsCorroborated when an operator did |
| Account needed | None | None | |
| Trust in VCAP | None | Only for facts marked our records | |
| Highest answer | The colour the verifier can give when every check it can make passes. | AmberIt cannot see whether the key still stands | GreenFor an Android capture registered by its organization |
Green means every check that applies passed at once: a hardware key on Android with its chain, device integrity, a registration whose key still stands, and a trusted time. Anything missing holds the answer at amber, and the verifier says what is missing. Captures from an iPhone are amber at best for now: no source proves an iPhone unmodified.
Organization access is by invitation while VCAP is in development.
Questions to ask before you rely on a seal.
How is VCAP different from an AI or deepfake detector?
A detector inspects the pixels and returns a probability, which grows less reliable with every new generator. VCAP does not judge pixels: it checks a proof sealed into the file when it was captured. A sealed file that was edited fails the check; a file without a seal is not accused of anything.
Does VCAP work with C2PA and Content Credentials?
Yes; they answer different questions. C2PA records who signed a statement about a file and what was done to it. VCAP proves the bytes were sealed at the moment of capture, by a key whose hardware the proof names. The VCAP proof can travel inside a C2PA manifest, and the two can share one file without breaking either. VCAP does not sign C2PA claims itself yet.
What if a platform strips the metadata from a photo?
The proof also travels as a separate .vcap file for platforms that strip it. An invisible watermark in the pixels names the capture, so a copy that lost its proof can often still point back to it: as a hint, never a verdict, and not after every re-compression.
Is my file uploaded when I verify it?
No. The public verifier runs entirely in your browser: the file never leaves your device, and no account is needed.
Can a sealed video be trimmed and still verify?
Yes, if it is cut without re-encoding. A video is sealed group of frames by group of frames, each linked to the one before. Cut the start or the end at the edge of a group, copying the stream as it is, and the groups you keep still verify, and the verifier says which part of the recording they are. A cut that re-encodes the video loses the seal, and one that only hides frames from the player is reported as not compared. Change a single frame and that group’s seal breaks.
Does a valid seal prove that what the photo shows is real?
No. It proves the file is unchanged since a capture app signed it. A sealed photo of a screen is still a photo of a screen, and the seal does not say who was holding the phone.
Which devices can seal a capture?
The VCAP app on Android, with no account needed. Organizations can seal inside their own apps with the SDKs for Android, iOS, React Native and the web. The proof states how strong its key is: hardware-backed where the device attests it, a browser session key where it does not.
Open to investment.
VCAP is in development and open to investors who want to help build verifiable photo and video evidence. The standard stays open; the funding goes into the product around it: the app, the console and the SDKs.