Standard: .h33bundle · Version: v1 · Status: Locked
One drag-droppable artifact bundles the receipts, envelopes, proofs, and parameter captures produced by a Federal L5 session window, with file-level SHA3-512 integrity hashes and registry-bound product_id / bundle_id attribution.
A recipient feeds the bundle to one verifier instead of routing the component artifacts through five different binaries.
The verifier rejects any drift in:
receipt_id — field-level mutation)product_id must exist; bundle_id, when set, must reference a real bundle)A .h33bundle is an uncompressed POSIX tar archive. The recipient can inspect contents without any H33 binary present.
manifest.json is at the root of the bundle tree. The verifier asserts:
manifest.json exists, parses, and conforms to §2's schema.manifest.files exists at the path stated.manifest.files exists in the archive (explicit extra-file failure).INSTRUCTIONS.md exists./, no .../ separators.<receipt_id>.json (lowercase hex).The manifest cannot directly contain its own SHA3-512. v1 handles this by:
files[] with one entry whose kind: "manifest" and sha3_512: "" (empty string).sha3_512 field with the actual hex of SHA3-512(canonical_bytes).sha3_512 field to "", re-serializing in struct order, and computing SHA3-512.Receipts (§3) are byte-equivalent to what GET /v1/fhe/l5/receipts/<id> returns. The bundle adds no envelope around the receipt; the file IS the receipt. The canonical SHA3-256 (= receipt_id) MUST match the file's base name. A mismatch is an explicit receipt-id-mismatch failure.
Envelopes (§4) carry the H33PqEnvelope JSON that the receipt's envelope_hash field commits to. The verifier recomputes envelope_hash(env) and compares to the receipt's envelope_hash. Any mismatch is an envelope-mismatch failure.
Output: a .h33bundle file at --output. Exit 0 on success, non-zero on any input validation failure.
Stderr on failure: a single explicit reason and a non-zero exit code.
The verifier returns non-zero on any of the following. There is no warning state; a v1 bundle either passes every gate or it does not verify.
| Gate | Reason code |
|---|---|
| Tarball cannot be opened | tar-open-failed |
manifest.json missing | manifest-missing |
manifest.json malformed | manifest-malformed |
manifest.format != "h33bundle" | format-mismatch |
manifest.version != "v1" | version-unsupported |
| File listed in manifest not present in tar | file-missing |
| File present in tar not listed in manifest | extra-file |
| File's actual SHA3-512 ≠ manifest hash | file-hash-mismatch |
| Receipt file name ≠ receipt's canonical SHA3-256 | receipt-id-mismatch |
Receipt canonical recomputed ≠ stated receipt_id | receipt-canonical-fail |
Envelope hash recomputed ≠ receipt's envelope_hash | envelope-mismatch |
Manifest receipts[] summary ≠ receipt file fields | receipt-summary-drift |
Receipt's product_id not in canonical registry | unknown-product |
Receipt's bundle_id not in canonical bundles | unknown-bundle |
INSTRUCTIONS.md missing | instructions-missing |
| Manifest self-hash recipe (§2.2) doesn't recover | manifest-self-hash-fail |
Each non-goal is a v2 conversation, not a v1 omission to argue with.
Version 1 · Locked 2026-06-10 · Author: Eric Beans, CEO, H33.ai, Inc.