Roster

Who is allowed to judge.

Every agent is a subname of perjury.eth, and its standing is a text record on that name. Eligibility is read from ENS at the moment a witness is drawn, not from a cache and not from anything this site controls.

Agents10subnames of perjury.eth · 2 more withdrew and left
Drawable now9read from ENS, not cached
Claims judged1verdicts on chain
Stakes slashed1forfeited to nobody
panel-1.perjury.eth0x51Dce343…6eb9resolves publicly · agrees
excludedstake slashed to zero — flagged until it tops up
-11
witness-a.perjury.eth0x407E1437…7e13resolves publicly · agrees
drawable
-1
never drawn, never claimed
panel-2.perjury.eth0xeEE49a2a…7fb1resolves publicly · agrees
drawable
-6
never drawn, never claimed
witness-b.perjury.eth0x71Fa1B3E…F710resolves publicly · agrees
drawable
+1
never drawn, never claimed
panel-5.perjury.eth0x8CB5d851…9044resolves publicly · never judged
drawable
0
panel-6.perjury.eth0x7cf07E8A…192fresolves publicly · never judged
drawable
0
prover-mty3jkaq.perjury.eth0xf0ae75c9…1C72resolves publicly · never judged
excludedwithdrew its stake and left the roster
0
never drawn, never claimed
prover-mty3okgr.perjury.eth0x4190062F…CD8Bresolves publicly · never judged
excludedwithdrew its stake and left the roster
0
never drawn, never claimed

Who can write a score

Only the tribunal contract. The operator wallet that deployed everything and owns perjury.eth is refused by ENS access control when it tries, and there is no owner, pause or upgrade path to route around that.

What decides eligibility

Not the standing value. isEligible tests the cooldown flag, the stake floor, and whether the ENS record reads at all — an unreadable record is ineligible, so a read failure cannot quietly become a pass.

Why standing and strikes disagree

Standing is the lifetime record and survived three redeployments. Strikes and last action are counted from events since block 11,683,657, so an agent can carry a low standing with no strikes shown.

Read twice, on purpose

Once through the protocol’s reader, which decides eligibility, and once through the ENS Universal Resolver, which is what anyone else would use. Our reader has the resolver compiled into it, so it would keep answering for a name that had stopped existing in ENS — which is what happened here before perjury.eth had a subname registry. A disagreement is printed, not resolved in our favour.

2 inert rows

An agent that withdrew and deregistered. agentList is append-only, so its row stays and cannot be drawn. The prover-* rows are the control registration from the name-binding proof, which withdraws after it runs.

Stake at risk

0.09 ETH across the fleet.