read_invoice
invoice· 150 bytes
invoice.json· 86 bytes
Completed.
Ran as invoice-reader
, version 1.0.0
.
Checked — it holds.
Held under the checks that ran; not anchored, so it can't be shown to be the record that was made.
Receipt · step 1 of 3 · read_invoice
invoice-reader·
1.0.0
invoice· 150 bytes
sha256:d18a612009b4…
sha256:d18a612009b4ca9718de43df4fc7b0f3d06a976f327a906d8376df6c45bc1766invoice.json· 86 bytes
sha256:3840d84e286e…
sha256:3840d84e286edc03ecad09f7508a5105cd93be602f1810eb920dd119b8831262sha256:59d6ab37f27a…
sha256:59d6ab37f27aa3d7820e5361780f39cf16ca0af915c42913b8b0cc29920e488e{
"data": "invented example data",
"onetrace.kept_inputs": "invoice"
}The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{"constants":{"data":"invented example data","onetrace.kept_inputs":"invoice"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["read_invoice","match","approve_payment"],"emitting_stages":["read_invoice"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"150","digest":"sha256:d18a612009b4ca9718de43df4fc7b0f3d06a976f327a906d8376df6c45bc1766","media_type":"application/json","name":"invoice","trust_class":"externally-sourced"}],"instrument":{"config_digest":"sha256:b80d11206e532440dec5331fb86ffeedb8018955a09fbc9c08915706689e6863","id":"invoice-reader","kind":"reader","manifest_digest":"sha256:aaf71a395b501802eb499dcda21c878e759b71144ed7c3dec69aa040362e4ab8","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"86","digest":"sha256:3840d84e286edc03ecad09f7508a5105cd93be602f1810eb920dd119b8831262","media_type":"application/json","name":"invoice.json","trust_class":"operator-authored"}],"prev":null,"run_id":"p8-44-invoice-quantity-changed","stage":{"index":"1","name":"read_invoice"},"time":{"ended":"2026-10-25T12:52:11.233+00:00","started":"2026-10-25T12:52:11.224+00:00"}}The check's own words
[PASS ] receipts/01-read-invoice.json: receipt format [PASS ] receipts/01-read-invoice.json: bytes are canonical [PASS ] receipts/01-read-invoice.json: required field 'format' [PASS ] receipts/01-read-invoice.json: required field 'run_id' [PASS ] receipts/01-read-invoice.json: required field 'stage' [PASS ] receipts/01-read-invoice.json: required field 'prev' [PASS ] receipts/01-read-invoice.json: required field 'time' [PASS ] receipts/01-read-invoice.json: required field 'coverage' [PASS ] receipts/01-read-invoice.json: required field 'emission' [PASS ] receipts/01-read-invoice.json: required field 'anchor' [PASS ] receipts/01-read-invoice.json: required field 'instrument' [PASS ] receipts/01-read-invoice.json: required field 'inputs' [PASS ] receipts/01-read-invoice.json: required field 'outputs' [PASS ] receipts/01-read-invoice.json: required field 'assertions' [PASS ] receipts/01-read-invoice.json: required field 'outcome' [PASS ] receipts/01-read-invoice.json: time.started carries its zone [PASS ] receipts/01-read-invoice.json: time.ended carries its zone [PASS ] receipts/01-read-invoice.json: instrument is named and pinned [PASS ] receipts/01-read-invoice.json: inputs/invoice declares a trust class [PASS ] receipts/01-read-invoice.json: outputs/invoice.json declares a trust class [PASS ] receipts/01-read-invoice.json: assertions name their constants [PASS ] receipts/01-read-invoice.json: outcome class is one of ['error', 'ok', 'refused'] [PASS ] receipts/01-read-invoice.json: coverage declares completeness [PASS ] receipts/01-read-invoice.json: anchor state is declared, not absent [NOT-RUN] receipts/01-read-invoice.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality [PASS ] receipts/01-read-invoice.json: digest matches the manifest [PASS ] receipts/01-read-invoice.json: chain link [PASS ] receipts/01-read-invoice.json: output artifact 'invoice.json' matches