There is no safe global constant called “the Polymarket fee.” Under CLOB V2, the protocol determines fees per market at match time. Makers are not charged a platform trading fee; takers pay only when the selected market is fee-enabled.
The reliable workflow is therefore:
- Read the selected market's current fee configuration.
- Apply the documented price-dependent fee curve.
- Add spread, slippage, and latency costs.
- Recheck the configuration before deploying or rerunning a backtest.
The source of truth is Polymarket's current Fees documentation, not a fee number copied from an older article.
The CLOB V2 Fee Formula
Polymarket documents the platform taker fee as:
fee_usdc = shares × fee_rate × price × (1 - price)
where price is between 0 and 1. The curve is symmetric around 50¢: the same number of shares traded at 30¢ and 70¢ incurs the same dollar fee. Fees are rounded to five decimal places, with a minimum charged amount of 0.00001 USDC.
The category's fee_rate is a coefficient in that formula. It is not a flat percentage of stake or winnings.
As checked on August 13, 2026, the official table lists a sports coefficient of 0.05, a maker fee rate of 0, and a 15% maker-rebate allocation. For 100 shares:
| Price | Trade value | Sports taker fee | Fee / trade value |
|---|---|---|---|
| 20¢ | $20.00 | $0.80 | 4.00% |
| 50¢ | $50.00 | $1.25 | 2.50% |
| 80¢ | $80.00 | $0.80 | 1.00% |
Those examples describe the current category curve, not a promise that every future sports market uses it. The market-level configuration wins.
How to Check a Specific Market
The V2 API exposes CLOB market information by condition ID. In the official Python client:
from py_clob_client_v2 import ClobClient
client = ClobClient(
host="https://clob.polymarket.com",
chain_id=137,
)
info = client.get_clob_market_info("CONDITION_ID")
fee_details = info.get("fd", {})
print("fee details:", fee_details)
print("minimum order size:", info.get("mos"))
print("minimum tick size:", info.get("mts"))
Gamma market objects also expose feesEnabled and a feeSchedule. Use the CLOB response for the parameters applied by the trading venue, and fail closed if a trading strategy cannot resolve the current fee configuration.
CLOB V2 removed feeRateBps from the signed order. Do not pass a fee guessed by your client: the operator sets the applicable fee at match time.
Maker Fees and Maker Rebates Are Different
A maker posts an order that rests on the book. A taker submits an order that immediately matches existing liquidity.
- Maker platform fee: currently zero in the official category table.
- Taker platform fee: charged on fee-enabled markets using the market's curve.
- Maker rebate: a daily USDC distribution funded from a portion of eligible taker fees.
The maker-rebate percentage is not a guaranteed rebate on every order. Your payout depends on executed maker liquidity and the program's current rules; Polymarket also states that rebate percentages can change. Treat a rebate as separately measured revenue, not as a negative fee baked into a backtest.
Polymarket also documents a tiered taker-rebate program. As with maker rebates, book only the rebate actually credited to the account.
The Old NCAAB “2% of Winning Payout” Model Is Obsolete
An earlier version of this article described a February 2026 NCAAB fee as 2¢ per winning share. That is not the current CLOB V2 fee model and should not drive new code or backtests.
Current fees are applied to fee-enabled taker fills at match time using the per-market curve. Settlement is not where your client should invent or deduct a category-specific “winnings fee.” Historical analyses must use the fee regime that existed when each fill occurred; forward simulations should use the selected market's current V2 parameters.
What About Polygon Gas?
CLOB orders are signed off-chain and matched by Polymarket, so a trader is not asked to submit a new Polygon transaction and pay gas for every fill. That does not make the entire wallet lifecycle costless:
- An EOA wallet can still need POL for on-chain operations.
- Deposit-wallet and approval flows use Polymarket's relayer infrastructure.
- Bridges, exchanges, or payment providers may impose their own charges.
- Polymarket says it does not charge deposit or withdrawal fees, but intermediaries may.
For trade-level modeling, do not add a fictional gas charge to each CLOB fill. Track actual wallet, bridge, and relayer-related costs separately when they occur.
Fees vs Sportsbook Vig
Sportsbook vig is embedded in the two quoted sides. For example, two sides at -110 imply about 104.8% in total probability before devigging. A prediction-market order book has a spread, a price-dependent platform fee on eligible taker fills, and possible price impact.
That makes “0% maker fee” an incomplete comparison. A maker can still suffer adverse selection, and a taker can pay both the spread and the platform fee. On a thin book, those execution costs can exceed conventional sportsbook vig even when the nominal maker fee is zero.
Calculate Breakeven in Dollars, Then Convert to Edge
For a proposed order, estimate:
expected_cost_usd = platform_fee_usd
+ spread_and_slippage_usd
+ latency_or_adverse_selection_usd
- rebates_actually_expected_usd
Then divide by filled shares to express that cost in cents per share. The required model edge must exceed the full expected cost with a margin for estimation error.
Do not hardcode a flat two-cent fee. The platform fee changes with price and shares, while slippage changes with order-book depth. A good simulator walks the available book, applies the market's fee curve to the expected fill, and records maker/taker status from the actual execution.
Entry, Exit, and Settlement
Platform fees attach to eligible taker fills:
- Buy as a taker and hold to settlement: one taker fill fee.
- Buy as a maker and hold: no maker platform fee, with possible rebate eligibility.
- Buy as a taker and later sell as a taker: two fee-bearing fills.
- Resolve at $0 or $1: resolution itself is not a second CLOB trade.
Holding can reduce the number of fee-bearing executions, but it is not automatically the best strategy. The decision must also include information risk, opportunity cost, and the value of exiting a bad position.
Implementation Checklist
Before trusting a live strategy or backtest:
- Use
py-clob-client-v2, not the archived V1 package. - Query the market's current CLOB fee details.
- Apply
shares × fee_rate × price × (1 - price)only to eligible taker fills. - Keep maker rebates and taker rebates as realized credits, not assumptions.
- Model spread and depth separately from the platform fee.
- Store the fee regime and maker/taker role with every fill for historical reproducibility.
- Recheck the official fee page before deployment because category parameters can change.
The practical takeaway is simple: the fee displayed in a table is only one part of execution cost. For a trading bot, the defensible threshold is built from the exact market fee, expected fill price, book depth, latency, and observed adverse selection.
Related deeper reads: - The Complete Guide to Prediction Market APIs — fees in the broader API landscape. - Hold to Settlement, Never Sell — when reducing executions helps and when it does not. - Execution Quality in Prediction Markets — spread, queue position, and adverse selection.