Offline verifier for Ainfera AuditChains. Trust no one — verify the chain yourself.
Project description
ainfera-verify
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.
Install
pip install ainfera-verify
Or with Homebrew:
brew install ainfera/tap/verify
Usage
Verify a full AuditChain by Agent ID (fetches from the public read endpoint, then verifies offline):
ainfera-verify chain manwe
Inspect a single AuditEvent:
ainfera-verify event manwe 1245
Verify an offline Annex IV bundle export (use this for air-gapped review):
ainfera-verify bundle ./manwe-2026-05-19.zip
What it verifies
For 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 Ainfera's published public key. - Sigstore signature — when present, validated against the Rekor transparency log.
If any check fails, the verifier reports the exact seq where the chain breaks.
Trust model
- 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.
- Ainfera's HMAC public key 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).
EU AI Act Annex IV
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.
Web version
Don't want to install anything? Drop a bundle into verify.ainfera.ai. All verification runs in your browser.
License
Apache 2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ainfera_verify-0.1.0.tar.gz.
File metadata
- Download URL: ainfera_verify-0.1.0.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2efc24acafae7241ffc3d648186de367a0f363f6e8df3b1ae30e2a5c9f28d43
|
|
| MD5 |
e4bba84b778eeab48bf170478629bf38
|
|
| BLAKE2b-256 |
44f8ae2eeeaa0b23dbc513c9753c51ed5c429b789c4994c3f5fd4ec09f68b53f
|
Provenance
The following attestation bundles were made for ainfera_verify-0.1.0.tar.gz:
Publisher:
release.yml on ainfera-ai/verify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ainfera_verify-0.1.0.tar.gz -
Subject digest:
e2efc24acafae7241ffc3d648186de367a0f363f6e8df3b1ae30e2a5c9f28d43 - Sigstore transparency entry: 1531782519
- Sigstore integration time:
-
Permalink:
ainfera-ai/verify@8b8476d0a5cc762b78063e276c61b456e7c1c835 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ainfera-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b8476d0a5cc762b78063e276c61b456e7c1c835 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ainfera_verify-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ainfera_verify-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774a2223b5f27e7286c7e266db705b0710c5c0b14ec1db1f642ae048fe9e0d7e
|
|
| MD5 |
58bb67697c9a9689773a47e6b033f5e4
|
|
| BLAKE2b-256 |
421ee1d9d3af57846a73272590bb724b61736a2c24598f397879a9ac002a28c9
|
Provenance
The following attestation bundles were made for ainfera_verify-0.1.0-py3-none-any.whl:
Publisher:
release.yml on ainfera-ai/verify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ainfera_verify-0.1.0-py3-none-any.whl -
Subject digest:
774a2223b5f27e7286c7e266db705b0710c5c0b14ec1db1f642ae048fe9e0d7e - Sigstore transparency entry: 1531782633
- Sigstore integration time:
-
Permalink:
ainfera-ai/verify@8b8476d0a5cc762b78063e276c61b456e7c1c835 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ainfera-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b8476d0a5cc762b78063e276c61b456e7c1c835 -
Trigger Event:
push
-
Statement type: