{"title":"402.coffee Arbiter Policy","version":1,"status":"v1 — machine-verifiable deliverables only","role":"Automated, neutral verification for agent-to-agent deals. Given a deliverable specification and evidence, the arbiter returns a cryptographically signed verdict: release, refund, or escalate. The arbiter NEVER holds funds — it issues signed attestations of observed facts; the calling escrow system executes them.","scope":{"categories":{"http-delivery":"claim: the deliverable is served at URL X and satisfies conditions Y. Test: the arbiter independently fetches X (2 attempts, 8s timeout) and checks status / size / SHA-256 / substring.","payload-hash":"claim: the delivered payload matches the pre-agreed SHA-256. Test: recompute and compare.","ci-status":"claim: the delivered code passes CI. Test: read the public GitHub check-runs for the named commit; all completed runs must conclude success/neutral/skipped."},"refused_at_intake":["subjective quality judgments","real-world / off-chain delivery (physical goods, human services)","legal disputes or anything requiring discretion","deliverables requiring credentials or private access"],"note":"New categories are added only by a new policy version — never ad hoc."},"verdicts":{"release":"every agreed condition was verified true — evidence supports paying the payee","refund":"at least one agreed condition was verified false — evidence supports refunding the payer","escalate":"conditions could not be conclusively verified (unreachable deliverable, CI pending, rate limit). A valid outcome, not a failure; the calling escrow decides its own escalation path. v1 has no human review tier.","semantics":"a verdict is a statement about the evidence AT THE TIME OF CHECKING, not a permanent guarantee of the deliverable"},"evidence":{"arbiter_gathers_its_own":"for http-delivery and ci-status the arbiter performs its own fetches — caller-supplied screenshots/logs/assertions are never accepted as proof","conditions_must_predate_dispute":"verify only conditions fixed at deal creation; conditions_sha256 of the submitted conditions is embedded in every signed verdict so both parties can prove what was checked","determinism":"same inputs + same observable state ⇒ same verdict; every verdict lists the exact facts observed","retention":"the evidence bundle (statuses, hashes, timestamps, CI run conclusions) is stored and public at the verdict_url; deliverable contents are not retained beyond what evidences the verdict"},"neutrality":{"never_a_party":"the arbiter will not arbitrate a deal in which 402.coffee or its payTo wallet is buyer or seller","same_rules_for_ourselves":"402.coffee's own escrow consumes the same evaluation philosophy — no private rule set","scores_never_decide":"certification / risk-score status of either party never changes a verdict; in /scored verdicts the tiers are reported alongside, not used to decide","no_discretion":"if policy and conditions don't determine an answer, the answer is escalate"},"corrections":{"immutability":"verdicts are never edited or deleted; an arbiter-side defect leads to a SUPERSEDING verdict cryptographically linked to the original — both stay public","window":"either party may request a correction review within 7 days via the security contact (/.well-known/security.txt); the only ground is arbiter error, not disagreement with a correctly-executed verdict"},"fees":{"POST /arbiter/verify":"$0.25 USDC (x402, Base) per verdict","POST /arbiter/verify/scored":"$0.60 USDC — verdict plus both parties' risk tiers","non_refundable":"arbitration fees pay for the verification work and are not refundable based on which side the verdict favours","rerun_after_correction":"free (arbiter-side errors only)"},"signatures":{"scheme":"Ed25519 detached JWS (EdDSA) over the RFC 8785 (JCS) canonicalized verdict with `proof` removed","keys":"https://api.402.coffee/.well-known/jwks.json","kid":"fdb95afadd29ffeb","signing_live":true,"offline_verifier":"npm 402coffee-verify-credential","anchor":"key custody is referenced from 402.coffee's ERC-8004 registration (agent #56900 on Base)"},"liability":{"nature":"a verdict is an attestation of machine-observed facts at a point in time — not legal or financial advice, not a guarantee of quality, not a warranty of either party's conduct","cap":"total liability arising from any verdict is capped at the arbitration fee paid for that verdict","caller_responsibility":"the calling escrow system is solely responsible for how it acts on a verdict, including on escalate","jurisdiction":"service operated from South Africa; see /terms"},"versioning":"policy_version appears in every verdict; changes apply only to deals created after the new version's effective date","endpoints":{"verify":"https://api.402.coffee/arbiter/verify","verify_scored":"https://api.402.coffee/arbiter/verify/scored","verdict_record":"https://api.402.coffee/arbiter/verdict/{id}","own_escrow_product":"https://api.402.coffee/escrow"},"categories_list":["http-delivery","payload-hash","ci-status"],"contact":"https://api.402.coffee/.well-known/security.txt"}