CoreGuard DDE/1 — Delivery & Dispute Evidence

A complete, replayable bilateral fixture that demonstrates the boundary in code: the on-chain payment is real, the rejection stands on named acceptance criteria, and nothing in the chain of custody lets the engine decide who is right.

Replay: node examples/delivery-fixture/verify-fixture.mjs → VERIFIED (10 PASS · exit 0)

Evidence lifecycle — each step a signed record

SYNTHETIC Parties & agreement

Deterministic test identities and a modeled brand-package agreement. Declared loudly — origin: SYNTHETIC in every record.

REAL On-chain payment

The Pilot-1 transaction on Core Mainnet — receipt re-verified live from rpc.coredao.org. The only real-world layer, by design.

REAL CRYPTO Signatures

Genuine EIP-712 replays over deterministic keys: cryptographically true, evidence of nothing beyond this fixture.

Execution proof — real, and intentionally insufficient

Core Mainnet · Pilot-1 anchor


      

Receipt re-verified live via eth_getTransactionReceipt. This settles payment — and payment is where its evidentiary reach ends.

What this receipt can never prove

Who delivered, and whatNO
Whether delivery matched the criteriaNO
Which party is right in a disputeNO
That payment settled (status 0x1)YES

Checks B1/B2 make the forbidden inference structurally impossible: basis=[PAYMENT_SETTLED] alone can never yield ACCEPTED.

Delivery evidence — live hash replay

Every artifact is pinned by SHA-256 over its exact bytes — the same single hash definition the engine uses. Pick one, watch its digest recompute in your browser, then flip a byte and watch the pin break.

Artifacts (delivery-manifest.json)


    

Tamper simulator — one byte, instant rejection

SHA-256:

In the CLI the same flip exits 1 fail-closed — in memory, disk untouched: node examples/delivery-fixture/verify-fixture.mjs --tamper logo.svg

Acceptance — judged by criteria, not by the chain

Four machine-inspectable criteria were fixed before delivery. The client's rejection cites one failing criterion — and nothing else. F2 guarantees every criterion is evaluated and every evaluation cites a real criterion.

The dispute — two positions, no engine verdict

PROVIDER

Requested remedy:

CLIENT

Requested remedy:

← two parties, one closed record, zero engine adjudication →

The engine preserves both positions verbatim and constrains remedies to a closed vocabulary. It structurally cannot name a winner — that power belongs to a neutral procedure both parties accept, not to a hash, a receipt, or a signature.

The nine dispute acts — payout gated on evidence, live

The nine-act wire scenario from examples/agent-platform-integration/run-http-payout-gate.mjs, rendered as a grid: every act is a real POST /verify against the real endpoint, and the gate decision (HOLD / RELEASE / wire-refused) is stamped on each card. This is the live run, not a re-telling.

Run it yourself — one command replays all nine acts against the real endpoint:

node examples/agent-platform-integration/run-http-payout-gate.mjs

Neutral-procedure mapping — classification, never judgment

Evidence classes a neutral procedure receives

What the mapping is — and is not

mapToPeoplesCourt() is a pure projection: it classifies nine evidence classes and reports readiness. No custody transfer, no merit finding, no endorsement — inclusion implies nothing about People's Court / Epistemic Labs.