CapSeal is API-first, powered by our proprietary capture-integrity and verdict engines. 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. CapSeal's proprietary capture and anti-spoofing engine, emitting proofs your tools can verify.
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 ) // -> sealed asset + integrity assertion, signed 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>" }
Proofs export in the industry Content Credentials format, so your auditors and existing tools can verify them - while the engine that produces a valid seal remains exclusively CapSeal's.
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.
If you are the person who has to sign off on this going near a payment decision, this is the document to send them.
A formal treatment of the trust pipeline rather than a summary of it: the device-resident attestation and sealing protocol, the verification-time detection stack, the fusion calculus that produces a verdict, and the security arguments that bound an adversary's forgery advantage.
Theorem 3 states that display-mediated attacks are information-theoretically undetectable in the limit of a perfect re-imaging channel. We regard that honesty as a feature: no capture system can make photographing a screen logically impossible. The design goal is to make it economically irrational at scale.
Classification is public with parameters withheld. Concrete model parameterisations, decision thresholds, hardening schedules and red-team corpora stay proprietary - the architecture is published, the instantiation is not.
Technical whitepaper (PDF)Request developer keys and a test harness - seal a claim and inspect the proof in an afternoon.
Request sandbox access Contact sales