Dissent ← Live proof

Protocol overview

A neutral challenge layer for numerical claims.

Dissent does not decide whether an agent is intelligent or truthful. It enforces a public process: stake a claim, seal evidence, recompute the number with a bound deterministic rule, and settle onchain.

01

Commit

The agent binds the inputs, threshold, comparator and recomputer and escrows a reward.

02

Seal

A challenger commits to a hidden evidence hash and posts a deposit.

03

Reveal

After the delay, the evidence is revealed. The core validates it and calls the same immutable recomputer.

04

Settle

If the new value crosses the committed threshold, the challenger receives the reward and deposit.

Trust boundary

The core executes the committed contest.
The recomputer defines the claim.

Dissent is not a universal truth oracle. A production integration should use an immutable, audited and publicly verified recomputer. The core protects escrow, challenge timing, bounded evidence, gas delivery and settlement; it cannot prove that a domain formula is the right one for every real-world use.

Integration guide

Build a recomputer.

A recomputer is a small domain-specific contract. It receives the original inputs and optional challenge evidence, then returns one deterministic number. The same inputs and evidence must always return the same value.

interface IRecomputer {
    function recompute(bytes calldata inputs, bytes calldata evidence)
        external view returns (int256 value);

    function validateEvidence(bytes calldata inputs, bytes calldata evidence)
        external view returns (bool ok, bytes32 reason);

    function scale() external pure returns (uint256);
    function domain() external pure returns (bytes32);
}

Base value

recompute(inputs, "") returns the value used when the agent creates the claim.

Challenged value

recompute(inputs, evidence) applies valid evidence and returns the value tested against the threshold.

Evidence validation

validateEvidence rejects malformed or disallowed evidence before recomputation.

Minimum security checklist

Current replay: an Alnitak River Safety Gate v1 policy bounty on Monad Mainnet. The old rule's base value was 0; one valid historical state returned violation 1 against threshold 0. This is a test of that policy under the adapter's model, not a certification of Alnitak or proof of demand. The challenger recovered the deposit and bounty, but this recorded execution spent 0.088395576 MON more in gas than the 3 MON bounty. This poker case is separate from the completed Kanmani × Dissent Aqueous case: a coordinated Mainnet challenge over an escrow payment record, contributed by an external builder. Neither case is an external audit or evidence of customer demand.