Skip to content
Verify
Provenance

Photos and video you can prove are real

Capture media inside your app with cryptographic provenance, tamper-evident metadata, and chain-of-custody you can hand to regulators or courts.

  • C2PA-compatible content credentials
  • Server-signed capture timestamps
  • GPS, device, and orientation metadata sealed
  • Tamper detection on every later view
Get started
C2PA
Standards aligned
100%
Capture coverage
<200ms
Sign latency
C2PA
Standards aligned
100%
Capture coverage
<200ms
Sign latency
99.99%
Verifier uptime
Capabilities

Built for production-grade trust

Each capability ships with monitoring, audit trails, and a typed SDK. Composable — pick what you need, leave the rest.

Signed at the lens

Photos are signed inside the SDK before they leave the device, with no opportunity for tampering.

Geolocation seal

GPS coordinates and timestamps are sealed into the manifest and verified server-side.

Backed by your storage

Send sealed media to your S3 or GCS — we keep only the verification manifest.

Verifier API

Any consumer can re-verify provenance via API or a public verifier link.

How it works

From integration to verified result

A consistent flow whether you call via SDK, REST API, or trigger via dashboard.

  1. 1

    Capture

    User takes a photo or video inside your app.

  2. 2

    Sign

    SDK seals metadata and content hash with our keys.

  3. 3

    Store

    Sealed asset uploads to your storage of choice.

  4. 4

    Verify

    Anyone can verify the manifest at any later time.

Use cases

Where teams deploy this

Patterns we see across regulated industries and high-velocity marketplaces.

Field inspections

Insurance, logistics, and field-service evidence with sealed location.

Underwriting evidence

Photos of properties, vehicles, or goods underpinning a policy quote.

Legal & forensic

Defensible chain-of-custody for media headed to litigation.

Integrate in minutes

Production-ready SDKs and a typed REST API

Drop into your stack with a single dependency. Typed responses, idempotency keys, and structured errors out of the box.

capture.tsxts
import { SecureCamera } from '@verify/sdk-web';

<SecureCamera
  geotag
  audit={{ purpose: 'property_inspection', caseId }}
  onCapture={async ({ blob, manifest }) => {
    await uploadToS3(blob);
    await api.attachManifest(caseId, manifest);
  }}
/>
FAQ

Frequently asked

Don't see your question? Reach out — we usually respond within a business day.

Ready to roll out secure media capture?

Spin up a sandbox in minutes, or talk to our team about a tailored rollout for your compliance and volume requirements.

Start free