Prototype · Module EPE

Evidence Protocol Engine

The standalone validation and scoring core of CivilCamAI. Drop a real capture below and the engine reads the actual bytes: SHA-256 content addressing, magic-number container parsing, EXIF/ISO-BMFF provenance extraction, 18 deterministic rules across six weighted categories, and a hash-linked custody chain terminating in a seal. Nothing on this page is simulated — signals that cannot be produced client-side are reported as unavailable with the production service that must supply them.

engine EPE-1.0.0ruleset ccv-ruleset-1.0.018 rules · 100 ptspure functions · reproducibleportable to server runtime
Drop real captures here

Photos, video, audio or documents. Files never leave the browser — extraction and scoring run locally against the same code a server deployment would execute.

No artifacts evaluated yet.

Ruleset specification
Byte Integrity25 pts

The file is complete, internally consistent, and cryptographically addressable.

  • INT-01 Content-addressable digest · 10
  • INT-02 Container structure intact · 8
  • INT-03 Declared type matches actual bytes · 4
  • INT-04 Not a duplicate of a prior artifact · 3
Capture Provenance20 pts

The artifact can be traced to a capture device and capture pipeline.

  • PRV-01 Capture device identified · 8
  • PRV-02 Embedded metadata block present · 5
  • PRV-03 Hardware attestation token · 7
Temporal Anchoring18 pts

When the artifact was created, and how strongly that time is anchored.

  • TMP-01 Capture timestamp present · 8
  • TMP-02 Timestamp is internally plausible · 5
  • TMP-03 Trusted time anchor · 5
Geospatial Anchoring15 pts

Where the artifact was captured, and whether the location is corroborated.

  • GEO-01 Coordinates embedded · 9
  • GEO-02 Coordinates within valid range · 3
  • GEO-03 Location corroborated by a second source · 3
Manipulation Signals12 pts

Evidence of editing, re-encoding, or synthetic generation.

  • MAN-01 No editing-software signature · 6
  • MAN-02 Metadata not wholesale stripped · 3
  • MAN-03 Synthetic / deepfake screening · 3
Chain of Custody10 pts

Unbroken, hash-linked handling from capture to seal.

  • CUS-01 Hash-linked custody chain built · 6
  • CUS-02 Countersigned by a custodian key · 4
Determinism contract
Rules are pure functions of (facts, context). No clock reads, no randomness, no I/O inside a rule — the evaluation clock is injected. Every seal records rulesetVersion and a determinismDigest over the ruleset, the asset digest and every rule outcome, so a re-run years later is provably identical.
Port path for the dev team
src/lib/protocol-engine/ has no DOM dependency outside browser.ts. Move extract.ts / rules.ts / engine.ts into the ingest worker unchanged, swap the media probe for ffprobe, and attach the four REQUIRED-BUILD services (device attestation, RFC 3161 time, location corroboration, synthetic-media classifier) as additional rule inputs.