The receipt

Every compress call returns a receipt next to the compressed output. The receipt is the product's honesty mechanism: it states what ran, what it cost, and what was checked - and it is signed, so you can verify it later without trusting us.

Shape

The top level is exactly five field groups plus the signing envelope:

  • headline - what was executed: the mode and the realized ratio.
  • integrity - the byte-level proof: input hash, output hash, and whether the output is a strict byte-subsequence of the input (client-verifiable with a two-pointer check).
  • counts - what the stages produced: kept-span counts, protected-pin counts, NLI window counts.
  • quality - the measured fidelity fields: the evidence-retention posterior and its worst window, disclosed when the NLI stage ran.
  • debug - which models ran (model_registry).

The signature envelope (key_id, receipt_signature) ships last when a signing key is configured. See verification.

Honesty by omission

Fields populate only when the stage behind them ran. There are no placeholder strings and no "not yet available" markers: a field that is absent from your receipt is a stage that did not run for your call. A group with no set members does not serialize at all - an empty quality object would falsely imply a fidelity check ran.

Read the field semantics before you gate on them

Each field proves one specific thing and not more: hashes prove provenance of the bytes, not subset-ness; the subsequence flag proves subset-ness, not fidelity; a fidelity posterior is a measured score, not a promise about your downstream task. The full per-field table with these boundaries is in receipt fields.