How Prediction Markets Work (Part 2): Tokenization and Market Types
How a question about the future becomes something you can buy, sell, and redeem. Learn about the Conditional Token Framework, binary, multi-outcome and scalar markets, and who can create a market in the first place.

Software Engineer
A prediction market contract is a claim on a future event that pays $1 if you're right. Getting from "Will X happen?" to something a user can hold, sell, and redeem is the tokenization layer.
Onchain platforms like Polymarket turn each possible outcome into its own token, held in the user's wallet, with the collateral locked in a contract until an oracle says which token is worth a dollar.
However, centralized exchanges don't use tokenization to represent positions. On Kalshi or ForecastEx, your position is a balance carried by a clearinghouse. Nothing is minted or leaves the exchange.
Part 1 covered the legal classification that determines which of those a platform can run, and who ends up owning the exchange. This part covers what the user holds.
The five layers, for reference:
- Layer 1: Tokenization or position representation (this article)
- Layer 2: Trading mechanism
- Layer 3: Resolution
- Layer 4: Settlement and fees
- Layer 5: Data infrastructure
Layer 1: How do predictions become tradable assets?
On a centralized exchange, they don't become assets at all. Your position is a balance carried by a clearinghouse, the same way a futures position sits in a broker's books.
Onchain, it happens through tokenization. Each possible outcome becomes its own token, and the collateral backing them sits locked in a contract until the market resolves. Mechanically, you deposit $1, receive one token per outcome, and those tokens trade independently from that point on. Almost every onchain platform does some version of this, most of them using the same standard.
The Conditional Token Framework (CTF)
The industry standard is the Gnosis Conditional Token Framework, a single Solidity contract built on ERC-1155 (a multi-token standard where one contract manages many distinct token types, whereas ERC-20 contracts manage only one) that tokenizes outcomes across any number of markets.
Polymarket is the flagship implementation. Every outcome on Polymarket is a CTF token, and every Yes/No pair is backed by exactly $1.00 of collateral locked in the contract. Limitless runs a fork of Polymarket's CTF Exchange built on Base.
The CTF does three things: creates a market, splits money into outcome tokens, and pays out the winners. Each one is a function call.
Preparing a condition:
// Create the market. You name the oracle that will decide the result,
// the question, and how many possible answers it has.
prepareCondition(oracle, questionId, outcomeSlotCount)
// The market's permanent ID, derived by hashing those same three inputs.
// Change any one of them and you have a different market.
conditionId = keccak256(abi.encodePacked(oracle, questionId, outcomeSlotCount))An oracle address, a question identifier, and the number of possible outcomes are hashed together into a unique condition. This binds the condition to a specific oracle, so only that address can later resolve it.
Splitting collateral into outcome tokens:
// Deposit collateral, receive one token for every possible outcome.
// partition = which outcomes you want tokens for
// amount = how much collateral you're putting in
splitPosition(collateralToken, parentCollectionId, conditionId, partition, amount)
// The reverse. Hand back one token of each outcome, get your collateral back.
mergePositions(collateralToken, parentCollectionId, conditionId, partition, amount)A user deposits 10 USDC into the CTF contract and receives 10 "Yes" tokens plus 10 "No" tokens for a binary market. The collateral is locked. The tokens are independent ERC-1155 assets that can be transferred, traded, or composed with other DeFi protocols.
The reverse operation, mergePositions, burns one Yes and one No together and returns the dollar of collateral. That's what holds the two prices to a dollar in aggregate: if Yes and No together trade for less than $1, anyone can buy both, merge, and keep the difference.
Resolution and redemption:
// The oracle reports the result. payouts holds one number per outcome,
// so [1, 0] means the first outcome won and the second is worth nothing.
reportPayouts(questionId, payouts)
// Winners cash in. indexSets tells the contract which outcome
// tokens you're redeeming.
redeemPositions(collateralToken, parentCollectionId, conditionId, indexSets)When the oracle reports that "Yes" won, each "Yes" token becomes redeemable for $1 of collateral. "No" tokens become worthless.

Why the settlement token is now a design decision
The CTF is collateral-agnostic and works with any ERC-20, which platforms have started treating as an opportunity.
Polymarket's V2 upgrade on April 28, 2026 migrated collateral from USDC.e to pUSD, a Polygon ERC-20 backed 1:1 by USDC with the backing enforced onchain. Day to day nothing changes for a trader.
The reason to issue your own wrapped collateral is control: over compliance hooks, on and off-ramps, approval UX, and potentially yield on the backing. Myriad made a related choice, standardizing its BNB Chain markets on USD1 as the base settlement asset.
The mechanics of splitting and redeeming are unchanged either way. What changed is that the collateral token became something platforms pick deliberately.
Combinatorial positions (combos)
The elegance of the CTF is composability. You can create tokens that pay out only if multiple conditions all resolve a certain way. Split on Condition A, take the "A wins" tokens, split those on Condition B, and you hold a position that pays only if both resolve as expected.
For example, you can start with $1 and split it on "Party X wins the presidency." You get a Yes token and a No token. Now take the Yes token and split that on "Party X carries swing state Y." The result is a token that pays $1 only if both things happen. This is how platforms handle correlated markets like "Party X wins the presidency AND carries swing state Y."
Market types: binary, multi-outcome, and scalar markets
The CTF supports three different market type structures.
| Market type | Outcome tokens | Payout | Best for | Example |
|---|---|---|---|---|
| Binary | 2 (Yes, No) | Winner takes $1, loser $0 | Questions with one unambiguous resolution date | Will X happen by December 31? |
| Multi-outcome | 1 per candidate | One winner, rest worthless | Fields of mutually exclusive outcomes | Who wins the election? |
| Scalar (range) | 2, redeemed proportionally | Split by where the number lands | Continuous quantities like temperature, price, and economic indicators | What will Q4 GDP growth be? |
1. Binary outcome markets
Binary markets are the simplest. Yes or No, two outcome tokens, one wins. Super common and seen on most platforms.
For example: "Will X happen by December 31?" Deposit $100 and you get 100 Yes tokens and 100 No tokens. They trade independently from that point, and their prices sum to roughly $1 the whole time. If Yes is trading at $0.67, the market is putting the odds at 67%.
When the event happens, the oracle reports [1, 0]:
- Hold 100 Yes tokens and you redeem for $100
- Hold 100 No tokens and you redeem for $0
Someone who bought those Yes tokens at $0.67 turned $67 into $100. Whoever sold them the other side paid $33 and got nothing back. The winner's gain is exactly the loser's stake.
2. Multi-outcome markets
Multi-outcome markets (e.g. "Who wins the election?" with 10 candidates) introduce a correlation problem.
There's one token per candidate, and all ten prices sum to roughly $1. When the election resolves, the oracle reports a single 1 and nine 0s:
- Hold 100 tokens for the winning candidate and you redeem for $100
- Hold 100 tokens for any of the other nine and you redeem for $0
If you buy "Candidate A wins" at $0.30, you are implicitly selling all other outcomes. Polymarket handles this with a Neg Risk CTF Adapter, a wrapper contract that decomposes multi-outcome events into binary Yes/No pairs while managing the negative correlation between them. Without it, arbitrage gaps between the binary pairs and the constraint that all probabilities sum to 1 would make the market incoherent.
3. Scalar (range) markets
In scalar markets, instead of discrete outcomes, the payout is proportional to where a numeric value falls on a defined range. "What will Q4 GDP growth be?" across a 0% to 5% range pays out linearly against the actual figure.
The CTF handles this through reportPayouts , which takes an array of unsigned integers, one per outcome slot. The contract stores them as payoutNumerators and sums them into a payoutDenominator, so each token redeems for its numerator divided by the denominator.
Example: Using the GDP market above with its 0% to 5% range, if the figure comes in at 3.0%, that's 60% of the way up the range, so the oracle reports [60, 40] and the denominator is 100.
- Hold 100 "long" tokens and you redeem for $60
- Hold 100 "short" tokens and you redeem for $40
For a binary market the oracle reports [1, 0] and the denominator is 1. For a scalar result 60% of the way through the range it reports [60, 40], giving a denominator of 100. [3, 2] expresses the same 60/40 split. Each token redeems for its proportional share.
Scalar markets work well for continuous quantities like temperature, price, and economic indicators. They're harder to build good UX for, because reasoning about ranges and distributions is a harder interaction pattern than buying yes or no. Most production platforms concentrate on binary and multi-outcome markets even though the token framework handles all three.
The CTF alternative: bet-as-NFT
Not every prediction market uses the CTF. Azuro represents each bet as an ERC-721 NFT containing the condition ID, outcome, odds at time of placement, and bet amount. There are no tradable outcome tokens that fluctuate in price. You lock in odds when you bet, and the NFT is your receipt.
This sits architecturally closer to a decentralized sportsbook than a financial exchange. It simplifies the data model considerably and enables a secondary market for bet positions, though in practice few users resell bet NFTs compared to the volume of outcome token trading on CTF-based platforms.
Who creates the markets?
Every platform has to decide who's allowed to open a market.
| Model | Who creates | Used by | Strength | Weakness |
|---|---|---|---|---|
| Curated | Platform team | Polymarket, Kalshi, ForecastEx, Rothera, OG Prediction Markets | Clean resolution criteria, concentrated liquidity | Narrow coverage |
| Permissionless | Anyone | Manifold, XO Market | Broad long-tail coverage | Quality variance, split liquidity, spam |
| Data-provider governed | Licensed data providers | Azuro | Domain expertise in structured events | Poor fit for novel topics |
1. Curated
Used by Polymarket, Kalshi, ForecastEx, Rothera, and OG Prediction Markets. The platform team creates markets. For regulated venues it's not really a choice. Curation is a regulatory requirement. A DCM has to self-certify each contract with the CFTC, so someone at the exchange is accountable for every market listed. Polymarket curates too, though less by obligation.
The upside is clean resolution criteria and liquidity concentrated where it's useful. The downside is coverage: if the team doesn't write a market for your topic, it doesn't exist. Curation can also be expensive, which Meta learned in 2020 with Forecast. Arena's reported approach is to have AI models generate, recommend, and resolve markets automatically.
2. Permissionless
Used by Manifold, XO Market. Anyone can open a market on any topic. Coverage gets far broader, especially for niche or emerging topics, at the cost of poorly worded resolution criteria, duplicate markets splitting liquidity, and spam.
3. Data-provider governed
Used by Azuro. Data providers control creation, defining conditions for the events they cover. This works for sports leagues and esports tournaments where the set of possible markets is well-defined and the provider has domain expertise. Less suited to open-ended or novel topics.
4. Hybrid
The trend is toward hybrid market creation: permissionless creation with curation layers on top. Let anyone create a market, then surface the good ones through incentive design, community curation, or algorithmic ranking. Polymarket opened permissionless liquidity rewards in February 2026, letting anyone sponsor depth on any market, and has signaled permissionless market deployment and creator fees as the next step.
Tokenization determines what the user ends up holding. Setting prices happens in the trading mechanism, where four dominant architectures diverge, and in the oracle, which decides what outcome happened.
Read about prediction market trading mechanisms, resolution, and settlement in Part 3, coming soon.