Skip to main content
Polymarket does not charge fees on most markets. However, certain markets have taker fees enabled to fund the Maker Rebates Program.

Fee-Free Markets

The vast majority of Polymarket markets have no trading fees:
  • No fees to deposit or withdraw USDC (though intermediaries like Coinbase or MoonPay may charge their own fees)
  • No fees to trade shares

Markets With Fees

The following market types charge a small taker fee on each trade. These fees are collected and redistributed daily to market makers as rebates, incentivizing deeper liquidity and tighter spreads.
  • 15-minute crypto markets
  • 5-minute crypto markets
  • NCAAB (college basketball) markets (starting February 18, 2026 for new markets)
  • Serie A markets (starting February 18, 2026 for new markets)

Fee Structure

Fees are calculated using the following formula:
fee = C × feeRate × (p × (1 - p))^exponent
Where C = number of shares traded and p = price of the shares. The fee parameters differ by market type:
ParameterSports (NCAAB, Serie A)5-Min & 15-Min Crypto
Fee Rate0.01750.25
Exponent12
Maker Rebate %25%20%
Taker fees are calculated in USDC and vary based on the share price. However, fees are collected in shares on buy orders and USDC on sell orders. The effective rate peaks at 50% probability and decreases symmetrically toward the extremes.

Fee Table

PriceTrade ValueFee (USDC)Effective Rate
$0.01$1$0.000.00%
$0.05$5$0.0030.06%
$0.10$10$0.020.20%
$0.15$15$0.060.41%
$0.20$20$0.130.64%
$0.25$25$0.220.88%
$0.30$30$0.331.10%
$0.35$35$0.451.29%
$0.40$40$0.581.44%
$0.45$45$0.691.53%
$0.50$50$0.781.56%
$0.55$55$0.841.53%
$0.60$60$0.861.44%
$0.65$65$0.841.29%
$0.70$70$0.771.10%
$0.75$75$0.660.88%
$0.80$80$0.510.64%
$0.85$85$0.350.41%
$0.90$90$0.180.20%
$0.95$95$0.050.06%
$0.99$99$0.000.00%
The maximum effective fee rate is 1.56% at 50% probability. Fees decrease symmetrically toward both extremes.

Fee Precision

Fees are rounded to 4 decimal places. The smallest fee charged is 0.0001 USDC. Anything smaller rounds to zero, so very small trades near the extremes may incur no fee at all.

Identifying Fee-Enabled Markets

The following market types have fees enabled:
  • 15-minute crypto markets
  • 5-minute crypto markets
  • NCAAB (college basketball) markets (starting February 18, 2026 for new markets)
  • Serie A markets (starting February 18, 2026 for new markets)
Query the fee-rate endpoint to check any specific market. See the API Reference for full endpoint documentation.
GET https://clob.polymarket.com/fee-rate?token_id={token_id}

Fee Handling for API Users

Using the SDK

The official CLOB clients automatically handle fees for you — they fetch the fee rate and include it in the signed order payload. What the client does automatically:
  1. Fetches the fee rate for the market’s token ID
  2. Includes feeRateBps in the order structure
  3. Signs the order with the fee rate included
You don’t need to do anything extra. Your orders will work on fee-enabled markets.

Using the REST API

If you’re calling the REST API directly or building your own order signing, you must manually include the fee rate in your signed order payload. Step 1: Fetch the fee rate for the token ID before creating your order:
GET https://clob.polymarket.com/fee-rate?token_id={token_id}
See the fee-rate API Reference for full response details. Fee-enabled markets return a non-zero value; fee-free markets return 0. Step 2: Add the feeRateBps field to your order object. This value is part of the signed payload — the CLOB validates your signature against it.
{
  "salt": "12345",
  "maker": "0x...",
  "signer": "0x...",
  "taker": "0x...",
  "tokenId": "71321045679252212594626385532706912750332728571942532289631379312455583992563",
  "makerAmount": "50000000",
  "takerAmount": "100000000",
  "expiration": "0",
  "nonce": "0",
  "feeRateBps": "1000",
  "side": "0",
  "signatureType": 2,
  "signature": "0x..."
}
Step 3: Sign and submit:
  1. Include feeRateBps in the order object before signing
  2. Sign the complete order
  3. POST to the order endpoint
Always fetch fee_rate_bps dynamically — do not hardcode. The fee rate varies by market type and may change over time. You only need to pass feeRateBps.

Next Steps