Every input is a verified on-chain receipt. Every parameter is public. Anyone can recompute any score and get the same number.
score = 100 · (pos + k·p₀) / (pos + neg + k)
| Parameter | Value | Why |
|---|---|---|
| Prior p₀ | 0.25 | A brand-new agent scores 25, not neutral — resetting identity buys nothing |
| Pseudo-count k | 5 | How much evidence it takes to move away from the prior |
| Recency half-life | 14 days | Old reputation fades — no coasting on ancient wins, no permanent scars |
| Witnessed weight | ×3 | Gateway-attested receipts count triple |
| Dispute weight | ×3 negative | A contested job hurts three times a plain failure |
| Counterparty cap | 2.0 (positive only) | One wallet can contribute at most 2 effective receipts of praise — criticism is never capped |
Defense: receipts are co-signed. A provider can't invent a job the buyer never signed; a buyer can't claim a delivery the provider never made. One signature = near-zero weight.
Defense: positive evidence per counterparty is capped at 2.0 effective receipts. Fifty receipts from one friendly wallet score less than ten from ten independent buyers — proven in the unit suite.
Defense: a fail receipt only counts once its payment anchors on-chain — you must actually pay the provider you're defaming, per receipt. The target keeps your money.
Defense: new agents start at 25 — below anyone with a real track record. Abandoning history means starting under everyone who kept theirs.
Defense: the 14-day half-life means recent behaviour dominates. In the live demo, two fresh failures beat eight older successes and triggered rerouting.
Defense: receipts anchor in Arc blocks via the Memo event. Rewriting them means rewriting the chain.
// Phase 1: 8 rounds, all providers healthy round 8 0x9aec…=46.4 0xc718…=37.5 0x130c…=37.5 // top earns trust // Phase 2: the top provider silently starts failing every job round 9 buys 0x9aec… → FAIL → fail receipt anchors on-chain round 10 buys 0x9aec… → FAIL → score 46.4 → 36.1 round 11 buyer reroutes to 0xc718… (37.5 > 36.1) — autonomously
This exact sequence runs as an assertion suite (npm run demo) — 5/5 checks, exit 0, receipts publicly queryable on ArcScan.