provetrail
A verifier for Provetrail, an open standard for verifiable execution provenance.
Status: draft (
0.2.x). This package verifies the integrity tier of a sealed run record: the COSE_Sign1 checkpoint signature and the RFC 9162 Merkle root over the carried events. The on-the-wire format is not frozen until specification v0.1.0 (the spec's version, not this package's), so do not yet rely on it as a production security control.
What Provetrail is
A portable, third-party-verifiable record of what an agent did, in what order, and under what governance, anchored to an append-only, tamper-evident event log.
- Specification and conformance suite: https://github.com/ionalpha/provetrail
- Project home: https://provetrail.org
Install
pip install provetrail
Use
from provetrail import verify_run, VerifyError
record = open("run.cbor", "rb").read()
public_key = bytes.fromhex("...") # 32-byte Ed25519 public key
try:
result = verify_run(record, public_key)
print(f"verified, {len(result.events)} events")
except VerifyError as e:
print(f"not verified: {e}")
Or from the command line:
python -m provetrail run.cbor <hex-public-key>
# or, once installed:
provetrail run.cbor <hex-public-key>
verify_run follows the carry-the-bytes rule: it rehashes the exact bytes the record carries and never re-serializes. The conformance suite asserts identical verdicts and registered failure codes across this client, the npm and Rust clients, and the Go reference verifier, so agreement on the same record is tested, not assumed. It fails closed with a registered failure code (VerifyError.code) on every defect: container framing, protected-header claims (algorithm -19, the checkpoint content type, key id), signature, checkpoint-payload form, size, and root.
Conformance
The verifier is checked against the published conformance vectors:
pip install provetrail[test]
pytest
The cryptographic vectors live in vectors/crypto. This client verifies the integrity tiers (L1-L3) against conformance suite 0.1.0-draft; it does not enforce L4 (governance and ground truth), so an L4-claiming record needs an L4 verifier. The reference verifier covering every tier (L1-L4; in the documented shorthand, integrity = L1-L3 and governance + ground truth = L4) ships in the Go runtime at ionalpha/flynn.
License
Apache-2.0. The specification prose is CC-BY-4.0. Provetrail is a trademark of Ion Alpha.
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 provetrail-0.3.0.tar.gz.
File metadata
- Download URL: provetrail-0.3.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2d65397376c1bc2d3046895f875ae989871ff53969ff4c3f6c240b64a9356e6
|
|
| MD5 |
bac8e9a104774667cbfbf1512e921212
|
|
| BLAKE2b-256 |
0c163b3941ae4e59a9b1554f7515f2b2108479572523b41aceda622be77dfa60
|
Provenance
The following attestation bundles were made for provetrail-0.3.0.tar.gz:
Publisher:
release-pypi.yml on ionalpha/provetrail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
provetrail-0.3.0.tar.gz -
Subject digest:
e2d65397376c1bc2d3046895f875ae989871ff53969ff4c3f6c240b64a9356e6 - Sigstore transparency entry: 2305851271
- Sigstore integration time:
-
Permalink:
ionalpha/provetrail@263d2d90a483f198f0d937813f469ce16493fadf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ionalpha
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@263d2d90a483f198f0d937813f469ce16493fadf -
Trigger Event:
push
-
Statement type:
File details
Details for the file provetrail-0.3.0-py3-none-any.whl.
File metadata
- Download URL: provetrail-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
996cd407a3cfd5c872b646b9a0f3986210b6f70510dfe8edd92ccb85678f0edb
|
|
| MD5 |
cb0f6d2c965bea4cf9fa59e231ad3871
|
|
| BLAKE2b-256 |
656bff4eb0a511d349ade6d0ca39a89892a5fde9e26058088b0bbb7997acd250
|
Provenance
The following attestation bundles were made for provetrail-0.3.0-py3-none-any.whl:
Publisher:
release-pypi.yml on ionalpha/provetrail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
provetrail-0.3.0-py3-none-any.whl -
Subject digest:
996cd407a3cfd5c872b646b9a0f3986210b6f70510dfe8edd92ccb85678f0edb - Sigstore transparency entry: 2305851360
- Sigstore integration time:
-
Permalink:
ionalpha/provetrail@263d2d90a483f198f0d937813f469ce16493fadf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ionalpha
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@263d2d90a483f198f0d937813f469ce16493fadf -
Trigger Event:
push
-
Statement type: