Skip to main content

SignedShot

Signed at capture. Verified anywhere.

SignedShot is an open protocol that creates cryptographic evidence that photos and videos haven't been altered since capture—proof, not guessing.

The Problem

Digital manipulation is easy and getting easier. Anyone can alter an image in seconds, and there's no built-in way to prove otherwise.

This leads to an erosion of trust in visual media—and no way to prove "I didn't edit this."

SignedShot solves this by creating verifiable evidence at the moment of capture.

A Different Approach

SignedShot doesn't detect fakes. It proves authenticity at the moment of capture.

"Detection is an arms race. SignedShot focuses on authenticity at capture: cryptographic proof of where content came from, at the moment it was created."

The result: "This device captured this content at this time."

Anyone can verify independently. No account, no platform, no vendor lock-in.

How It Works: Two Layers

SignedShot uses two complementary layers of cryptographic proof:

LayerWhat it provesHow
Media IntegrityContent hasn't been modifiedDevice signs the content hash using Secure Enclave (P-256)
Capture TrustA legitimate device captured itServer verifies the device before capture via attestation

Together they prove: "This exact content was captured on a verified device, in an authorized session, and hasn't been modified since."

Detection vs Provenance

Detection (others)Provenance (SignedShot)
Analyzes after the factProves at capture time
Statistical guessingCryptographic certainty
Arms race with AIDoesn't matter how good AI gets
Requires expert analysisAnyone can verify

What You Can Do

Capture signed media

Use the iOS SDK to capture media with embedded cryptographic proof.

let session = try await signedShot.startSession()
let sidecar = try await signedShot.createSidecar(imageData: jpegData, session: session)

Verify media

Use the Python library or Rust CLI to verify any SignedShot capture.

pip install signedshot        # Python
cargo install signedshot-validator # or Rust
import signedshot
result = signedshot.validate_files("photo.sidecar.json", "photo.jpg")
print(result.valid) # True or False

Integrate with your app

Use the API directly to build custom integrations.

Get Started

Open Source

SignedShot is fully open source. Inspect, verify, or contribute:


"I don't believe any single company should be the arbiter of digital truth."