The three verdicts
Shadow points outcomes: upheld reduces provider points and credits the challenger; rejected forfeits the stake; ambiguous unlocks it.
Every challenge resolves to exactly one of three verdicts, and each verdict produces fixed entries in the Shadow points calculation. Nothing about that arithmetic is discretionary except the operator-recorded verdict itself.
✓ Upheld: the operator accepts the evidence
- The challenger's stake unlocks, fully returned.
- The provider's points calculation is reduced by max(250 GPUs, 25x the receipt's net earn).
- Half the provider-points reduction is credited to the challenger as the bounty. The other half is credited to no one.
- The provider's model claim state is recorded as quarantined. Under today's default Shadow integrity mode, that state does not itself stop routing. See Provider bonds & quarantine.
✕ Rejected: the operator rejects the evidence
- The challenger's stake is forfeited: burned, not paid to anyone.
- The provider points are unchanged, and the review records an informational trust event.
The asymmetry is deliberate. If rejected stakes were paid to the accused provider, a provider could challenge itself through a friendly wallet and farm its accusers. Burning the forfeit keeps false accusations costly without making honesty a revenue stream for anybody.
~ Ambiguous: the evidence did not decide it
- The stake unlocks. No slash, no bounty, no forfeit.
- A warning lands on the provider's trust record.
- The receipt becomes challengeable again, so better evidence can retry what a weak filing could not prove.
Vocabulary, precisely
Stake is what a challenger locks to file. Slash is the provider penalty on uphold. Bounty is the challenger's half of the slash. Forfeit is a rejected challenger's burned stake. Bond is separate. Today bond_amount is declared claim metadata with no USDC escrow; funded provider collateral is Proposed. The words are used consistently in the wire formats, code, and glossary.
- router/src/trust/challengeEconomics.ts the verdict outcomes, encoded
- router/src/trust/integrity.ts resolution and quarantine