Open format for a governed AI inference decision receipt (decision, Λ status, measured-or-null energy, hash chain, DSSE) + a dependency-free offline verifier. Receipt-tier trust: honest, replayable, not zero-knowledge. By SZL Holdings.
0
stars
23
commits
Python
primary language
Sep 8, 2026
updated
Control before action. Evidence after.
Part of the szl-holdings estate · Product: a-11-oy.com · Proof: a11oy.net
An open format for the governance decision receipt an AI runtime emits — plus an offline verifier built on pinned, maintained crypto libraries (no hand-rolled DSSE/ECDSA).
Built and maintained by SZL Holdings. Apache-2.0.
A governed inference receipt is the small, replayable, hash-chained record that a governed AI runtime produces for one governed action (e.g. an inference): what it decided, the Λ governance-floor status, whether energy was actually measured, and a signed envelope that lets anyone re-check it offline.
This repo publishes that receipt as a documented, adoptable format so an outside party can verify SZL receipts (and model their own) with one command and two pinned dependencies (in-toto-attestation 0.9.3 and cryptography 50.0.1, per the v11 doctrine §7.1).
There is no single "trustworthy AI" primitive; there is a spectrum with real cost/guarantee trade-offs:
| Tier | Example tech | What it proves | Cost |
|---|---|---|---|
| Proof tier | zkML (e.g. zkonduit/ezkl) | Zero-knowledge proof that an output came from a specific model on a specific input | Very high (proof-gen, GPU-hours) |
| Hardware tier | TEE / confidential inference | Attested execution inside a trusted enclave | Medium–high; hardware-bound |
| Receipt tier — this repo | signed, hash-chained decision receipts | An honest, replayable audit record of what the governed runtime decided | Low; deployable today |
A receipt is explicitly NOT a zero-knowledge proof and NOT a proof of computation. It does not prove the model ran correctly or that an output is "true". It is a signed, tamper-evident record of a governance decision and its bound content hashes. That honesty is the point.
The gap this fills: the supply-chain world has standardised provenance (sigstore/model-transparency, SLSA, in-toto) and the guardrails world ships decision models, but there is no clean open standard for a runtime governance decision receipt. This is that format.
The schema (schema/governed-receipt.schema.json, JSON Schema draft 2020-12) is grounded in the real receipts SZL already publishes — see examples/. Core fields:
decision — the verdict (allow / deny / block / review / abstain). deny/block express the deny-by-default honest-blocked posture (szl-blocked).lambda (optional) — the Λ governance-floor status. SZL keeps the honest label "Λ = Conjecture 1 — never green": the unconditional Λ-uniqueness conjecture is machine-checked open (see lutar-lean / szl-lambda-gate), so a receipt must never report Λ as "proven".energy — { joules, label }. Joules are never fabricated: with no live meter, joules is null and label is UNAVAILABLE, with an honest reason in evidence.ts — emission time (Unix seconds float, as in real receipts, or ISO-8601).payload_digest — SHA-256 of the underlying governed payload (the content itself is intentionally not embedded).prev / digest / seq — the hash chain. Each receipt's prev equals the previous receipt's digest; genesis uses 64 zeros at seq 0.dsse / envelope: a signed DSSE envelope binding the payload via the DSSE PAE, with SZL honesty extensions (_pae_sha256, honesty, verify_key_url).otel (optional) — an OpenTelemetry span link (see vsp-otel).Fields not present in today's real receipts (e.g. an inline numeric Λ score, otel) are defined as optional spec extensions — the schema reflects reality and never invents data.
Offline (no network). Two pinned maintained dependencies — no hand-rolled crypto:
pip install -r requirements.txt
python verify.py examples/a11oy-khipu-chain.json
The verifier, for each receipt:
schema/governed-receipt.schema.json;sha256(DSSE PAE) == _pae_sha256 for signed khipu/lake receipts, or sha256(payload) == payloadSha256 for readiness receipts (this matches SZL's own documented how_to_verify);prev == previous.digest, contiguous seq, genesis is 64 zeros);in-toto-attestation 0.9.3 bindings (ITE-6 minimums); and--verify-key cosign.pub, cryptographically verifies every envelope signature — ECDSA P-256 SHA-256 over the DSSE PAE of the decoded payload bytes, via cryptography 50.0.1:python verify.py --verify-key tests/fixtures/cosign.pub examples/a11oy-khipu-chain.json
Without --verify-key the signature check is reported as SKIP — never as a pass. It prints a clear PASS / FAIL per receipt with reasons, and exits non-zero on any failure.
Honesty note: the verifier does not re-derive the runtime's internal
digestserialization (that is internal to the emitting runtime). It verifies the relations an outside party can independently reproduce — the DSSE PAE content hash, the payload-bytes hash, theprev ↔ digestchain, and (with a public key) the envelope signature. The same signatures also verify upstream withcosign verify-blob --key cosign.pub; the public key is linked from each receipt'sverify_key_urland vendored for offline use attests/fixtures/cosign.pub.
Prefer to click? Paste any receipt into the live verifier Space — SZLHOLDINGS/governed-receipt-verifier — which runs this exact verify.py in your browser (via Pyodide, no upload). Or run against the benchmark corpus SZLHOLDINGS/governed-receipts-bench — real receipts (must PASS) plus labeled tampers (must FAIL).
Every file in examples/ is drawn factually from public SZL datasets — nothing is fabricated:
| File | Source dataset | Shows |
|---|---|---|
a11oy-khipu-chain.json | SZLHOLDINGS/a11oy-verifiable-corpus (receipts/) | a 5-receipt signed hash chain (seq 0→4) |
lake-inference-receipt.json | SZLHOLDINGS/a11oy-verifiable-corpus (lake/) | Legacy negative example: decision + energy exist only in the clear wrapper and therefore verify as UNBOUND / FAIL |
readiness-audit-receipt.json | SZLHOLDINGS/readiness-runs | unsigned envelope with payloadSha256 |
daily-activity-receipt.json | SZLHOLDINGS/szl-evidence | HMAC-stub daily activity receipt |
python -m unittest discover -s tests -v
Valid examples must pass; tampered fixtures (tests/fixtures/) must fail — a flipped payload byte breaks the content hash, and a rewritten prev breaks the chain.
SZLHOLDINGS/governed-receipt-verifier — paste a receipt, verify it in your browser (runs this verify.py via Pyodide).SZLHOLDINGS/governed-receipts-bench — real receipts (PASS) + labeled tampers (FAIL) for conformance testing.szlholdings-a11oy.hf.spacea11oy-verifiable-corpus, readiness-runs, szl-evidence) and the Governed Kernels collection (szl-lambda-gate, szl-blocked, governed-inference-meter, …).Apache-2.0 — see LICENSE.
23 commits
Python
100.0%
Open format for a governed AI inference decision receipt (decision, Λ status, measured-or-null energy, hash chain, DSSE) + a dependency-free offline verifier. Receipt-tier trust: honest, replayable, not zero-knowledge. By SZL Holdings.
0
stars
23
commits
Python
primary language
Sep 8, 2026
updated
Control before action. Evidence after.
Part of the szl-holdings estate · Product: a-11-oy.com · Proof: a11oy.net
An open format for the governance decision receipt an AI runtime emits — plus an offline verifier built on pinned, maintained crypto libraries (no hand-rolled DSSE/ECDSA).
Built and maintained by SZL Holdings. Apache-2.0.
A governed inference receipt is the small, replayable, hash-chained record that a governed AI runtime produces for one governed action (e.g. an inference): what it decided, the Λ governance-floor status, whether energy was actually measured, and a signed envelope that lets anyone re-check it offline.
This repo publishes that receipt as a documented, adoptable format so an outside party can verify SZL receipts (and model their own) with one command and two pinned dependencies (in-toto-attestation 0.9.3 and cryptography 50.0.1, per the v11 doctrine §7.1).
There is no single "trustworthy AI" primitive; there is a spectrum with real cost/guarantee trade-offs:
| Tier | Example tech | What it proves | Cost |
|---|---|---|---|
| Proof tier | zkML (e.g. zkonduit/ezkl) | Zero-knowledge proof that an output came from a specific model on a specific input | Very high (proof-gen, GPU-hours) |
| Hardware tier | TEE / confidential inference | Attested execution inside a trusted enclave | Medium–high; hardware-bound |
| Receipt tier — this repo | signed, hash-chained decision receipts | An honest, replayable audit record of what the governed runtime decided | Low; deployable today |
A receipt is explicitly NOT a zero-knowledge proof and NOT a proof of computation. It does not prove the model ran correctly or that an output is "true". It is a signed, tamper-evident record of a governance decision and its bound content hashes. That honesty is the point.
The gap this fills: the supply-chain world has standardised provenance (sigstore/model-transparency, SLSA, in-toto) and the guardrails world ships decision models, but there is no clean open standard for a runtime governance decision receipt. This is that format.
The schema (schema/governed-receipt.schema.json, JSON Schema draft 2020-12) is grounded in the real receipts SZL already publishes — see examples/. Core fields:
decision — the verdict (allow / deny / block / review / abstain). deny/block express the deny-by-default honest-blocked posture (szl-blocked).lambda (optional) — the Λ governance-floor status. SZL keeps the honest label "Λ = Conjecture 1 — never green": the unconditional Λ-uniqueness conjecture is machine-checked open (see lutar-lean / szl-lambda-gate), so a receipt must never report Λ as "proven".energy — { joules, label }. Joules are never fabricated: with no live meter, joules is null and label is UNAVAILABLE, with an honest reason in evidence.ts — emission time (Unix seconds float, as in real receipts, or ISO-8601).payload_digest — SHA-256 of the underlying governed payload (the content itself is intentionally not embedded).prev / digest / seq — the hash chain. Each receipt's prev equals the previous receipt's digest; genesis uses 64 zeros at seq 0.dsse / envelope: a signed DSSE envelope binding the payload via the DSSE PAE, with SZL honesty extensions (_pae_sha256, honesty, verify_key_url).otel (optional) — an OpenTelemetry span link (see vsp-otel).Fields not present in today's real receipts (e.g. an inline numeric Λ score, otel) are defined as optional spec extensions — the schema reflects reality and never invents data.
Offline (no network). Two pinned maintained dependencies — no hand-rolled crypto:
pip install -r requirements.txt
python verify.py examples/a11oy-khipu-chain.json
The verifier, for each receipt:
schema/governed-receipt.schema.json;sha256(DSSE PAE) == _pae_sha256 for signed khipu/lake receipts, or sha256(payload) == payloadSha256 for readiness receipts (this matches SZL's own documented how_to_verify);prev == previous.digest, contiguous seq, genesis is 64 zeros);in-toto-attestation 0.9.3 bindings (ITE-6 minimums); and--verify-key cosign.pub, cryptographically verifies every envelope signature — ECDSA P-256 SHA-256 over the DSSE PAE of the decoded payload bytes, via cryptography 50.0.1:python verify.py --verify-key tests/fixtures/cosign.pub examples/a11oy-khipu-chain.json
Without --verify-key the signature check is reported as SKIP — never as a pass. It prints a clear PASS / FAIL per receipt with reasons, and exits non-zero on any failure.
Honesty note: the verifier does not re-derive the runtime's internal
digestserialization (that is internal to the emitting runtime). It verifies the relations an outside party can independently reproduce — the DSSE PAE content hash, the payload-bytes hash, theprev ↔ digestchain, and (with a public key) the envelope signature. The same signatures also verify upstream withcosign verify-blob --key cosign.pub; the public key is linked from each receipt'sverify_key_urland vendored for offline use attests/fixtures/cosign.pub.
Prefer to click? Paste any receipt into the live verifier Space — SZLHOLDINGS/governed-receipt-verifier — which runs this exact verify.py in your browser (via Pyodide, no upload). Or run against the benchmark corpus SZLHOLDINGS/governed-receipts-bench — real receipts (must PASS) plus labeled tampers (must FAIL).
Every file in examples/ is drawn factually from public SZL datasets — nothing is fabricated:
| File | Source dataset | Shows |
|---|---|---|
a11oy-khipu-chain.json | SZLHOLDINGS/a11oy-verifiable-corpus (receipts/) | a 5-receipt signed hash chain (seq 0→4) |
lake-inference-receipt.json | SZLHOLDINGS/a11oy-verifiable-corpus (lake/) | Legacy negative example: decision + energy exist only in the clear wrapper and therefore verify as UNBOUND / FAIL |
readiness-audit-receipt.json | SZLHOLDINGS/readiness-runs | unsigned envelope with payloadSha256 |
daily-activity-receipt.json | SZLHOLDINGS/szl-evidence | HMAC-stub daily activity receipt |
python -m unittest discover -s tests -v
Valid examples must pass; tampered fixtures (tests/fixtures/) must fail — a flipped payload byte breaks the content hash, and a rewritten prev breaks the chain.
SZLHOLDINGS/governed-receipt-verifier — paste a receipt, verify it in your browser (runs this verify.py via Pyodide).SZLHOLDINGS/governed-receipts-bench — real receipts (PASS) + labeled tampers (FAIL) for conformance testing.szlholdings-a11oy.hf.spacea11oy-verifiable-corpus, readiness-runs, szl-evidence) and the Governed Kernels collection (szl-lambda-gate, szl-blocked, governed-inference-meter, …).Apache-2.0 — see LICENSE.
23 commits
Python
100.0%