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.1

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.1
File Size Uploaded Provenance Actions
oept-0.1.1.tar.gz 60.9 kB Without provenance Details for oept-0.1.1.tar.gz

Built distribution (wheel)

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

Total release size: 111.3 kB

Release files / oept-0.1.1.tar.gz

Download URL oept-0.1.1.tar.gz
Size 60.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9b626d6e82c332dcf53ff38eb9e17020a2f937b3ae3d4f57de01dc8620edf938
BLAKE2b-256 checksum
How to use checksums
4f053e0b397aeff6d6ee1c34d4d6700f6d4a85cc3d9350da839b5a469bcc0f75
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.1-py3-none-any.whl

Download URL oept-0.1.1-py3-none-any.whl
Size 50.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cdcc9c821985a7e0915f5fa7691d6430baab25ba772d7591ced17f1110465d83
BLAKE2b-256 checksum
How to use checksums
de739ba598b59a0ceb7442bae73223393acd3fbca29750864bb4fc38eb0169f9
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.1

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