Structure
Each binary market has exactly two outcomes:outcome=0 and
outcome=1. On-chain this corresponds to a single conditionId with
outcomeSlotCount=2 on ConditionalTokens.
Token IDs are derived deterministically from the condition:
yesTokenId= position ID for the0b01index set (outcome 0 YES)noTokenId= position ID for the0b10index set (outcome 1 YES)
Trading
Useoutcome: "0" or outcome: "1" in the order request. The server
resolves this to the correct tokenId for you. Internally the
Order.tokenId field in the EIP-712 payload carries the raw position
ID.
Split and merge
A user can exchange 1 USDC for a full set{1 YES, 1 NO}, or collapse
a full set back into 1 USDC:
Settlement
- Oracle-service posts outcome via
PredictStreetOracle.proposeOutcome. - 2-hour challenge window opens.
- If no challenge, contract
reportPayoutstoConditionalTokens, unlocking redemption. - Users redeem winning position tokens via
ConditionalTokens.redeemPositions.