Trust no one. Verify the chain yourself.
ainfera-verify is the public, offline verifier for Ainfera AuditChains. It lets anyone — regulator, auditor, partner, curious developer — fetch an Agent's AuditChain and cryptographically verify it without trusting Ainfera or holding an Ainfera account.
This is the customer trust primitive behind Ainfera's audit-grade transparency claim: chain of custody you can check yourself.
pip install ainfera-verifyOr with Homebrew:
brew install ainfera/tap/verifyVerify a full AuditChain by Agent ID (fetches from the public read endpoint, then verifies offline):
ainfera-verify chain manweInspect a single AuditEvent:
ainfera-verify event manwe 1245Verify an offline Annex IV bundle export (use this for air-gapped review):
ainfera-verify bundle ./manwe-2026-05-19.zipFor every AuditEvent in the chain:
- Hash continuity —
previous_hashmatches the prior event'sevent_hash. - Event integrity —
event_hashis the SHA-256 ofprevious_hash || canonical_json(payload). - HMAC signature —
hmac_signaturevalidates against the key fingerprint published at the/.well-knownendpoint. - Sigstore signature — when present, validated against the Rekor transparency log.
If any check fails, the verifier reports the exact seq where the chain breaks.
- The CLI ships under Apache 2.0. The verification logic is auditable.
- After events are fetched, verification is fully offline — no network calls, no Ainfera dependency.
- The key material is published at
https://ainfera.ai/.well-known/ainfera-public-key.jsonand cached locally. - For air-gapped verification, download the key once or use a bundle export (which embeds the key).
The launch release of the AuditChain signs each event with HMAC-SHA256. This means:
- Hash continuity (checks 1 + 2) is independent of who holds the signing key and is fully verifiable offline. A tampered chain breaks at the exact
seqwhere the modification was introduced. This is the load-bearing security property. - HMAC signature (check 3) is a symmetric construction. Verifying it requires trusting that the key fingerprint Ainfera publishes at
/.well-known/ainfera-public-key.jsonis the same key used to sign events. There is no public/private key separation in HMAC mode.
Migration to Ed25519 asymmetric signing is planned for ainfera-verify v1.1. Once published, anyone will be able to verify HMAC and Ed25519 signatures independently, removing the key-fingerprint trust assumption. Progress tracker: https://github.com/ainfera-ai/verify/issues (filter ed25519-migration).
If your threat model requires asymmetric verification before v1.1 ships, you can pin the published key fingerprint out-of-band (e.g. via a regulator-attested document) and feed it to ainfera-verify --pinned-key-fingerprint.
Annex IV technical documentation requires verifiable evidence of system behavior. ainfera-verify bundle produces a pass/fail with the cryptographic chain of custody — sufficient evidence for a regulator's technical reviewer.
Don't want to install anything? Drop a bundle into verify.ainfera.ai. All verification runs in your browser.
Apache 2.0. See LICENSE.