Verify the verdict without us.

Every AGDA Intervention Readiness verdict ships with a signed JSON regulator bundle. The verify command runs anywhere. You do not depend on us to read what we produced for you.

  • Deterministic
  • Signed
  • Independently verifiable

What's in the bundle.

A single canonical JSON document. Ed25519 signature over the whole. Seven fields. Each one binds the Intervention Readiness verdict to a specific cryptographic state.

{
  "engineVersion":  "1.2.0",
  "engineHash":     "sha256:b2c8a1d...e7f2916",
  "inputHash":      "sha256:47a2e19...cd8b103",
  "outputHash":     "sha256:91f4c02...a6d0d4e",
  "keyId":          "2026-04-22-1e7c3c2c",
  "scoredAt":       "2026-05-14T09:47:12.334Z",
  "signature":      "ed25519:M4Gb2ZqAfD...pLQX7w"
}
engineVersion
The AGDA engine semver. Pinned at the assessment.
engineHash
SHA-256 of the engine binary. Locked at signature.
inputHash
SHA-256 of the canonical input record. Includes the fact model.
outputHash
SHA-256 of the canonical output. The Failure Exposure Report.
keyId
Date-stamped Ed25519 key identifier. Committed to the public key chain.
scoredAt
ISO-8601 UTC timestamp. The moment of attestation.
signature
Ed25519 signature over the canonical bundle.

How to verify.

A single command. A pinned key ID. A standalone verifier the supervised entity does not control.

$ agda-verify --key-id 2026-04-22-1e7c3c2c --bundle ./bundle.json
verifying engineHash ........... ok
verifying inputHash ............ ok
verifying outputHash ........... ok
verifying signature ............ ok
verdict: AFTER_IMPACT
scored:  2026-05-14T09:47:12.334Z
engine:  agda v1.2.0 (b2c8a1d...e7f2916)
key:     2026-04-22-1e7c3c2c

The verifier is a single static binary. Source is published. Build from source if your environment requires it. The verifier never contacts our infrastructure.

The public key chain.

Every signing key is rotated on a published schedule. The public component of each key is committed to a public repository before it is used to sign anything. Signing history is append-only.

Key registry
github.com/intervene-group/agda-keys
Signing log
engine-registry.jsonl. Hash-chained. Every signature recorded.
Rotation cadence
Quarterly. Emergency rotation on key compromise, with public attestation.
Revocation
Signed revocation entries in the registry. Verifier honours revocations automatically.

Three audiences. One verify path.

The same bundle. The same command. The same answer in three places that would otherwise have to trust each other.

  • Audit committee.

    Confirm that the verdict the chair is being asked to rely on is bound to a specific engine version and a specific set of inputs. No vendor trust required.

  • Internal audit.

    Run the verifier on a known-good build of agda-verify in your own environment. Compare hashes against the bundle. Pass or fail is mechanical.

  • Regulator.

    Take the bundle from the supervised entity. Verify in the regulator estate. Independent of any conversation with us or with the entity.

Why this is the load-bearing claim.

Big-4 advisories produce PDFs. GRC platforms produce dashboards. Neither is reproducible. Neither is independently verifiable. The same inputs do not always produce the same output, and the recipient must trust the producer to read what the producer produced.

AGDA's verify path is the property that makes an Intervention Readiness verdict defensible in an examination, not just credible in a boardroom. If you cannot verify in your own environment, the artefact has not done its job.

Opinion is not reproducible. A signed computation is.

Want to see what a verdict looks like?

The sample verdict includes a redacted attestation envelope. The assessment ships a full bundle bound to your own assessed system.