Polymarket's Conditional Token Framework: What Traders Need to Know
Polymarket's binary outcome shares are built on Gnosis's Conditional Token Framework — a specific on-chain architecture that shapes how collateral moves, how positions settle, and where custody risk actually lives. Here is what that means in practice for anyone running capital on the platform.
Polymarket's interface looks simple — you pick a side, you put up USDC, you wait for resolution. What sits underneath is anything but. Every position you hold is a conditional token minted by Gnosis's Conditional Token Framework (CTF), a smart contract standard that encodes outcome logic directly into ERC-1155 token balances. Understanding that substrate is not academic: it determines settlement latency, counterparty exposure, and exactly which entity holds your collateral at every stage of a trade.
What the CTF Actually Does
The CTF is a factory. When Polymarket creates a new market, it calls prepareCondition on the CTF contract, registering a conditionId derived from an oracle address, a questionId, and an outcome count. For binary markets that count is always two — YES and NO.
From that point forward, any USDC deposited into the market gets split into a set of outcome tokens. One unit of USDC produces exactly one YES token and one NO token. The contract calls this a position split. The invariant is strict: the full collateral value is conserved across all outcome tokens at all times. You cannot create a YES token without a corresponding NO token being minted simultaneously.
This matters because it means there is no order book in the traditional sense. When you buy YES shares, you are either purchasing tokens that another participant already minted and posted for sale, or the system is splitting fresh USDC on your behalf through a liquidity mechanism. Either way, the total supply of YES plus NO for any condition is always exactly equal to the USDC locked in that condition's collateral pool.
Splits, Merges, and the Redemption Path
The inverse of splitting is merging. If you hold both a YES token and a NO token for the same condition, you can call mergePositions to reclaim the underlying USDC. This is a trustless, instant operation — no counterparty approval required, no oracle needed.
Post-resolution, redemption works differently. The oracle (in Polymarket's case, UMA's Optimistic Oracle) reports the payout numerators: [1, 0] if YES wins, [0, 1] if NO wins. The CTF stores those on-chain, and token holders call redeemPositions to claim their pro-rata share of the collateral pool. A winning YES token at a market with 1,000,000 USDC in collateral redeems for exactly 1.0 USDC — no rounding, no fee taken at the CTF layer.
The practical implication: settlement risk is primarily oracle risk, not counterparty risk. Your USDC never passes through a centralized order book. It sits in the CTF contract the entire time.
Where Custody Risk Actually Lives
Three distinct entities touch your funds across a typical Polymarket trade:
- Gnosis CTF contract — holds the raw USDC collateral. Audited, immutable for a given deployment, no admin upgrade keys in the current production version.
- Polymarket's CLOB (Central Limit Order Book) — operates on Polygon and matches orders off-chain before settling position transfers on-chain. This layer introduces a brief window where you have a signed order but no on-chain confirmation.
- UMA Optimistic Oracle — responsible for reporting outcomes. There is a dispute window (currently 48 hours for most markets) during which any party can challenge a proposed resolution by posting a bond. If a dispute escalates, UMA token holders vote.
The CLOB layer is the one most traders underweight. Polymarket runs a proprietary matching engine, and your signed order is an off-chain commitment. If the matching engine fails or halts between order submission and on-chain settlement, you may be left holding an unmatched order rather than a token position. For large positions, always verify the on-chain token balance, not just the Polymarket UI balance.
Liquidity and the Automated Market Maker Fallback
Polymarket operates a hybrid model. The primary venue is the CLOB. Where CLOB liquidity is thin — typically on longer-dated or more exotic questions — an AMM pool (based on a constant-product variant adapted for binary tokens) provides passive liquidity. Prices from the two venues can briefly diverge, which is a source of latency arbitrage that systematic trading infrastructure is well-positioned to exploit.
The AMM charges a swap fee (currently 2% for most markets), whereas the CLOB charges a taker fee that is substantially lower for high-volume participants. If you are routing through the AMM when CLOB fills are available, you are leaving money on the table on every trade.
What This Means for Settlement Timing
Resolution is a two-step process: oracle assertion, then on-chain payout availability. UMA's 48-hour dispute window means that even after a market "resolves" in the UI, your USDC is not immediately redeemable. Factor this into any position that matures close to a liquidity event — rolling capital into a new market the day a resolution drops will require careful timing if the dispute window has not yet cleared.
One nuance worth noting: Polymarket can and has expedited resolutions for unambiguous outcomes by waiving the dispute window via a whitelisted asserter role. This is not guaranteed behavior, and you should not build automated settlement logic that assumes it.
Reading the On-Chain State Directly
If you are running a bot or need authoritative position data, the CTF contract is the source of truth. On Polygon mainnet the deployed address is 0x4D97DCd97eC945f40cF65F87097ACe5EA0476045. Call balanceOf(address account, uint256 positionId) where the positionId is derived from the collateral token address and a collection ID that encodes the condition and outcome index. Polymarket's own API exposes these IDs in its markets endpoint — cross-referencing the API output against on-chain balances is a basic sanity check that every production system should run.
If you are building or scaling a Polymarket trading operation and want infrastructure that reads settlement state directly from the chain rather than trusting UI abstractions, talk to us.
Need a bot like this built?
We design, build and run trading bots on Solana, Hyperliquid and Polymarket.
Start a projectMore from the blog
Public vs Paid RPC: How to Run a Fair Benchmark
A fair comparison of public and paid RPC endpoints must account for quotas, workload, freshness and support guarantees.
Read articleRPC Benchmark Percentiles Explained: p50, p95 and p99
Why averages hide the latency spikes that break trading bots, wallets and production blockchain applications.
Read articleHyperliquid REST vs WebSocket Benchmark: What to Measure
A benchmark plan for Hyperliquid market data that separates request latency from streaming freshness and recovery.
Read article