Evidence / The public record

Evidence traces, the honest ladder.

Start with the artifact. Check how it was produced, what its chain establishes, and where its authority ends.

TR-A002 is a machine-emitted sandbox trace. TR-A001 is an authored format specimen. An external design-partner trace has not been earned yet.

TR-A002: twelve events in the verified hash chainOne simulated sandbox workflow. Links show the previous event hash. A solid marker identifies the executed sandbox side effect; held and denied events are labeled.Machine-emitted · one simulated, sandboxed workflow · not a customer deployment● Executed sandbox side effectEvent 1proposal.createdpayments.refundNo verdict8fa159f38fa159f3Event 2policy.evaluatedpayments.refundNo verdicteb0e62daeb0e62daEvent 3verdict.require_approvalpayments.refundrequire_approval2370499f2370499fEvent 4proxy.heldpayments.refundrequire_approval025c9a84025c9a84Event 5approval.requestedNo toolNo verdict91c98d4191c98d41Event 6approval.grantedNo toolapproveda36fbfe3a36fbfe3Event 7 ●proxy.executed_sandboxpayments.refundapprovede9774812e9774812Event 8action.recordedNo toolapprovedac5ff382ac5ff382Event 9retry.proposed_over_scopepayments.refundNo verdict65c10aa765c10aa7Event 10verdict.deny_or_blockpayments.refunddeny89eef0a089eef0a0Event 11proxy.blockedpayments.refunddeny3af6a34d3af6a34dEvent 12evidence.digest_sealedNo toolNo verdictca1d4690Seal ca1d4690206eTR-A002: twelve events in the verified hash chainOne simulated sandbox workflow. Links show the previous event hash. A solid marker identifies the executed sandbox side effect; held and denied events are labeled.Machine-emitted · one simulated,sandboxed workflow ·not a customer deployment● Executed sandbox side effectEvent 1proposal.createdpayments.refundNo verdict8fa159f38fa159f3Event 2policy.evaluatedpayments.refundNo verdicteb0e62daeb0e62daEvent 3verdict.require_approvalpayments.refundrequire_approval2370499f2370499fEvent 4proxy.heldpayments.refundrequire_approval025c9a84025c9a84Event 5approval.requestedNo toolNo verdict91c98d4191c98d41Event 6approval.grantedNo toolapproveda36fbfe3a36fbfe3Event 7 ●proxy.executed_sandboxpayments.refundapprovede9774812e9774812Event 8action.recordedNo toolapprovedac5ff382ac5ff382Event 9retry.proposed_over_scopepayments.refundNo verdict65c10aa765c10aa7Event 10verdict.deny_or_blockpayments.refunddeny89eef0a089eef0a0Event 11proxy.blockedpayments.refunddeny3af6a34d3af6a34dEvent 12evidence.digest_sealedNo toolNo verdictca1d4690Seal ca1d4690206e
  1. Event 1: proposal.created; tool payments.refund; verdict none; sandbox side effect not executed. Hash 8fa159f391851f662390bcd4f43d7aa3b47c5634bae8e5fd887c93b424e0c57b; previous 0000000000000000000000000000000000000000000000000000000000000000.
  2. Event 2: policy.evaluated; tool payments.refund; verdict none; sandbox side effect not executed. Hash eb0e62da71ad316c6c974cfac4564305f684f8457d3d4ed119fca62daa28c4ea; previous 8fa159f391851f662390bcd4f43d7aa3b47c5634bae8e5fd887c93b424e0c57b.
  3. Event 3: verdict.require_approval; tool payments.refund; verdict require_approval; sandbox side effect not executed. Hash 2370499ffa83fbd67c07d4b6accccf1fd7df0693453cc2d45b4a1870305c84b0; previous eb0e62da71ad316c6c974cfac4564305f684f8457d3d4ed119fca62daa28c4ea.
  4. Event 4: proxy.held; tool payments.refund; verdict require_approval; sandbox side effect not executed. Hash 025c9a8445ab27c17e28d2d23c5daf562c166465035e11e0b728bdd10bbb0e86; previous 2370499ffa83fbd67c07d4b6accccf1fd7df0693453cc2d45b4a1870305c84b0.
  5. Event 5: approval.requested; tool none; verdict none; sandbox side effect not executed. Hash 91c98d41e2c18a520a30bc35f3d54210324985733da5aeb0d35c0cf3204748e6; previous 025c9a8445ab27c17e28d2d23c5daf562c166465035e11e0b728bdd10bbb0e86.
  6. Event 6: approval.granted; tool none; verdict approved; sandbox side effect not executed. Hash a36fbfe3e0777da5a56ff36afb1984d5c7087a1cfd1f88e931466bdfae1f670b; previous 91c98d41e2c18a520a30bc35f3d54210324985733da5aeb0d35c0cf3204748e6.
  7. Event 7: proxy.executed_sandbox; tool payments.refund; verdict approved; sandbox side effect executed. Hash e977481264f83939001e7625fa33ae1e206626665e02c8662389c5706f183367; previous a36fbfe3e0777da5a56ff36afb1984d5c7087a1cfd1f88e931466bdfae1f670b.
  8. Event 8: action.recorded; tool none; verdict approved; sandbox side effect not executed. Hash ac5ff382654889aa5fd1e5f885edbb5b74d8c3f505139e16d2457ceea89ce947; previous e977481264f83939001e7625fa33ae1e206626665e02c8662389c5706f183367.
  9. Event 9: retry.proposed_over_scope; tool payments.refund; verdict none; sandbox side effect not executed. Hash 65c10aa7e05bfb2f4e7ff5e3e22fdb643fa14ad5704e418ede993c8630e031ae; previous ac5ff382654889aa5fd1e5f885edbb5b74d8c3f505139e16d2457ceea89ce947.
  10. Event 10: verdict.deny_or_block; tool payments.refund; verdict deny; sandbox side effect not executed. Hash 89eef0a0876b22e98fb41166cbbea474acdf94969d5383ea767d3e46f6b2323f; previous 65c10aa7e05bfb2f4e7ff5e3e22fdb643fa14ad5704e418ede993c8630e031ae.
  11. Event 11: proxy.blocked; tool payments.refund; verdict deny; sandbox side effect not executed. Hash 3af6a34d3035faa9aa599c035dde7ae1e10d37e517df5e617cc6319ed0236453; previous 89eef0a0876b22e98fb41166cbbea474acdf94969d5383ea767d3e46f6b2323f.
  12. Event 12: evidence.digest_sealed; tool none; verdict none; sandbox side effect not executed. Hash ca1d4690206e4dcf3d654b907d02d2bccf9bcdc16ddc555071fec21874578b32; previous 3af6a34d3035faa9aa599c035dde7ae1e10d37e517df5e617cc6319ed0236453.
Computed from /proof/tr-a002.json. Re-verify the chain yourself: npm run proof:verify. Link labels show the preceding event’s hash; the final node shows the seal.

Proof status

TR-A001Authored specimen, shows the evidence-package format. See it ↓Available
TR-A002Machine-emitted sandbox trace, real, re-verifiable SHA-256 hash chain. See it ↓Available
TR-A003First external design-partner trace.Not earned yet

Why TR-A002 matters, in ten seconds: it proves the Origin trace engine can emit a deterministic, tamper-evident sandbox evidence chain that anyone can re-check. It does not prove production readiness or customer approval.

Is the trace generated by code?

Yes, emitted by scripts/generate-tr-a002.mjs, not hand-written.

Can the chain be independently checked?

Yes, download the JSON and run npm run proof:verify.

Does it capture a real control moment?

Yes, an above-cap action needs approval; an over-scope retry is blocked and recorded.

What does it not prove?

Customer deployment, production readiness, compliance, reviewer acceptance, or revenue.

Plumbing proof is not customer proof. TR-A002 proves the trace engine works; it is not a customer deployment, performance claim, or reviewer acceptance.

The ladder

Three rungs, labeled for exactly what they are.

Each rung is a different kind of evidence. We only publish a rung once it exists, and we never relabel a lower rung as a higher one.

Available now TR-A001

Authored evidence specimen

A hand-authored example of the evidence-package format, it shows the shape of the record. Illustrative, not a machine-emitted run.

Available now TR-A002

Machine-emitted sandbox agent trace

Emitted by Origin's trace engine over a sandboxed agent action, 12 events on a real SHA-256 hash chain you can re-verify. Sandbox only; no live money, no customer data.

When earned TR-A003

First design-partner trace

Evidence from a real external workflow, published only once a design partner has actually run it. Not yet available.

Forthcoming

What TR-A001 shows, and what it doesn't.

This shows

  • The shape of an Origin evidence package, the fields a reviewer would read.
  • A policy verdict that holds a risky action instead of auto-executing it.
  • A named risk owner and a recorded human approval, scoped to a single action.
  • The tool-call proxy as the configured path to the side effect, the action is held until approved.
  • A blocked over-scope action, recorded, approval doesn't widen standing authority.
  • A hash-chained, tamper-evident audit record as the format of the package.

This does not show

  • Not a customer deployment, no customer site, customer data, or customer money.
  • Not a performance claim: no throughput, latency, reliability, or any measured metric.
  • No reviewer-acceptance claim, it is review-ready decision-support, not reviewer-accepted or certified.
  • TR-A001 is authored (illustrative), not a machine-emitted run, the scenario, timestamps, and digest are written to the schema, not recorded from a live agent.
  • TR-A001 is authored, not machine-emitted. The machine-emitted sandbox trace is TR-A002, now available; the first external design-partner trace is TR-A003, forthcoming when earned.

Origin is decision-support and evidence infrastructure. We use "tamper-evident" to mean alteration is detectable by replay and digest checks; "review-ready," not "reviewer-accepted." The prototype runs. Not production SaaS or compliance certification. Not legal certification.

TR-A002 · available now

Machine-emitted sandbox trace, a real hash chain you can re-verify.

This one is not authored. Origin's trace emitter runs the same payments-ops workflow through the runtime, proposal, policy verdict, proxy hold, human approval, sandbox execution, a blocked over-scope retry, and commits every event to a SHA-256 hash chain. The published file below is the emitter's exact output; the verify command re-derives the chain and fails if a single byte changed.

TR-A002 is a machine-emitted sandbox trace. The Origin trace emitter produces proposal → policy verdict → proxy hold → approval → sandbox execution → blocked over-scope retry → a sealed hash-chain digest, as a real, re-verifiable SHA-256 chain over 12 events. It is not a customer deployment, not production SaaS, and not a performance claim. No live money moves, the payments.refund side effect executes in a sandbox only.

Final digest · sha256 ca1d4690206e4dcf3d654b907d02d2bccf9bcdc16ddc555071fec21874578b32
Emitted by
scripts/generate-tr-a002.mjs
Events · algorithm
12 · SHA-256 hash chain
Agent
payments-ops-agent
Policy
refund-cap-v0.3
Approver / risk owner
payments-on-call
Sandbox
true · no live money

The 12 events, in order.

  1. Planproposal.createdAgent proposes a $480.00 refund on order_8842.
  2. Planpolicy.evaluatedChecked against refund-cap-v0.3: $480 is over the $250 auto-cap, within the $500 ceiling.
  3. Heldverdict.require_approvalVerdict: require human approval. Risk owner: payments-on-call.
  4. Heldproxy.heldSide effect held at the proxy, payments.refund not dispatched.
  5. Heldapproval.requestedApproval requested from payments-on-call with the verdict and side-effect scope.
  6. Verifiedapproval.grantedHuman approver grants the $480.00 refund.
  7. Verifiedproxy.executed_sandboxExecuted in sandbox, simulated refund, no live money moved.
  8. Verifiedaction.recordedRecorded to the audit chain with approver, verdict, and scope.
  9. Planretry.proposed_over_scopeAgent proposes a second refund of $920.00, above the $500 ceiling.
  10. Blockedverdict.deny_or_blockVerdict: deny, $920 exceeds the approved scope.
  11. Blockedproxy.blockedSide effect BLOCKED at the proxy, the over-scope refund is never dispatched. The block is recorded.
  12. Sealedevidence.digest_sealedHash chain over the preceding 11 events is committed to the final digest.

Event 11 is the one that matters: the agent tried to exceed its scope. The proxy blocked it, and the block itself is in the chain.

Emitter output, verbatim excerpt (first + sealing event)

// machine-emitted — public/proof/tr-a002.json (12 events; excerpt)
{
  "seq": 1, "event_id": "evt_001",
  "ts": "2026-07-04T17:00:00.000Z",
  "actor": "payments-ops-agent", "action": "proposal.created",
  "tool": "payments.refund",
  "side_effect": { "amount_usd": 480, "target": "order_8842", "executed": false },
  "sandbox": true,
  "prev_hash": "0000…0000",
  "event_hash": "8fa159f391851f662390bcd4f43d7aa3b47c5634bae8e5fd887c93b424e0c57b"
}
// … events 2–11 (policy → held → approval → sandbox exec → over-scope → blocked) …
{
  "seq": 12, "event_id": "evt_012",
  "action": "evidence.digest_sealed", "actor": "origin-recorder",
  "chain_root": "3af6a34d3035faa9aa599c035dde7ae1e10d37e517df5e617cc6319ed0236453",
  "prev_hash": "3af6a34d3035faa9aa599c035dde7ae1e10d37e517df5e617cc6319ed0236453",
  "event_hash": "ca1d4690206e4dcf3d654b907d02d2bccf9bcdc16ddc555071fec21874578b32"
}

Each event_hash = SHA-256 of the event's canonical JSON together with the previous hash. The sealing event's hash is the final digest, so it commits every prior event.

Verify this artifact yourself

No install needed, paste the downloaded JSON into /verify and it re-checks offline in your browser (green = reproducible; tamper any field → VOID). Or clone the public repo github.com/bohueilin/Origin and run:

# in the repo — re-derive the hash chain of the published JSON
npm run proof:verify
# → PASS every event hash + prev_hash link verifies · digest recomputes

# or verify the *published* artifact directly:
curl -sO https://originphysicalai.com/proof/tr-a002.json
node scripts/verify-tr-a002.mjs tr-a002.json
# → PASS. Now edit one amount / actor / verdict and re-run → FAIL

The verifier recomputes every event hash from its own bytes and checks the links. Edit any field of any event and it exits non-zero, that is what "tamper-evident" means here. This demonstrates tamper-evident trace plumbing in sandbox, not production security. The in-page re-check runs the same verifyChain that /verify uses; it demonstrates tamper evidence on a sandbox trace, not production security.

In plain English: the published JSON commits each event to the next one, and the final digest commits the entire run. Change any byte of any event and re-verification fails.

What TR-A002 shows

  • Origin's trace engine emitting a real, tamper-evident record of an agent workflow, not authored by hand.
  • The full loop as machine events: proposal, policy verdict, proxy hold, human approval, sandbox execution.
  • A blocked over-scope retry, recorded, the approval covered one action, not standing authority.
  • A SHA-256 hash chain whose digest you can re-verify independently with the published file.

What TR-A002 does not show

  • Not a customer deployment, inputs are simulated; no customer site, data, or money.
  • Not live money, the payments.refund side effect executes in a sandbox only.
  • Not a performance claim: timestamps are deterministic pseudo-timestamps, not a latency measurement.
  • Not reviewer acceptance or compliance certification, it proves the trace engine works, nothing about a real reviewer's decision.

TR-A001 · available now

Authored evidence specimen, the format of a package.

Authored specimen · illustrative, not a machine-emitted run. The fields below show the exact shape of an Origin evidence package; the scenario, timestamps, and hash are authored to that schema, not recorded from a live agent.

A single high-consequence action, a payments-ops agent proposing a refund above its auto-cap, worked through Origin's runtime semantics: the policy verdict, the controlled tool-call proxy, the human approval, a blocked over-scope action, and the audit-chain digest. TR-A002 above follows the same refund scenario through the trace emitter: same scenario, different provenance.

Agent workflow
payments-ops-agent, an internal-ops agent authorized to issue customer refunds, within scope and budget.
Proposed action
Refund $480.00 for order_8842 via tool payments.refund.
Policy in force
Tool in allowlist · auto-cap $250 · above-cap refunds require a human approval.
Policy verdict
require-approval, $480.00 is over the $250 auto-cap, so the action is held rather than auto-executed.
Risk owner
payments on-call, the named human who owns the decision on above-cap refunds.
Tool-call proxy event
payments.refund is held at the proxy until approval, the agent has no path to the side effect except through the controlled proxy, so nothing moves while the verdict is require-approval.
Human approval
payments on-call approves the held refund. The proxy then executes exactly the approved action ($480.00 → order_8842) and the approval is recorded with who, when, and scope.
Blocked over-scope action
A second refund attempt above the approved scope is blocked at the proxy and recorded, the earlier approval covered one action only; it does not widen the agent's standing authority.
Audit-chain digest
Every entry, proposal, verdict, proxy hold, approval, execution, and the blocked over-scope call, is written into a hash-chained, tamper-evident record that can be replayed and exported as the evidence package.

Illustrative package shape, authored / illustrative

// authored / illustrative — NOT a machine-emitted run
{
  "artifact": "TR-A001",
  "kind": "authored_specimen",
  "agent": "payments-ops-agent",
  "events": [
    { "t": "09:41:02", "type": "proposal",
      "tool": "payments.refund",
      "action": "refund $480.00 → order_8842" },
    { "t": "09:41:02", "type": "policy_verdict",
      "checks": { "scope": "in_allowlist", "budget": "over_auto_cap($250)" },
      "verdict": "require-approval",
      "risk_owner": "payments on-call" },
    { "t": "09:41:02", "type": "proxy_event",
      "tool": "payments.refund", "state": "held_pending_approval" },
    { "t": "09:41:26", "type": "approval",
      "approver": "payments on-call", "scope": "order_8842 · one action" },
    { "t": "09:41:27", "type": "execution",
      "via": "proxy", "result": "verified" },
    { "t": "09:42:10", "type": "proxy_event",
      "action": "second refund above approved scope",
      "state": "blocked", "recorded": true }
  ],
  "audit_chain": { "algorithm": "sha256", "state": "illustrative_digest" }
}

The values above are authored to the evidence-package schema to show its shape. The digest is a placeholder, no machine-emitted hash is claimed for TR-A001.

Book an Agent Evidence Review See the evidence roadmap Read the one-page brief