Lesson 05·Platforms·9 min read

How Polymarket Works: USDC, UMA & On-Chain Resolution

Polymarket is built on Polygon. Trades clear on-chain in USDC; outcomes are resolved by UMA's optimistic oracle.

Polymarket is a non-custodial prediction market built on Polygon, a Layer 2 network connected to Ethereum. Every market is a smart contract that holds USDC and issues two tokens — one for each outcome. Traders buy and sell those outcome tokens; the winning side redeems for $1 of USDC each, the losing side goes to zero. Because contracts are on-chain and non-custodial, Polymarket itself never holds user funds.

The technical stack

Under the hood Polymarket combines four layers: a smart-contract layer on Polygon (CTF — the Conditional Token Framework), an off-chain order-book service, a matching engine, and a resolution layer powered by UMA's optimistic oracle. Users interact through the polymarket.com front-end or the mobile app, which wraps an embedded wallet that abstracts away MetaMask-style key management for non-crypto natives.

The Polymarket back-end is not decentralized. Order matching, market creation, and the UI are operated by Polymarket the company. Settlement — the part that touches money — is decentralized: any user can bypass the front-end, connect directly to the smart contracts, and trade or redeem positions with no permission from Polymarket.

How order matching works

Polymarket uses a central limit order book (CLOB) for matching, but settlement happens on-chain. When you place a limit order it sits in an off-chain order book operated by Polymarket. When it matches, both sides sign an EIP-712 order object and the trade settles on Polygon in a single transaction that transfers outcome tokens between them.

This hybrid design gives Polymarket the speed of a centralized exchange (sub-second matching, no gas per order) and the custody guarantees of DeFi (your USDC never leaves your wallet without your signature). It also means Polymarket can rate-limit or refuse to match orders — a real limitation for automated traders — even though it cannot seize your funds.

Worked example: a $100 trade

Suppose you want to buy 200 YES contracts on "Will the S&P close above 6,000 on Friday?" at $0.50 each. You deposit $100 USDC into your Polymarket-linked wallet, click BUY, and sign a Polymarket order. Polymarket's engine matches your order against sellers at $0.50, generates a batched transaction, and posts it to Polygon.

A few seconds later the transaction confirms. Your wallet holds 200 YES tokens; the counterparty holds 200 NO tokens. On Friday, if the S&P closes above 6,000, UMA proposes YES, no one disputes within the challenge window, and you can redeem each token for $1 — turning $100 into $200. If it closes below, your tokens go to $0 and the NO holder collects.

How outcomes get resolved

When a market closes, UMA's optimistic oracle decides the outcome. Anyone can propose a result and post a bond; if no one disputes within the challenge window (typically 2 hours), that result is finalized and the smart contract pays out winners. If there's a dispute, UMA token holders vote and the losing side of the dispute forfeits its bond.

This is usually fast and cheap, but it can fail in edge cases — ambiguous market wording, late-breaking news that changes what "happened," or coordinated dispute attacks. Polymarket has had public controversies about resolution decisions, most famously around the 2024 Ukraine/Zelensky suit market. The on-chain history of every proposal, dispute, and vote is permanent.

Common failure modes

When Polymarket goes down, it's usually one of four things. First, the front-end API — you can't see markets or your positions, but nothing is lost. Second, Polygon RPC providers (Alchemy, Infura, QuickNode) — you can see markets but transactions hang. Third, the order matching engine — orders fill slowly or not at all. Fourth, wallet connectivity — your wallet can't sign because a WalletConnect relay is down.

The status page above tracks each component separately so you can tell what's actually failing. If everything is red at once, it's usually Polygon itself — check status.polygon.technology.

Common pitfalls

Do not send USDC on the wrong chain. Polymarket wants USDC on Polygon PoS — sending Ethereum-mainnet USDC to your Polymarket address will leave the funds visible but unusable until you bridge. Keep a small amount of MATIC for gas; without it your withdrawals and redemptions will fail even though your USDC balance is intact.

Read the resolution criteria carefully. Two markets with almost identical titles can resolve on entirely different sources. "Will Bitcoin hit $150k this year?" might resolve on Coinbase spot, or CoinGecko close, or a specific timestamp — the difference of a minute or exchange can flip the outcome.

Frequently asked

Is Polymarket legal in the US?
Polymarket settled with the CFTC in 2022 for operating an unregistered binary options market and now geoblocks US users. Accessing it via VPN violates the platform's terms of service. Kalshi and Robinhood's event contracts are the legally available US alternatives.
What chain is Polymarket on?
Polygon PoS. You need a small amount of MATIC for transaction fees in addition to USDC for trading. The embedded Polymarket wallet abstracts most of this, but power users connecting external wallets need to plan for both tokens.
How does Polymarket make money if fees are 0%?
Polymarket earns from the bid/ask spread on its market-making activity and from float on USDC deposits in the embedded wallet system. It has also raised significant venture capital, so it's not pressured to squeeze fees the way a bootstrapped exchange would be.
What is UMA and why does Polymarket use it?
UMA is a decentralized oracle protocol that resolves data disputes through economic incentives. Polymarket uses UMA because it needs a permissionless way to bring real-world outcomes on-chain without trusting a single reporter. UMA's optimistic model is fast and cheap when nothing is disputed.
Can Polymarket freeze my funds?
No — because Polymarket is non-custodial, your USDC sits either in your own wallet or in an on-chain market contract. Polymarket can rate-limit or refuse to match your orders on its front-end, but the underlying tokens and positions remain yours to move on-chain.
How fast do withdrawals settle?
Withdrawals from Polymarket to an external wallet are on-chain transactions on Polygon and typically confirm in under a minute. Moving USDC from Polygon back to Ethereum or Solana requires bridging, which can take minutes (Wormhole) to hours depending on the bridge.
What happens if UMA disputes a market?
The proposed outcome is voted on by UMA token holders during a 48-hour voting period. The losing side of the dispute forfeits its bond. Market resolution and payouts are delayed until the vote finalizes. Most Polymarket markets never see a dispute.
Can I use Polymarket without crypto experience?
Yes — the embedded wallet lets you sign up with email, fund via credit card or Moonpay, and trade without ever seeing a seed phrase. Advanced users can connect MetaMask or Rabby for direct control. The core mechanics are the same in either flow.

The .health network

Independent status monitors for the tools and markets we track.