API + MCP live · talk to us

// EXECUTION & FEES

Polymarket fees and gas explained

2026-07-16 · Mithril

Ask a Polymarket trader what the fees are and you'll usually hear "there aren't any." That is close to true in the narrow sense — Polymarket charges no exchange trading fee on most markets — and badly wrong in the sense that matters, which is what a position costs you relative to fair value. This post itemizes where the money actually goes on Polymarket: spread, price impact, Polygon gas, and the costs of getting USDC in and out.

The headline: no exchange trading fee (mostly)

On most Polymarket markets today, neither makers nor takers pay a trading fee to the exchange. You buy YES at 0.42, you pay $0.42 per share, full stop. Polymarket has experimented with fees on specific market types over time, so treat "no fee" as the default and check the current documentation for the market you trade rather than assuming it is universal.

Structurally, Polymarket is a CLOB — a central limit order book — where orders are EIP-712 typed-data messages signed by your wallet, matched off-chain by the operator, and settled on-chain as USDC and ERC-1155 outcome tokens on Polygon. Market metadata is served without auth from gamma-api.polymarket.com; orders go through clob.polymarket.com. Prices are decimal probabilities from 0.01 to 0.99.

So if the exchange takes nothing, what do you pay?

Cost 1: the spread

Every marketable order pays the bid–ask spread. If the book is 0.41 bid / 0.43 offer, the mid is 0.42 and a market buy fills at 0.43 — a 1¢ cost per share relative to mid, or about 2.4% of the premium. In liquid political markets the spread can be a single tick; in long-tail markets it can be 3–5¢ or more. On a venue with no explicit fee, the spread is the fee — it is what liquidity providers earn for quoting.

Cost 2: price impact in thin books

Displayed depth on Polymarket is often a few hundred to a few thousand shares at the touch. A marketable order larger than the top level walks down the order book, filling each successive level at a worse price. That difference between the quoted price and your average fill is slippage, and for size it routinely exceeds anything Kalshi charges in fees. Tactics for handling it — slicing, pacing, passive posting, hard slippage caps — are covered in Slippage in thin prediction markets.

Cost 3: Polygon gas

Settlement happens on Polygon, and someone pays gas for the on-chain legs: token approvals, deposits, withdrawals, splits/merges of outcome tokens, and redemptions after resolution. In practice, how much of this you pay directly depends on how you transact — Polymarket's own interface and relayer infrastructure absorb or abstract gas for many user flows, while a bot operating directly against the CLOB with its own wallet will sign and pay for its own on-chain transactions.

Polygon gas is cheap by Ethereum-mainnet standards — typically fractions of a cent to a few cents per transaction, spiking with network congestion — but it is nonzero, denominated in POL (formerly MATIC), and it means your trading wallet needs a gas balance in addition to USDC. For a high-frequency bot doing many small on-chain operations, gas is a real line item; for a position trader it is noise. Check current Polygon gas prices and Polymarket's docs for which operations your integration path actually signs.

Cost 4: getting USDC in and out

Polymarket balances are USDC on Polygon. Depending on where your capital starts, reaching that state has costs of its own:

  • On-ramping — buying USDC on an exchange typically costs an exchange trading fee plus a withdrawal fee.
  • Bridging — moving USDC from Ethereum mainnet to Polygon costs mainnet gas (the expensive kind) or a bridge fee.
  • Off-ramping — the reverse trip when you withdraw profits.

These are fixed-ish costs amortized over your trading, so they matter most for small accounts and for anyone moving capital in and out frequently — for example, rebalancing between venues to chase cross-venue price gaps.

A worked example

Suppose you buy 1,000 YES shares in a market displaying 0.42 bid / 0.44 offer, with 400 shares offered at 0.44, 600 at 0.45.

text
Mid at arrival:        0.430
Fill: 400 @ 0.44 + 600 @ 0.45  →  average 0.446
Exchange trading fee:  $0.00
Spread + impact cost:  (0.446 − 0.430) × 1,000 = $16.00
Polygon gas (if you settle on-chain yourself): ~cents

Total cost above mid: about $16 on a $446 position (~3.6%) — and the line item labeled "fees" is zero. This is why comparing Polymarket's "free" trading against Kalshi's explicit fee by looking only at fee schedules is meaningless; you have to compare net fill prices for your actual size. The side-by-side math is in Kalshi vs Polymarket fees: the total cost of a fill, and the Polymarket fee calculator will run the numbers for a book you specify.

The takeaway

Polymarket's cost model is implicit where Kalshi's is explicit. Neither is uniformly cheaper: Kalshi's fee peaks at 50¢ and vanishes at the tails; Polymarket's costs scale with spread and book depth, which vary by market and moment. The only comparison that means anything is done per order, at your size, against both live books.

That per-order comparison is what Mithril's router does: it nets out fees, spread, and estimated impact across Kalshi and Polymarket before sending your order, and itemizes the result on an execution receipt. It is free during beta.

Venue mechanics and fee policies change. Details above reflect public documentation as of July 2026 — always confirm against Polymarket's own docs before trading real money.

One API + MCP for Kalshi and Polymarket

Fee-aware routing, unified market IDs, and hard server-side risk limits — live today, free during beta.