Dispute Resolution
Any party with evidence of validator misconduct can report a dispute. Disputes are resolved by an arbitration committee that reviews submitted evidence and renders one of three verdicts: guilty, innocent, or dismissed. Guilty verdicts slash the validator and reward the reporter. Innocent verdicts burn the reporter’s bond. Dismissal returns the bond without penalty. This page documents bond amounts, the lifecycle, and the outcomes.The three outcomes
Reporting a dispute
validatorMUST be an active validator (stakedAmount >= 10,000 NOTA).evidenceMUST NOT be empty. It is hashed on-chain (keccak256(evidence)); raw bytes are not stored.- The reporter posts a tier-dependent bond in NOTA.
Mapping from tier to dispute level:
INSTITUTIONALorENTERPRISEtier validator: dispute level isINSTITUTIONAL(25K NOTA bond).PROFESSIONALtier validator: dispute level isENHANCED(5K NOTA bond).BASICtier validator: dispute level isBASIC(1K NOTA bond).
Evidence handling
Evidence is hashed on-chain but stored off-chain. The on-chainevidenceHash provides tamper-evidence; the raw bytes are not part of the contract state. Implementations SHOULD use decentralized storage like IPFS for evidence and submit the CID as the evidence payload, enabling any party to retrieve and verify the evidence independently.
Dispute resolution
ROLE_SLASHING_ARBITRATOR. The arbitration committee reviews evidence off-chain and renders a verdict.
Guilty verdict
- The validator’s current tier determines slash rate.
slashedAmount = (stakedAmount * slashBps) / 10000.- Tokens are transferred from
NotareumValidatorStakingtoNotareumSlashingManager. - Slashed tokens are forwarded to
burnAddress. reporterReward = (slashedAmount * 1000) / 10000(10%).- Reporter receives
bondAmount + reporterReward.
Innocent verdict
- Reporter’s bond is transferred to
burnAddressas anti-spam. - Validator’s stake is unaffected.
Dismissal
Dispute struct
Dispute lifecycle
OPEN. Once resolved or dismissed, they are final.
Example: reporter math
A BASIC tier validator with 10,000 NOTA staked gets caught falsely attesting. The reporter posts 1,000 NOTA bond. The arbitration committee rules guilty.- Slash: 25% of 10,000 = 2,500 NOTA burned
- Reporter reward: 10% of 2,500 = 250 NOTA
- Reporter receives: 1,000 (bond) + 250 (reward) = 1,250 NOTA
- Validator loses: 2,500 NOTA from stake
- Slash: 50% of 250,000 = 125,000 NOTA burned
- Reporter posted: 25,000 NOTA bond
- Reporter reward: 10% of 125,000 = 12,500 NOTA
- Reporter receives: 25,000 + 12,500 = 37,500 NOTA
Why innocent verdicts burn bonds
Anti-spam. If bonds were returned on innocent verdicts, frivolous dispute spam would be free and the arbitration committee would drown in noise. Burning the bond imposes a real cost on bad-faith reports while preserving ample reward for good-faith whistleblowers.Arbitration committee
In v1.0, arbitration is centralized toROLE_SLASHING_ARBITRATOR. This role SHOULD be held by a multisig with a minimum 3-of-5 threshold. The committee is a bootstrapping compromise on the path to fully decentralized on-chain arbitration via governance voting in later protocol versions.
Example code
Reporter (TypeScript):Related pages
- Slashing for slash mechanics
- Staking and Tiers for tier thresholds
- Governance for progressive decentralization of arbitration
- SlashingManager contract

