Skip to main content

Open Evidence Provenance Toolkit (OEPT)

Small, dependency-light infrastructure for evidence provenance: prove which exact source version produced which claim, and let any third party verify the package offline — without trusting your servers.

source bytes → content digest → provenance metadata → portable bundle → offline verification

The problem

Software and data pipelines transform source files through parsing, normalization, mappings, validation, and deterministic controls. Downstream users — auditors, integrators, regulators, customers — frequently cannot independently determine which source object produced a claim, which exact version was used, which transformation ran, when it was observed, whether the source changed later, or whether an exported package was modified.

OEPT provides reusable primitives for that chain: content-addressed evidence objects, append-only observation history, deterministic canonicalization, portable signed bundles, and an offline verifier. The project emerged from work on evidence-intensive systems including financial and regulatory workflows, but OEPT itself is domain-neutral: it works with arbitrary data files.

Trust boundary (read first)

OEPT proves: bundle structure, member presence, SHA-256 integrity, manifest integrity, safe archive structure, Ed25519 signature validity, supplied trusted-key identity.

OEPT never claims: factual truth, commercial truth, legal validity, compliance approval, fraud detection, eIDAS qualification, timestamps, certificate chains, or malware-free status.

Quickstart

pip install -e .
oept verify examples/valid-unsigned.zip

Expected output:

Bundle: examples/valid-unsigned.zip
Specification: oept-bundle/0.1
Structure: VALID
Member digests: VALID
Signature: NOT PRESENT
Result: VALID_UNSIGNED

Technical verification only — not a legal, compliance, or factual conclusion.

Build a bundle from a prepared directory (containing facts.json, provenance.json, and evidence/):

oept bundle examples/evidence-project --output my-evidence.zip
oept verify my-evidence.zip --json

Signed bundles:

oept bundle DIR --output signed.zip --sign my-key.pem --key-id ops-2026
oept verify signed.zip --trust-keys trust-keys.json

Trust roots always come from --trust-keys. Keys embedded in a bundle are identification labels only and are never trusted automatically.

Bundle anatomy (oept-bundle/0.1)

Required: manifest.json, facts.json, provenance.json, evidence/. Optional: metadata/, rule_traces.json, signatures/manifest.sig, signatures/key-info.json, SUMMARY.txt. Full rules: spec/bundle-spec.md.

Verification statuses: VALID_SIGNED, VALID_UNSIGNED, HASH_MISMATCH, MISSING_FILE, UNEXPECTED_FILE, SIGNATURE_INVALID, SIGNATURE_KEY_UNKNOWN, UNSUPPORTED_SPEC_VERSION, UNSAFE_ARCHIVE, MALFORMED_BUNDLE.

Relationship to existing standards

OEPT complements rather than replaces: in-toto, SLSA, Sigstore, W3C PROV, RO-Crate, SCITT, SPDX, CycloneDX. None of these today gives field-level source-bytes→claim lineage in one stdlib-friendly offline bundle without a daemon, OIDC, RDF store, or log operator — that narrow gap is OEPT's reason to exist. Interoperability adapters (in-toto statement emission, PROV export) are planned grant work; v0.1 claims no compatibility beyond its own spec. See docs/roadmap.md.

Roadmap

  • v0.1 (this release): schemas, SDK core (canonical/hash/bundle/verify), CLI, conformance corpus, specs.
  • Grant work (planned): EvidenceStore (SQLite), source-mapping profiles, rule-trace emitter, snapshot pinning, W3C PROV + in-toto exporters, transparency-log anchoring study.

Security reporting

See SECURITY.md. Until a dedicated project security address is published, report privately through the repository hosting platform's security advisory mechanism.

License

Apache-2.0. See LICENSE.

Metadata

Release files for oept 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oept 0.1.2
File Size Uploaded Provenance Actions
oept-0.1.2.tar.gz 69.2 kB Without provenance Details for oept-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for oept 0.1.2
File Interpreter ABI Platform Actions
oept-0.1.2-py3-none-any.whl Python 3 none any Details for oept-0.1.2-py3-none-any.whl

Total release size: 126.2 kB

Release files / oept-0.1.2.tar.gz

Download URL oept-0.1.2.tar.gz
Size 69.2 kB
Tags Source
SHA-256 checksum
How to use checksums
69b9769f0abb5086f880f1ad3e64558b5b9c7eba57e6ff57c679f107321da6b8
BLAKE2b-256 checksum
How to use checksums
c480fc460ea80e51b692c81246ec3867fe4eafd63f9558b07efdd2dea85fcde4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / oept-0.1.2-py3-none-any.whl

Download URL oept-0.1.2-py3-none-any.whl
Size 57.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df99687fc510d0dd8121f69bbfc33add86295b67ede40c18027b2ba9b62d35fe
BLAKE2b-256 checksum
How to use checksums
1f2e73320eda6dc8271f316fdf9375b8306e07ba8342badeb0f1da5cf1c21fdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Security for oept 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page