Verification

Verify it yourself.

Signed certificates, hash-chained logs, and preserved run archives.

Offline verification

Verify outside the served interface

Requires the repo or installed package.

verify_certificate.py

AUDIT_URL=https://raw.githubusercontent.com/SDL-HQ/\
sir-firewall/main/proofs/latest-audit.json
curl -s "$AUDIT_URL" \
  | python3 tools/verify_certificate.py - --no-ledger

Expected output

NOT VERIFIED: certificate-to-ledger binding was skipped with --no-ledger.
OK: payload_hash and signature verify against key registry spec/pubkeys/key_registry.v1.json entry signing_key_id=sdl-2026-10-06; certificate integrity and signature are valid.

Reading that output

Two lines, and both matter. The first says what was not checked: a certificate fetched on its own has no ledger beside it, so the binding between the certificate and the run it describes cannot be established. --no-ledger is the only way to say so explicitly; without it the verifier exits 9, because a check that was not performed is not a check that passed.

The second line is what this does prove: payload integrity and signature validity against the key registry. Not policy correctness, not model safety, and not that the run behind the certificate is the run its counters describe.

The key id shown is whichever key signed the current proof, and it changes when the signing key rotates. To verify the binding as well, download a full run archive and pass its ledger, which is the command on the home page.

How it works

What a verifiable run binds together

Test suite binding

A run binds to a test suite through the suite hash.

Policy binding

A run binds to a policy configuration through the policy hash or version.

Log trail

A run produces an immutable log trail through the final ITGL hash.

Offline-checkable certificate

The published certificate is cryptographically signed and can be verified offline.