Skip to main content

When to use

Binary markets only cover two outcomes. For questions with 3+ exclusive outcomes — e.g. “Who wins the Premier League?” with Arsenal / Chelsea / Draw / Other — PredictStreet uses a neg-risk market backed by the NegRiskAdapter contract. Neg-risk lets you trade each outcome independently as a separate binary YES/NO, but guarantees collateral efficiency via convertPositions: holding the full set of NO tokens is equivalent to holding 1 USDC, which can be converted back atomically.

Differences from binary

Different verifyingContract. An EIP-712 order signed for the binary exchange will fail signature validation on a neg-risk market. Always match verifyingContract to the market type.

Outcome indexing

For a 4-outcome market (["Arsenal", "Chelsea", "Draw", "Other"]), outcomes are "0", "1", "2", "3". Each outcome has its own YES and NO tokens.

convertPositions

The neg-risk invariant: holding NO across all outcomes except one is equivalent to holding 1 USDC. convertPositions collapses that basket into collateral atomically.
The request uses a dual-signature flow (user + backend).

Resolution

The oracle settles each outcome independently against the same conditionId. At resolution, reportPayouts is called with a payout array where exactly one outcome is 1 and the rest are 0.
Current limitation (testnet): the automated multi-source oracle-service does not yet propose outcomes for neg-risk markets directly — it flows outcomes through PredictStreetOracle only. Neg-risk market resolution on testnet is driven by the admin-controlled path against NegRiskAdapter. The 2h challenge window and bond mechanics still apply at the PredictStreetOracle level for the underlying condition. Automated neg-risk proposal support is on the oracle-service roadmap.