Polymarket vs Kalshi
Two prediction markets that look alike on screen and behave differently underneath.
A market page on either venue shows the same three things: a question, a price in cents, and a book. Underneath, the differences change what a contract costs, what you can prove about a set of outcomes, and what you can learn about whoever is on the other side. Everything below comes from code that reads both venues continuously, so each claim is something that had to be handled to make the data usable.
At a glance
| Polymarket | Kalshi | |
|---|---|---|
| Venue type | Order book with on-chain settlement; positions are outcome tokens on Polygon | Regulated US exchange; contracts held in exchange accounts |
| Matching | Central limit order book, one book per outcome token | Central limit order book, one book per market carrying both sides |
| Executable YES ask | Best ask on the YES token's own book | Derived: 1 − best NO bid (both sides list resting bids) |
| Per-trader data | Public. Wallet address, open positions, activity, official lifetime profit | None published. Anonymous tape only |
| What a public print carries | Wallet, side, size, price, timestamp, transaction hash | Ticker, contracts, YES price, taker side, block flag, timestamp |
| Trading fee | None charged by the venue | 0.07 × P × (1 − P) per contract, taker side only |
| Real per-unit cost modelled here | ≈ 0.2¢ per share (gas + spread allowance) | ≈ 1.75¢ at 50¢, ≈ 0.3¢ at 95¢ |
| Multi-outcome flag | negRisk — exactly one listed leg resolves YES | mutually_exclusive — at most one listed leg resolves YES |
| Provable full-set structures | Buy-every-YES and buy-every-NO | Buy-every-NO only |
| Resolution rules | Per-market rules text | Per-series rules naming a specific authority or report |
| Posted liquidity field | Dollar liquidity per market from the public catalog | Zero on nested events; depth reconstructed from top of book |
| Catalog access | Paging caps near 2,100 rows; full catalog needs a crawl | Market endpoint is dominated by auto-generated parlay legs; the events feed is the usable one |
Two order books, built differently
Neither venue is a bookmaker and neither is an automated market maker. On both you trade against other participants' resting limit orders, matched by price then time, which is why a price on either reads as consensus rather than a number somebody set. They diverge the moment you price a trade programmatically. Polymarket serves a book per outcome token — YES and NO are separate tokens whose books mirror each other level for level. Kalshi serves one book per market in which both sides list resting bids, so buying YES means crossing the NO bids: the executable YES ask ladder is one minus each NO bid, walked down from the best, and the size at its top is exactly what rests at that bid. Neither venue has a price so much as a ladder.
What each venue publishes about who is trading
Because Polymarket settles on-chain, a wallet address is a durable identity: public endpoints return a wallet's open positions, its activity with side, size, price and timestamp, and its official lifetime profit. Identified means an address with a persistent handle, not a person — wallets are pseudonymous, and one trader can run several. One trap deserves naming: the positions feed is the current book, so redeemed winners drop out of it while unredeemed losers stay, and summing it is not a track record.
Kalshi publishes nothing per-user. Whatever you compute from its tape is anonymous aggregate flow — size, timing, one-sidedness — which can never accumulate into a record attached to a person. That is a property of the venue, not something an analytics product can engineer around.
Fees: no trading fee is not the same as free
Kalshi's published per-contract fee is quadratic and symmetric around fifty cents, where it is largest, and it is a taker charge a resting order avoids. Polymarket charges no trading fee, which is not costless: a leg pays on-chain gas plus whatever the spread takes, booked here at about two tenths of a cent per share so a claimed edge has to survive an honest allowance. Near mid-range that makes a Kalshi leg many times more expensive per contract, and the fee peaks exactly where cross-venue disagreement clusters. Both venues can revise their schedules.
Multi-outcome sets: negRisk against mutually_exclusive
Both venues flag one-winner events, and the flags mean different things. negRisk certifies the candidate list is exhaustive and exclusive: exactly one leg resolves YES. mutually_exclusive certifies only that no two listed outcomes can both resolve YES — nothing promises one of them will. So one NO of every leg pays at least n − 1 on either venue, while one YES of every leg collects exactly a dollar on a negRisk event and can collect nothing on a Kalshi one, because an outcome nobody listed can win.
Resolution, and why a cross-venue gap is never risk-free
Two markets can describe the same event in identical plain English and still resolve differently, because the rules text points at different authorities. Kalshi names a resolution source per series — daily temperature settles against a named climate report for a specific weather station rather than a city, enough to flip which bucket wins. The clearest cross-venue case is a World Cup top-scorer pair where one venue's “leads in goals” wording can resolve YES for every tied leader while the other breaks the tie to a single winner: part of that price gap is tie handling, not football. A gap therefore has at least two components, mispricing and rulebook. Our Arbitrage Scanner prices the first after fees and labels the second, and renders no locked spread for a pair whose rules can diverge — a members-only tool at $49.99/mo, no free tier.
Liquidity and depth as the data actually reads
Volume says a market has been traded; depth says whether you can trade it. Both books normalise to a best-first ladder of executable asks, and the honest answer to how much size a price supports is a walk down that ladder until the edge is gone or a leg runs dry. Polymarket publishes a dollar liquidity figure per market; Kalshi's nested-event feed returns zero for that field on every leg, so depth is rebuilt from top of book — buying NO crosses the YES bid, so posted dollars approximate resting YES bid size times the NO ask. A data-availability difference, not evidence that either venue is thinner.
So which one
Polymarket is the venue where you can audit the other side of the trade, and it charges no trading fee, paying for that in gas and spread. Kalshi is a regulated exchange whose fee a maker avoids entirely, whose data gives you flow but never people, whose multi-outcome guarantee is weaker and whose resolution rules are usually more explicit. Different instruments, listed on the same questions.
Common questions
Can you see who is trading on Kalshi?
No. Kalshi publishes no per-user data. Its public tape carries a ticker, a contract count, a price, which side was the aggressor, a block flag and a timestamp — no account identifier. A run of same-side prints could be one determined trader or twenty, and nothing public tells them apart. Wallet-level tracking is Polymarket-only, and it exists there because positions settle on a public blockchain.
Which venue is cheaper to trade?
It depends where in the price range you trade. Kalshi's per-contract fee is largest at fifty cents, about 1.75¢, and small at the tails, about 0.3¢ at 95¢ — and a resting order that never crosses the spread avoids it entirely. Polymarket charges no trading fee, but a leg there still costs on-chain gas plus whatever the spread takes, modelled in this codebase at roughly two tenths of a cent per share.
Is arbitrage between Polymarket and Kalshi risk-free?
No. Two markets can describe the same event in identical English and resolve differently, because their rules point at different authorities. A top-scorer market that resolves YES for every tied leader is not the same contract as one that breaks the tie to a single winner, and part of any gap between them is that rule difference. Execution, timing and settlement horizon are risks on top of it.
Read further
- Each venue in depth: tracking Polymarket wallets (public addresses, auditable settled trades) and reading Kalshi order flow (anonymous tape, no per-user data at all)
- Negative risk (negRisk) and mutually exclusive
- Kalshi's fee formula and all-in cost
- Central limit order book, executable ask, market depth
- Resolution source
WhaleTracks is an independent analytics product, not affiliated with, endorsed by, or partnered with Polymarket or Kalshi. Everything above is read from their public APIs and public blockchain data; venues change fee schedules, endpoints and market rules, so verify anything you intend to size a position on against the venue itself. Informational analytics, not financial advice. WhaleTracks never places trades and never holds funds.