Runs / demo-run-1 · P2 / Receipt

The run receipt

Records agree: yes · 201 of 208 checks · Signed: Yes · Anchored: Not anchored

Rundemo-run-1 · 2e20c85ebe53
Formatstage-receipt-chain/0.3
Stages6 of 6 declared stages; 1 retry recorded
The graph7 nodes · 8 links · [PASS ] edges conform to declared_edges · [PASS ] edges equal the edges derived from the receipts
Chain head
sha256:e5d0d27caf8e…sha256:e5d0d27caf8e4109d65e54c9858568856d2bca3efe5503b8636e39ac68355432
Output files6 of 6 present and matching their receipts
Model stagesmodel: declared not re-runnable — a sampled model call: its output is recorded, not replayed
Authorizationno authorization records
Recorded → · the record does not say which onetrace version made it
SignatureYes · demo key (public seed: proves the record wasn't changed since signing, not who signed it) ·
sha256:6e20550ae0dc…sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c
AnchorNot anchored · no anchor beside the chain
View JSON
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"chain":[{"digest":"sha256:240aa753c2091afc2a17c2f683f766a98c0f4f9b48c4e47db3056444728ff04b","file":"receipts/01-request.json","index":"1","stage":"request"},{"digest":"sha256:d6f197b33f6f0ea6826e5ea5c7de888efc45afc93fcd4b09e8bfc55f5e70895f","file":"receipts/02-context.json","index":"2","stage":"context"},{"digest":"sha256:b6071b924c0c840e79e244d432790b2bc997038679b819b860fbd85407385ccc","file":"receipts/03-tests_1.json","index":"3","instance":"1","stage":"tests"},{"digest":"sha256:c3cd9917618f428be5bfb0cab7348788c77fd1e0094706c0c3b90b579dcca598","file":"receipts/04-tests_2.json","index":"4","instance":"2","stage":"tests"},{"digest":"sha256:660fe221a42d2995dcb78f39ade5251299f221efa2ec997cc80fc55b646a7ecc","file":"receipts/05-model.json","index":"5","stage":"model"},{"digest":"sha256:30b98969ac4d7cfad2d4f4fd52a626ca32ef7a0fe553ef687c729ad11974d240","file":"receipts/06-proposal.json","index":"6","stage":"proposal"},{"digest":"sha256:e5d0d27caf8e4109d65e54c9858568856d2bca3efe5503b8636e39ac68355432","file":"receipts/07-config-applied.json","index":"7","stage":"config applied"}],"chain_head":"sha256:e5d0d27caf8e4109d65e54c9858568856d2bca3efe5503b8636e39ac68355432","declared_edges":[{"from":"request","to":"context"},{"from":"request","to":"tests"},{"from":"request","to":"model"},{"from":"context","to":"model"},{"from":"tests","to":"model"},{"from":"model","to":"proposal"},{"from":"proposal","to":"config applied"}],"edges":[{"from":"request","to":"context"},{"from":"request","to":"tests#1"},{"from":"request","to":"tests#2"},{"from":"request","to":"model"},{"from":"context","to":"model"},{"from":"tests#2","to":"model"},{"from":"model","to":"proposal"},{"from":"proposal","to":"config applied"}],"format":"stage-receipt-chain/0.3","outputs_kept":"all","run_id":"demo-run-1","run_id_source":"caller"}

Check it yourself

Download this run's record, unpack it, and in its folder run:

pip install "onetrace-verify[crypto]"
onetrace-verify --require-artifacts --trust trust.json .

trust.json is the signing keys you trust, each with your label for it, in the onetrace-trust/0.1 format: {"format": "onetrace-trust/0.1", "keys": [{"key_id": "...", "label": "..."}]}

Kept inputs aren't included in this public console's downloads: removing them is supported, and the run still verifies without them.

The check makes no network calls and needs no account.

What the check printed

This console's own run of the verifier over the stored record, at : onetrace-verify --trust trust.json MANIFEST.json, exit 0. File paths are shortened to their names; the output is as it wrote it, a row longer than the page shows cut with the count of what is left out.

[PASS   ] receipts/01-request.json: receipt format
[PASS   ] receipts/01-request.json: bytes are canonical
[PASS   ] receipts/01-request.json: required field 'format'
[PASS   ] receipts/01-request.json: required field 'run_id'
[PASS   ] receipts/01-request.json: required field 'stage'
[PASS   ] receipts/01-request.json: required field 'prev'
[PASS   ] receipts/01-request.json: required field 'time'
[PASS   ] receipts/01-request.json: required field 'coverage'
[PASS   ] receipts/01-request.json: required field 'emission'
[PASS   ] receipts/01-request.json: required field 'anchor'
[PASS   ] receipts/01-request.json: required field 'instrument'
[PASS   ] receipts/01-request.json: required field 'inputs'
[PASS   ] receipts/01-request.json: required field 'outputs'
[PASS   ] receipts/01-request.json: required field 'assertions'
[PASS   ] receipts/01-request.json: required field 'outcome'
[PASS   ] receipts/01-request.json: time.started carries its zone
[PASS   ] receipts/01-request.json: time.ended carries its zone
[PASS   ] receipts/01-request.json: instrument is named and pinned
[PASS   ] receipts/01-request.json: outputs/request.json declares a trust class
[PASS   ] receipts/01-request.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/01-request.json: coverage declares completeness
[PASS   ] receipts/01-request.json: anchor state is declared, not absent
[NOT-RUN] receipts/01-request.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/01-request.json: digest matches the manifest
[PASS   ] receipts/01-request.json: chain link
[PASS   ] receipts/01-request.json: output artifact 'request.json' matches
[PASS   ] receipts/02-context.json: receipt format
[PASS   ] receipts/02-context.json: bytes are canonical
[PASS   ] receipts/02-context.json: required field 'format'
[PASS   ] receipts/02-context.json: required field 'run_id'
[PASS   ] receipts/02-context.json: required field 'stage'
[PASS   ] receipts/02-context.json: required field 'prev'
[PASS   ] receipts/02-context.json: required field 'time'
[PASS   ] receipts/02-context.json: required field 'coverage'
[PASS   ] receipts/02-context.json: required field 'emission'
[PASS   ] receipts/02-context.json: required field 'anchor'
[PASS   ] receipts/02-context.json: required field 'instrument'
[PASS   ] receipts/02-context.json: required field 'inputs'
[PASS   ] receipts/02-context.json: required field 'outputs'
[PASS   ] receipts/02-context.json: required field 'assertions'
[PASS   ] receipts/02-context.json: required field 'outcome'
[PASS   ] receipts/02-context.json: time.started carries its zone
[PASS   ] receipts/02-context.json: time.ended carries its zone
[PASS   ] receipts/02-context.json: instrument is named and pinned
[PASS   ] receipts/02-context.json: inputs/receipt:request declares a trust class
[PASS   ] receipts/02-context.json: inputs/request.json declares a trust class
[PASS   ] receipts/02-context.json: inputs/documents declares a trust class
[PASS   ] receipts/02-context.json: outputs/context.json declares a trust class
[PASS   ] receipts/02-context.json: assertions name their constants
[PASS   ] receipts/02-context.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/02-context.json: coverage declares completeness
[PASS   ] receipts/02-context.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-context.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/02-context.json: digest matches the manifest
[PASS   ] receipts/02-context.json: chain link
[PASS   ] receipts/02-context.json: output artifact 'context.json' matches
[PASS   ] receipts/03-tests_1.json: receipt format
[PASS   ] receipts/03-tests_1.json: bytes are canonical
[PASS   ] receipts/03-tests_1.json: required field 'format'
[PASS   ] receipts/03-tests_1.json: required field 'run_id'
[PASS   ] receipts/03-tests_1.json: required field 'stage'
[PASS   ] receipts/03-tests_1.json: required field 'prev'
[PASS   ] receipts/03-tests_1.json: required field 'time'
[PASS   ] receipts/03-tests_1.json: required field 'coverage'
[PASS   ] receipts/03-tests_1.json: required field 'emission'
[PASS   ] receipts/03-tests_1.json: required field 'anchor'
[PASS   ] receipts/03-tests_1.json: required field 'instrument'
[PASS   ] receipts/03-tests_1.json: required field 'inputs'
[PASS   ] receipts/03-tests_1.json: required field 'outputs'
[PASS   ] receipts/03-tests_1.json: required field 'assertions'
[PASS   ] receipts/03-tests_1.json: required field 'outcome'
[PASS   ] receipts/03-tests_1.json: time.started carries its zone
[PASS   ] receipts/03-tests_1.json: time.ended carries its zone
[PASS   ] receipts/03-tests_1.json: instrument is named and pinned
[PASS   ] receipts/03-tests_1.json: inputs/receipt:request declares a trust class
[PASS   ] receipts/03-tests_1.json: inputs/request.json declares a trust class
[PASS   ] receipts/03-tests_1.json: assertions name their constants
[PASS   ] receipts/03-tests_1.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/03-tests_1.json: error carries status, body and origin
[PASS   ] receipts/03-tests_1.json: coverage declares completeness
[PASS   ] receipts/03-tests_1.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-tests_1.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/03-tests_1.json: digest matches the manifest
[PASS   ] receipts/03-tests_1.json: chain link
[PASS   ] receipts/04-tests_2.json: receipt format
[PASS   ] receipts/04-tests_2.json: bytes are canonical
[PASS   ] receipts/04-tests_2.json: required field 'format'
[PASS   ] receipts/04-tests_2.json: required field 'run_id'
[PASS   ] receipts/04-tests_2.json: required field 'stage'
[PASS   ] receipts/04-tests_2.json: required field 'prev'
[PASS   ] receipts/04-tests_2.json: required field 'time'
[PASS   ] receipts/04-tests_2.json: required field 'coverage'
[PASS   ] receipts/04-tests_2.json: required field 'emission'
[PASS   ] receipts/04-tests_2.json: required field 'anchor'
[PASS   ] receipts/04-tests_2.json: required field 'instrument'
[PASS   ] receipts/04-tests_2.json: required field 'inputs'
[PASS   ] receipts/04-tests_2.json: required field 'outputs'
[PASS   ] receipts/04-tests_2.json: required field 'assertions'
[PASS   ] receipts/04-tests_2.json: required field 'outcome'
[PASS   ] receipts/04-tests_2.json: time.started carries its zone
[PASS   ] receipts/04-tests_2.json: time.ended carries its zone
[PASS   ] receipts/04-tests_2.json: instrument is named and pinned
[PASS   ] receipts/04-tests_2.json: inputs/receipt:request declares a trust class
[PASS   ] receipts/04-tests_2.json: inputs/request.json declares a trust class
[PASS   ] receipts/04-tests_2.json: inputs/results declares a trust class
[PASS   ] receipts/04-tests_2.json: outputs/test-results.json declares a trust class
[PASS   ] receipts/04-tests_2.json: assertions name their constants
[PASS   ] receipts/04-tests_2.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/04-tests_2.json: coverage declares completeness
[PASS   ] receipts/04-tests_2.json: anchor state is declared, not absent
[NOT-RUN] receipts/04-tests_2.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/04-tests_2.json: digest matches the manifest
[PASS   ] receipts/04-tests_2.json: chain link
[PASS   ] receipts/04-tests_2.json: output artifact 'test-results.json' matches
[PASS   ] receipts/05-model.json: receipt format
[PASS   ] receipts/05-model.json: bytes are canonical
[PASS   ] receipts/05-model.json: required field 'format'
[PASS   ] receipts/05-model.json: required field 'run_id'
[PASS   ] receipts/05-model.json: required field 'stage'
[PASS   ] receipts/05-model.json: required field 'prev'
[PASS   ] receipts/05-model.json: required field 'time'
[PASS   ] receipts/05-model.json: required field 'coverage'
[PASS   ] receipts/05-model.json: required field 'emission'
[PASS   ] receipts/05-model.json: required field 'anchor'
[PASS   ] receipts/05-model.json: required field 'instrument'
[PASS   ] receipts/05-model.json: required field 'inputs'
[PASS   ] receipts/05-model.json: required field 'outputs'
[PASS   ] receipts/05-model.json: required field 'assertions'
[PASS   ] receipts/05-model.json: required field 'outcome'
[PASS   ] receipts/05-model.json: time.started carries its zone
[PASS   ] receipts/05-model.json: time.ended carries its zone
[PASS   ] receipts/05-model.json: instrument is named and pinned
[PASS   ] receipts/05-model.json: inputs/receipt:request declares a trust class
[PASS   ] receipts/05-model.json: inputs/receipt:context declares a trust class
[PASS   ] receipts/05-model.json: inputs/receipt:tests#2 declares a trust class
[PASS   ] receipts/05-model.json: inputs/request.json declares a trust class
[PASS   ] receipts/05-model.json: inputs/context.json declares a trust class
[PASS   ] receipts/05-model.json: inputs/test-results.json declares a trust class
[PASS   ] receipts/05-model.json: outputs/model-output.json declares a trust class
[PASS   ] receipts/05-model.json: assertions name their constants
[PASS   ] receipts/05-model.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/05-model.json: coverage declares completeness
[PASS   ] receipts/05-model.json: anchor state is declared, not absent
[NOT-RUN] receipts/05-model.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/05-model.json: digest matches the manifest
[PASS   ] receipts/05-model.json: chain link
[PASS   ] receipts/05-model.json: output artifact 'model-output.json' matches
[PASS   ] receipts/06-proposal.json: receipt format
[PASS   ] receipts/06-proposal.json: bytes are canonical
[PASS   ] receipts/06-proposal.json: required field 'format'
[PASS   ] receipts/06-proposal.json: required field 'run_id'
[PASS   ] receipts/06-proposal.json: required field 'stage'
[PASS   ] receipts/06-proposal.json: required field 'prev'
[PASS   ] receipts/06-proposal.json: required field 'time'
[PASS   ] receipts/06-proposal.json: required field 'coverage'
[PASS   ] receipts/06-proposal.json: required field 'emission'
[PASS   ] receipts/06-proposal.json: required field 'anchor'
[PASS   ] receipts/06-proposal.json: required field 'instrument'
[PASS   ] receipts/06-proposal.json: required field 'inputs'
[PASS   ] receipts/06-proposal.json: required field 'outputs'
[PASS   ] receipts/06-proposal.json: required field 'assertions'
[PASS   ] receipts/06-proposal.json: required field 'outcome'
[PASS   ] receipts/06-proposal.json: time.started carries its zone
[PASS   ] receipts/06-proposal.json: time.ended carries its zone
[PASS   ] receipts/06-proposal.json: instrument is named and pinned
[PASS   ] receipts/06-proposal.json: inputs/receipt:model declares a trust class
[PASS   ] receipts/06-proposal.json: inputs/model-output.json declares a trust class
[PASS   ] receipts/06-proposal.json: outputs/proposal.json declares a trust class
[PASS   ] receipts/06-proposal.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/06-proposal.json: coverage declares completeness
[PASS   ] receipts/06-proposal.json: anchor state is declared, not absent
[NOT-RUN] receipts/06-proposal.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/06-proposal.json: digest matches the manifest
[PASS   ] receipts/06-proposal.json: chain link
[PASS   ] receipts/06-proposal.json: output artifact 'proposal.json' matches
[PASS   ] receipts/07-config-applied.json: receipt format
[PASS   ] receipts/07-config-applied.json: bytes are canonical
[PASS   ] receipts/07-config-applied.json: required field 'format'
[PASS   ] receipts/07-config-applied.json: required field 'run_id'
[PASS   ] receipts/07-config-applied.json: required field 'stage'
[PASS   ] receipts/07-config-applied.json: required field 'prev'
[PASS   ] receipts/07-config-applied.json: required field 'time'
[PASS   ] receipts/07-config-applied.json: required field 'coverage'
[PASS   ] receipts/07-config-applied.json: required field 'emission'
[PASS   ] receipts/07-config-applied.json: required field 'anchor'
[PASS   ] receipts/07-config-applied.json: required field 'instrument'
[PASS   ] receipts/07-config-applied.json: required field 'inputs'
[PASS   ] receipts/07-config-applied.json: required field 'outputs'
[PASS   ] receipts/07-config-applied.json: required field 'assertions'
[PASS   ] receipts/07-config-applied.json: required field 'outcome'
[PASS   ] receipts/07-config-applied.json: time.started carries its zone
[PASS   ] receipts/07-config-applied.json: time.ended carries its zone
[PASS   ] receipts/07-config-applied.json: instrument is named and pinned
[PASS   ] receipts/07-config-applied.json: inputs/receipt:proposal declares a trust class
[PASS   ] receipts/07-config-applied.json: inputs/proposal.json declares a trust class
[PASS   ] receipts/07-config-applied.json: outputs/auth.json declares a trust class
[PASS   ] receipts/07-config-applied.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/07-config-applied.json: coverage declares completeness
[PASS   ] receipts/07-config-applied.json: 'complete' is consistent with the stage lists
[PASS   ] receipts/07-config-applied.json: anchor state is declared, not absent
[NOT-RUN] receipts/07-config-applied.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/07-config-applied.json: digest matches the manifest
[PASS   ] receipts/07-config-applied.json: chain link
[PASS   ] receipts/07-config-applied.json: output artifact 'auth.json' matches
[PASS   ] manifest: chain head matches the last receipt
[PASS   ] edges conform to declared_edges
[PASS   ] edges equal the edges derived from the receipts
[PASS   ] signatures/1.json: signature -- signed by demo key (public seed: proves the record wasn't changed since signing, not who signed it) (sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c)

201 pass, 0 fail, 7 not-run  ->  PASS
a signature does not show: that the key wasn't stolen or misused; that the run's output is correct; when the record was signed (an anchor's job); who the person behind the key is (the trust list connects a key to a name)

What this receipt does not say

  • that the output or the action was correct
  • why the model wrote what it wrote
  • that the signing key wasn't misused (your trust list is what ties a key to a name)
  • that the run was correct at the anchored time (the anchor shows only that the record existed by then)

The run, step by step