Runs / P8 / p8-44-invoice-quantity-changed

3 of 3 declared stages · recorded in the format stage-receipt-chain/0.3 · ran · received by this console

  • Records agree Yes
  • Ran as approved a straight-line run: there is no plan to compare
  • Signed by a known recorder Yes
  • Committed by a known time Not anchored
This answer's trail was checked on — each check that ran held.

Held under the checks that ran; not anchored, so it can't be shown to be the record that was made.

Repeat the check

Run it from the run's folder:

onetrace-verify --trust trust.json MANIFEST.json

The answer

This record has no step that wrote an answer, so there is no answer to show.

The trail

step 1 of 3

read_invoice

What went in
invoice · 150 bytes
What came out
invoice.json · 86 bytes
When
→

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
Version
invoice-reader · 1.0.0
What went in
invoice · 150 bytes
sha256:d18a612009b4…sha256:d18a612009b4ca9718de43df4fc7b0f3d06a976f327a906d8376df6c45bc1766
What came out
invoice.json · 86 bytes
sha256:3840d84e286e…sha256:3840d84e286edc03ecad09f7508a5105cd93be602f1810eb920dd119b8831262
Fingerprint
sha256:59d6ab37f27a…sha256:59d6ab37f27aa3d7820e5361780f39cf16ca0af915c42913b8b0cc29920e488e
Settings it ran with
{
 "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
step 2 of 3

match

What went in
receipt:read_invoice · 1321 bytes
invoice.json · 86 bytes
What came out
match.json · 112 bytes
When
→

Completed.

Ran as three-way-match, 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 2 of 3 · match
Version
three-way-match · 1.0.0
What went in
receipt:read_invoice · 1321 bytes
sha256:59d6ab37f27a…sha256:59d6ab37f27aa3d7820e5361780f39cf16ca0af915c42913b8b0cc29920e488e
invoice.json · 86 bytes
sha256:3840d84e286e…sha256:3840d84e286edc03ecad09f7508a5105cd93be602f1810eb920dd119b8831262
What came out
match.json · 112 bytes
sha256:4ee97c400dce…sha256:4ee97c400dce0679d29506e072c72996d9485532e8cb2d952a71a5dc396e49b9
Fingerprint
sha256:efd129f04cf2…sha256:efd129f04cf2e1732be7eb649d6a80340dfa325c8916db61cc18d26c7be373ef
Settings it ran with
{
 "order_quantity": "40",
 "order_unit_price": "12.50",
 "price_tolerance": "5.00%",
 "received_quantity": "40"
}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{"constants":{"order_quantity":"40","order_unit_price":"12.50","price_tolerance":"5.00%","received_quantity":"40"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["read_invoice","match","approve_payment"],"emitting_stages":["read_invoice","match"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1321","digest":"sha256:59d6ab37f27aa3d7820e5361780f39cf16ca0af915c42913b8b0cc29920e488e","media_type":"application/json","name":"receipt:read_invoice","trust_class":"operator-authored"},{"bytes":"86","digest":"sha256:3840d84e286edc03ecad09f7508a5105cd93be602f1810eb920dd119b8831262","media_type":"application/json","name":"invoice.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:824a2366fff3ce418a48864bb0501ff02b8396b0cfede1f37935ae87b389a060","id":"three-way-match","kind":"checker","manifest_digest":"sha256:aaf71a395b501802eb499dcda21c878e759b71144ed7c3dec69aa040362e4ab8","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"112","digest":"sha256:4ee97c400dce0679d29506e072c72996d9485532e8cb2d952a71a5dc396e49b9","media_type":"application/json","name":"match.json","trust_class":"operator-authored"}],"prev":"sha256:59d6ab37f27aa3d7820e5361780f39cf16ca0af915c42913b8b0cc29920e488e","run_id":"p8-44-invoice-quantity-changed","stage":{"index":"2","name":"match"},"time":{"ended":"2026-10-25T12:52:11.284+00:00","started":"2026-10-25T12:52:11.243+00:00"}}
The check's own words
[PASS   ] receipts/02-match.json: receipt format
[PASS   ] receipts/02-match.json: bytes are canonical
[PASS   ] receipts/02-match.json: required field 'format'
[PASS   ] receipts/02-match.json: required field 'run_id'
[PASS   ] receipts/02-match.json: required field 'stage'
[PASS   ] receipts/02-match.json: required field 'prev'
[PASS   ] receipts/02-match.json: required field 'time'
[PASS   ] receipts/02-match.json: required field 'coverage'
[PASS   ] receipts/02-match.json: required field 'emission'
[PASS   ] receipts/02-match.json: required field 'anchor'
[PASS   ] receipts/02-match.json: required field 'instrument'
[PASS   ] receipts/02-match.json: required field 'inputs'
[PASS   ] receipts/02-match.json: required field 'outputs'
[PASS   ] receipts/02-match.json: required field 'assertions'
[PASS   ] receipts/02-match.json: required field 'outcome'
[PASS   ] receipts/02-match.json: time.started carries its zone
[PASS   ] receipts/02-match.json: time.ended carries its zone
[PASS   ] receipts/02-match.json: instrument is named and pinned
[PASS   ] receipts/02-match.json: inputs/receipt:read_invoice declares a trust class
[PASS   ] receipts/02-match.json: inputs/invoice.json declares a trust class
[PASS   ] receipts/02-match.json: outputs/match.json declares a trust class
[PASS   ] receipts/02-match.json: assertions name their constants
[PASS   ] receipts/02-match.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/02-match.json: coverage declares completeness
[PASS   ] receipts/02-match.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-match.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/02-match.json: digest matches the manifest
[PASS   ] receipts/02-match.json: chain link
[PASS   ] receipts/02-match.json: output artifact 'match.json' matches
step 3 of 3

approve_payment

What went in
receipt:match · 1627 bytes
match.json · 112 bytes
What came out
payment.json · 97 bytes
When
→

Completed.

Ran as payment-approval, 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 3 of 3 · approve_payment
Version
payment-approval · 1.0.0
What went in
receipt:match · 1627 bytes
sha256:efd129f04cf2…sha256:efd129f04cf2e1732be7eb649d6a80340dfa325c8916db61cc18d26c7be373ef
match.json · 112 bytes
sha256:4ee97c400dce…sha256:4ee97c400dce0679d29506e072c72996d9485532e8cb2d952a71a5dc396e49b9
What came out
payment.json · 97 bytes
sha256:447bf00a0fc3…sha256:447bf00a0fc38c9a2c47437befc046a6b19b72dd56a7f1c71f36f5ae85641066
Fingerprint
sha256:eda658a59dd4…sha256:eda658a59dd474491d66be90e58ac78d441fcfcddb806f225d4ed72987b68093
Settings it ran with
{}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"complete","declared_stages":["read_invoice","match","approve_payment"],"emitting_stages":["read_invoice","match","approve_payment"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1627","digest":"sha256:efd129f04cf2e1732be7eb649d6a80340dfa325c8916db61cc18d26c7be373ef","media_type":"application/json","name":"receipt:match","trust_class":"operator-authored"},{"bytes":"112","digest":"sha256:4ee97c400dce0679d29506e072c72996d9485532e8cb2d952a71a5dc396e49b9","media_type":"application/json","name":"match.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:84566ae6a0fff7aa8af09def3657bb9858b7ab7d7d92c4e9c7054a770c42f8f6","id":"payment-approval","kind":"policy","manifest_digest":"sha256:aaf71a395b501802eb499dcda21c878e759b71144ed7c3dec69aa040362e4ab8","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"97","digest":"sha256:447bf00a0fc38c9a2c47437befc046a6b19b72dd56a7f1c71f36f5ae85641066","media_type":"application/json","name":"payment.json","trust_class":"operator-authored"}],"prev":"sha256:efd129f04cf2e1732be7eb649d6a80340dfa325c8916db61cc18d26c7be373ef","run_id":"p8-44-invoice-quantity-changed","stage":{"index":"3","name":"approve_payment"},"time":{"ended":"2026-10-25T12:52:11.296+00:00","started":"2026-10-25T12:52:11.292+00:00"}}
The check's own words
[PASS   ] receipts/03-approve-payment.json: receipt format
[PASS   ] receipts/03-approve-payment.json: bytes are canonical
[PASS   ] receipts/03-approve-payment.json: required field 'format'
[PASS   ] receipts/03-approve-payment.json: required field 'run_id'
[PASS   ] receipts/03-approve-payment.json: required field 'stage'
[PASS   ] receipts/03-approve-payment.json: required field 'prev'
[PASS   ] receipts/03-approve-payment.json: required field 'time'
[PASS   ] receipts/03-approve-payment.json: required field 'coverage'
[PASS   ] receipts/03-approve-payment.json: required field 'emission'
[PASS   ] receipts/03-approve-payment.json: required field 'anchor'
[PASS   ] receipts/03-approve-payment.json: required field 'instrument'
[PASS   ] receipts/03-approve-payment.json: required field 'inputs'
[PASS   ] receipts/03-approve-payment.json: required field 'outputs'
[PASS   ] receipts/03-approve-payment.json: required field 'assertions'
[PASS   ] receipts/03-approve-payment.json: required field 'outcome'
[PASS   ] receipts/03-approve-payment.json: time.started carries its zone
[PASS   ] receipts/03-approve-payment.json: time.ended carries its zone
[PASS   ] receipts/03-approve-payment.json: instrument is named and pinned
[PASS   ] receipts/03-approve-payment.json: inputs/receipt:match declares a trust class
[PASS   ] receipts/03-approve-payment.json: inputs/match.json declares a trust class
[PASS   ] receipts/03-approve-payment.json: outputs/payment.json declares a trust class
[PASS   ] receipts/03-approve-payment.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/03-approve-payment.json: coverage declares completeness
[PASS   ] receipts/03-approve-payment.json: 'complete' is consistent with the stage lists
[PASS   ] receipts/03-approve-payment.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-approve-payment.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/03-approve-payment.json: digest matches the manifest
[PASS   ] receipts/03-approve-payment.json: chain link
[PASS   ] receipts/03-approve-payment.json: output artifact 'payment.json' matches

What could not be checked

  • Each declared step left a receipt, as the receipts themselves state.

  • This record held under the checks that ran. It has not been anchored, so it cannot be shown to be the record that was made — here is what anchoring would add.

    Anchored, it would read: this record existed by a stated date and hasn't changed since — checkable against an independent anchor.

The run, step by step