CapSeal is API-first and built on open provenance standards your security team already trusts. Drop the SDK into the claims app you already run, call one verify endpoint, and route on the verdict. No blockchain, no rip-and-replace, no new app for your customer.
Native iOS (Swift, iOS 15+) and Android (Kotlin, API 26+), plus a web fallback. Wraps the open C2PA mobile bindings and adds the anti-spoofing integrity module.
One REST call takes a sealed asset and returns a verdict, an integrity score, and a proof object. Idempotent, low-latency, called at claim intake.
Subscribe to verdicts to drive routing in your claims system, or stream them to your fraud stack and the intelligence layer.
Capture on the device, verify anywhere. Every download below works right now, and the verification tooling is published deliberately: a verdict you have to take on trust is worth very little, so we ship the thing that lets you re-run it without us.
Verify where a file came from in one call. Needs a free API key - create one instantly, no card. This is the library behind the public checker.
npm i @capseal/sdk
The verifier compiled to wasm32. Replay a proof object in a browser tab, a Worker or Node. Imports nothing, so it cannot call out - and you can check that yourself.
npm i https://capseal.ai/sdk/capseal-wasm-0.1.0.tgz
The weakest trust tier, and honest about it. Captures in a browser where no app can be installed, and reports plainly how little it was able to verify.
npm i https://capseal.ai/sdk/capseal-capture-web-0.1.0.tgz
Secure Enclave signing, App Attest, and the integrity module: multi-frame parallax against the IMU, depth relief, moire and display-geometry analysis, jailbreak and hooking detection.
.package(url: "https://github.com/uozef/capseal.ai", from: "0.1.0")
StrongBox-backed keys with hardware attestation, Play Integrity, and the same signal catalogue as iOS - plus virtual-camera detection, which Android needs far more.
implementation("ai.capseal:capturekit:0.1.0")
Sealing, verification and the proof objects, in the language they were written in. The same crates compile to the wasm module and to the CLI a carrier runs offline.
capseal-verify = { git = "https://github.com/uozef/capseal.ai" }
The SDK seals each capture on-device using hardware-backed keys before anything touches the network.
// iOS - seal a capture with the CapSeal SDK import CapSeal let sealed = try await CapSeal.capture( claimId: "MTR-4471", attestation: .hardware // Secure Enclave / StrongBox ) // -> signed C2PA asset + integrity assertion, sealed on-device
Send the sealed asset to the verify endpoint and route on the verdict class.
# Server - verify a sealed capture, get a verdict POST https://api.capseal.ai/v1/verify Authorization: Bearer $CARRIER_KEY { "asset": "<sealed-asset>", "line": "motor" } # <- response { "verdict": "AUTO_PAY", "class": "attested-genuine", "integrity": 0.98, "proof": "<signed-proof-object>" }
Seals use the open C2PA v2.2+ manifest format, backed by Adobe, Microsoft and the BBC. Verifiable with any C2PA tool, not just ours.
Device trust comes from Apple App Attest / DeviceCheck and Google Play Integrity - the same primitives your banking app relies on.
Every proof object re-verifies without calling CapSeal. Your infrastructure stays the source of truth in a dispute.
Request developer keys and a test harness - seal a claim and inspect the proof in an afternoon.
Request sandbox access Contact sales