> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testnet.dev.adipredictstreet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Binary markets

> Two-outcome YES/NO markets settled through CTFExchange + ConditionalTokens.

## 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 the `0b01` index set (outcome 0 YES)
* `noTokenId`  = position ID for the `0b10` index set (outcome 1 YES)

You buy into an outcome by acquiring its corresponding position token.
At resolution, one of the tokens becomes worth 1 USDC; the other
becomes worth 0.

## Trading

Use `outcome: "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:

```http theme={null}
POST /api/vault/split-signature
POST /api/vault/merge-signature
```

See [Positions](/concepts/portfolio/positions) for details.

## Settlement

1. Oracle-service posts outcome via `PredictStreetOracle.proposeOutcome`.
2. 2-hour challenge window opens.
3. If no challenge, contract `reportPayouts` to `ConditionalTokens`,
   unlocking redemption.
4. Users redeem winning position tokens via
   `ConditionalTokens.redeemPositions`.

See [Settlement flow](/concepts/settlement/flow) for the timeline.
