GeoClear Offline Operational Evidence Record Verifier

This page verifies an Evidence Bundle entirely in your browser. No network calls during verification, once the 3 inputs below are loaded, GeoClear's servers play no role in the result. Disconnect your WiFi after loading the files and the verification still works.

✓ Bundle received from the Drone Dispatch demo. The 3 inputs below were auto-filled with the operational evidence record that was just issued in the demo. Verification is running automatically, scroll down to see the result panel. To re-test with the same bundle, click Verify offline at the bottom.
What this verifies: that the Evidence Bundle GeoClear issued has not been tampered with and was issued by a GeoClear trust-boundary key. It does NOT verify the underlying real-world fact (e.g. whether a drone really flew where the bundle claims), only that the bundle is cryptographically intact and authentically issued.
1. Drop the 3 files from your Evidence Bundle ZIP

Unzip the bundle you downloaded (the ZIP from the Drone Dispatch demo, or any GeoClear Evidence Bundle). Drop each of the 3 files into the matching slot below, or paste the contents directly.

What it is: the operational evidence record itself, a single line of base64-url-encoded text (a "JWS Compact"). It contains the timestamp, the signing-key identifier, and a SHA-256 hash of the canonical payload. What we verify: the signature is valid against the public key in the verification material (slot 3).
What it is: the exact JSON bytes that the record's signature commits to. For drone dispatch this captures the dispatch_id, the 4 Merkle leaves (corridor + camera frame + custody handoff + LAANC clearance), and the issuance time. What we verify: the SHA-256 hash of these bytes matches the resp_hash claim inside the record. If a single byte was tampered with after issuance, the hash diverges and verification rejects.
What it is: GeoClear's published public-signing-key set in JWKS format, a JSON object with a keys array, each entry naming a kid (key id) and the public key material. Where to get it: fetch the current set from /.well-known/jwks.json, or use a copy you saved from there. The bundle's own jwks-snapshot.json records the key at signing time, but whoever made the bundle chose it, so on its own it shows only that the record matches the bundle's key, not that GeoClear issued it. What we verify: the record's kid matches an entry in this set, and the signature checks out against that entry's public key.
2. Key-transparency manifest (required for production-trust verdict)

The manifest binds the public-key set to a cosign-verified commit so reviewers can cross-check that the keys shipped with the bundle match what GeoClear actually published at issuance time. Without this binding the verifier returns a signature-valid-but-untrusted verdict, never valid-production.