Skip to content
FactLockCam
How it works

How it works

Tamper-evident photo and video verification

FactLockCam creates a tamper-evident record: sealed media, a signed canonical manifest, and an optional Polygon existence window. Recipients inspect a portable package without uploading it.

  • SHA-256
  • Canonical manifest
  • Polygon window
  • AES-GCM .seal
  1. 01

    Capture inside the app

    Photos and videos originate in FactLockCam. The system camera roll is not the source of the sealed original. Optional location can be recorded with the capture metadata.

  2. 02

    Fingerprint and signed manifest

    The app computes SHA-256 over the media bytes and signs a canonical manifest that includes the fingerprint, file length, MIME type, UTC capture metadata, signing address, optional Polygon lower-bound block, and device-key class. The device key class is disclosed. The device key is hardware-backed where the phone has it (Secure Enclave on iOS; StrongBox or TEE on Android). The owner signature is made with a software key held in the phone's secure storage. Neither is hardware camera attestation.

  3. 03

    Independent existence window

    When network access is available, the manifest hash can be anchored to Polygon. The later bound is the block that included that transaction. Offline captures have no earlier bound. The displayed window is not a claim that the photographed scene occurred at a specific instant.

  4. 04

    Encrypted archive under your control

    Media is stored as an encrypted .seal on the device. Only you hold the keys; a .factlock backup carries them to a new phone.

  5. 05

    Portable package, local unlock

    Send Proof writes one .flcproof file and an unlock link. A recipient opens the link and chooses the file. The page unlocks it. They do not type a password. Auditors with a bare proof.json can use /verify. The file, signature, and public-record checks then run as three separate results. That is for a small proof. A large proof opens in the free FactLockFile desktop Viewer, coming for Mac, Windows and Linux once each version is tested.

  6. 06

    Scope of a passing check

    Verification confirms the exact file and the signed record. The full ceiling, including what a passing check does not establish, is on the threat model page and in the Terms of Service.

Recipients open /open; auditors with a bare proof.json use /verify.

Next step

Start the record at the lens.

Everything above begins with one capture inside the app.