Skip to main content
Polymarket tokenizes market outcomes using the Conditional Token Framework (CTF), an open standard developed by Gnosis. Understanding CTF explains how positions are created, combined, and redeemed onchain.

What Is CTF?

CTF creates ERC-1155 tokens that represent prediction-market outcomes. Each binary market has two outcome tokens: These tokens are fully collateralized. Every YES and NO pair is backed by exactly $1 of collateral locked through the CTF contracts.

Core Operations

CTF provides three operations for moving between collateral and positions:

Split

Convert pUSD into a YES and NO token pair.

Merge

Convert a YES and NO token pair back into pUSD.

Redeem

Exchange resolved outcome tokens for their payout.

Token Flow

pUSD can be split into YES and NO outcome tokens, which can be traded, merged, or redeemed after resolution.

Token Identifiers

Each outcome token has a unique position ID, which is used as its ERC-1155 token ID. CTF computes it onchain in three steps.
1

Compute the Condition ID

2

Compute the Collection IDs

The indexSet is a bitmask identifying which outcome slots belong to a collection. It must be a nonempty proper subset of the condition’s outcome slots. A binary market has one collection for each outcome.
3

Compute the Position IDs

The resulting position IDs are the ERC-1155 token IDs for the market’s YES and NO outcomes. Most integrations should read these token IDs from market data. Computing them manually is only necessary for direct contract integrations.

Standard and Negative-Risk Markets

Polymarket uses different CTF configurations for standard and negative-risk markets: For negative-risk markets, a conversion operation can exchange one NO token for YES tokens in the event’s other outcomes. See Negative Risk Markets for details.

Contract Addresses

See Contracts for Polymarket’s current smart contract addresses on Polygon.

Next Steps

Split a Position

Create outcome token pairs from pUSD.

Merge Positions

Convert balanced token pairs back into pUSD.

Redeem Positions

Collect payouts after resolution.