{"id":54,"date":"2026-08-17T22:32:00","date_gmt":"2026-08-17T22:32:00","guid":{"rendered":"https:\/\/polytrade.market\/blog\/polymarket-market-maker-bots-liquidity-rewards\/"},"modified":"2026-08-17T22:32:00","modified_gmt":"2026-08-17T22:32:00","slug":"polymarket-market-maker-bots-liquidity-rewards","status":"publish","type":"post","link":"https:\/\/polytrade.market\/blog\/polymarket-market-maker-bots-liquidity-rewards\/","title":{"rendered":"Polymarket Market Maker Bots: Liquidity Rewards, Rebates &#038; Spread Income"},"content":{"rendered":"<style>.affiliate-callout .button,.article-cta .button{display:inline-block!important;background:#2E5CFF!important;color:#FFFFFF!important;border:1px solid #2E5CFF!important;border-radius:10px!important;padding:14px 22px!important;font-weight:700!important;text-decoration:none!important}.affiliate-callout .button:hover,.article-cta .button:hover{background:#244BD6!important;color:#FFFFFF!important}article table{width:100%!important;border-collapse:separate!important;border-spacing:0!important;margin:28px 0 36px!important;border:1px solid #334155!important;border-radius:12px!important;overflow:hidden!important;background:#0F1725!important}article table th,article table td{padding:14px 16px!important;text-align:left!important;vertical-align:top!important;border-right:1px solid #334155!important;border-bottom:1px solid #334155!important;line-height:1.45!important}article table th:last-child,article table td:last-child{border-right:0!important}article table tbody tr:last-child td{border-bottom:0!important}article table thead th{background:#172554!important;color:#FFFFFF!important}article table tbody td{background:#0F1725!important;color:#E5E7EB!important}article table tbody tr:nth-child(even) td{background:#111C2D!important}article pre{background:#08111f!important;border:1px solid #26364d!important;border-radius:12px!important;padding:18px!important;overflow-x:auto!important;color:#d7e3f4!important}@media(max-width:700px){article table{display:block!important;overflow-x:auto!important;white-space:nowrap!important}article table th,article table td{min-width:180px!important}}<\/style>\n<figure class=\"wp-block-image size-full article-cover\"><img decoding=\"async\" src=\"https:\/\/polytrade.market\/blog\/wp-content\/uploads\/2026\/08\/polymarket-market-maker-bots-rewards-cover.jpg\" alt=\"Polymarket market maker bots liquidity rewards and rebates cover\"\/><figcaption>Market maker bots quote both sides, manage inventory, and compete for spread, liquidity rewards, and rebates.<\/figcaption><\/figure>\n<p class=\"article-lead\">Polymarket market maker bots provide the resting bids and asks that form the order book. They do not simply predict YES or NO. They continuously price both outcomes, place and cancel limit orders, control inventory, and decide whether the expected spread and incentives justify the risk of being filled.<\/p>\n<p>A market maker can have three distinct revenue sources: trading spread, liquidity rewards for eligible resting quotes, and maker rebates when another trader takes its liquidity. None is guaranteed profit. A bot can earn rewards and still lose money if stale quotes or inventory losses are larger.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/polytrade.market\/blog\/wp-content\/uploads\/2026\/08\/polymarket-market-maker-bot-trader.jpg\" alt=\"Trader operating a Polymarket market maker liquidity bot\"\/><figcaption>A production market maker monitors fair value, spread, quote age, reward score, fills, and inventory at the same time.<\/figcaption><\/figure>\n<section>\n<h2>What market making means on Polymarket<\/h2>\n<p>Polymarket uses a central limit order book. Makers place resting limit orders; takers trade against those orders. A bot might estimate fair YES probability at $0.50, quote a bid at $0.49, and quote an ask at $0.51.<\/p>\n<p>If it buys at $0.49 and later sells at $0.51, the gross spread is two cents per share. The real result also depends on fees, rebates, inventory, and whether fair value moved while the orders rested.<\/p>\n<p>The <a href=\"https:\/\/docs.polymarket.com\/concepts\/prices-orderbook\" target=\"_blank\" rel=\"noopener noreferrer\">official order-book documentation<\/a> explains that bids represent willing buyers, asks represent willing sellers, and tighter spreads generally indicate more liquid markets.<\/p>\n<\/section>\n<section>\n<h2>The three market maker income streams<\/h2>\n<table>\n<thead>\n<tr>\n<th>Income source<\/th>\n<th>How it is earned<\/th>\n<th>Main condition<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Spread capture<\/td>\n<td>Buy lower and sell higher<\/td>\n<td>Both sides fill without adverse price movement<\/td>\n<\/tr>\n<tr>\n<td>Liquidity rewards<\/td>\n<td>Maintain qualifying resting orders<\/td>\n<td>Quote size and spread must fit the market settings<\/td>\n<\/tr>\n<tr>\n<td>Maker rebates<\/td>\n<td>Provide liquidity that another trader takes<\/td>\n<td>Filled maker orders in eligible fee-enabled markets<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>These streams should be reported separately. A strategy that loses on trading but survives only because of temporary rewards has different risk from a strategy with positive spread capture before incentives.<\/p>\n<\/section>\n<aside class=\"affiliate-callout\"><strong>Inspect incentivized markets<\/strong><span>Read each market\u2019s minimum qualifying size, maximum spread, reward pool, and fee settings.<\/span><a class=\"button\" href=\"https:\/\/polymarket.com\/?r=nonamesx\" target=\"_blank\" rel=\"sponsored noopener noreferrer\">Register on Polymarket \u2197<\/a><\/aside>\n<section>\n<h2>How Polymarket liquidity rewards work<\/h2>\n<p>The <a href=\"https:\/\/docs.polymarket.com\/programs\/liquidity-rewards\" target=\"_blank\" rel=\"noopener noreferrer\">official liquidity rewards documentation<\/a> states that makers become eligible by posting resting limit orders. Rewards are paid directly to maker addresses daily at midnight UTC, with a $1 minimum payout.<\/p>\n<p>Every incentivized market defines:<\/p>\n<ul>\n<li>a minimum qualifying order size;<\/li>\n<li>a maximum qualifying spread;<\/li>\n<li>a reward allocation;<\/li>\n<li>the market midpoint used for scoring.<\/li>\n<\/ul>\n<p>The bot must read these current settings per market. A quote outside the maximum spread or below the minimum size can consume capital without earning reward points.<\/p>\n<\/section>\n<section>\n<h2>The August 2026 crypto reward allocation<\/h2>\n<p>As of this article\u2019s publication on August 17, 2026, the official program page describes a time-limited $1 million allocation across TWAP-settled crypto markets for August. This allocation can change and should not be treated as permanent income.<\/p>\n<table>\n<thead>\n<tr>\n<th>Horizon<\/th>\n<th>Total allocation<\/th>\n<th>BTC allocation<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>5-minute<\/td>\n<td>$550,000<\/td>\n<td>$300,000<\/td>\n<\/tr>\n<tr>\n<td>15-minute<\/td>\n<td>$350,000<\/td>\n<td>$225,000<\/td>\n<\/tr>\n<tr>\n<td>4-hour<\/td>\n<td>$100,000<\/td>\n<td>$50,000<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>These figures are configured reward caps, not guaranteed payouts. Actual rewards depend on eligible quoting, score share, competition, and the methodology below.<\/p>\n<\/section>\n<section>\n<h2>Why tighter quotes score more<\/h2>\n<p>The liquidity program uses a quadratic order-scoring function. In simplified form:<\/p>\n<p><strong>Order score = ((maximum spread \u2212 quote spread) \u00f7 maximum spread)\u00b2 \u00d7 size \u00d7 multiplier<\/strong><\/p>\n<p>A quote one cent from the adjusted midpoint receives much more weight than a quote close to the maximum allowed spread. Tight quotes improve the book but also increase fill and adverse-selection risk.<\/p>\n<table>\n<thead>\n<tr>\n<th>Maximum spread<\/th>\n<th>Your spread<\/th>\n<th>Relative score before size<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>3 cents<\/td>\n<td>1 cent<\/td>\n<td>About 0.444<\/td>\n<\/tr>\n<tr>\n<td>3 cents<\/td>\n<td>2 cents<\/td>\n<td>About 0.111<\/td>\n<\/tr>\n<tr>\n<td>3 cents<\/td>\n<td>3 cents<\/td>\n<td>0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Moving from two cents to one cent does not merely double score; the quadratic formula can make the tighter quote roughly four times stronger before size and competition are considered.<\/p>\n<\/section>\n<section>\n<h2>Two-sided quotes receive better treatment<\/h2>\n<p>The system calculates scores for both book sides and normally favors balanced liquidity. When the midpoint is between 0.10 and 0.90, single-sided orders can still score at a reduced rate using the current scaling factor. Near extreme probabilities below 0.10 or above 0.90, liquidity must be double-sided to score under the documented method.<\/p>\n<p>This pushes bots to quote both outcomes instead of placing one distant order solely to farm incentives.<\/p>\n<p>Scores are sampled every minute. The official methodology describes 10,080 samples per epoch, corresponding to one week of minute-level observations. A bot that quotes tightly for ten minutes and disappears for the rest of the week will compete poorly against consistent makers.<\/p>\n<\/section>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/polytrade.market\/blog\/wp-content\/uploads\/2026\/08\/polymarket-liquidity-reward-bot-dashboard.jpg\" alt=\"Polymarket liquidity reward bot with two-sided quotes and inventory metrics\"\/><figcaption>Reward optimization must stay subordinate to fair value and inventory risk.<\/figcaption><\/figure>\n<section>\n<h2>How the final liquidity reward is calculated<\/h2>\n<p>For each sample, a maker\u2019s qualifying score is normalized against all other makers in that market. Scores are then accumulated across the epoch and normalized again to determine reward share.<\/p>\n<p><strong>Your reward share = your final normalized score \u00d7 the reward available for the market<\/strong><\/p>\n<p>This means rewards are competitive. Adding size does not guarantee a fixed return because other market makers can tighten quotes, increase size, or remain active longer.<\/p>\n<\/section>\n<section>\n<h2>How maker rebates differ from liquidity rewards<\/h2>\n<p>Liquidity rewards score qualifying resting orders, including orders that may not fill. Maker rebates require your liquidity to be taken.<\/p>\n<p>The <a href=\"https:\/\/docs.polymarket.com\/programs\/maker-rebates\" target=\"_blank\" rel=\"noopener noreferrer\">official Maker Rebates page<\/a> states that rebates are paid daily in pUSD, require at least $1 accrued for payout, and are calculated per market.<\/p>\n<p>For each filled maker order, the protocol computes a fee-equivalent value:<\/p>\n<p><strong>Fee equivalent = shares \u00d7 fee rate \u00d7 price \u00d7 (1 \u2212 price)<\/strong><\/p>\n<p>Your daily rebate is proportional to your fee-equivalent share of that market\u2019s rebate pool. The documentation currently lists a 20% rebate allocation for crypto, but this percentage is at Polymarket\u2019s discretion and may change.<\/p>\n<table>\n<thead>\n<tr>\n<th>Program<\/th>\n<th>Requires a fill?<\/th>\n<th>What determines payout?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Liquidity rewards<\/td>\n<td>No<\/td>\n<td>Qualifying spread, size, balance, uptime, and competition<\/td>\n<\/tr>\n<tr>\n<td>Maker rebates<\/td>\n<td>Yes<\/td>\n<td>Share of executed maker liquidity weighted by fee value<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/section>\n<section>\n<h2>The real market maker profit equation<\/h2>\n<p>A bot should not optimize the reward score alone. Its full net result is:<\/p>\n<p><strong>Net market maker PnL = spread capture + liquidity rewards + maker rebates \u2212 inventory loss \u2212 adverse selection \u2212 slippage \u2212 operational costs<\/strong><\/p>\n<p>A reward-farming quote can have negative expected value if it sits too close to fair value during a BTC jump. The bot must require expected incentives and spread to exceed expected inventory and adverse-selection cost.<\/p>\n<\/section>\n<section>\n<h2>How a market maker bot chooses quotes<\/h2>\n<ol>\n<li><strong>Estimate fair probability.<\/strong> Use the market rule, reference feed, remaining time, volatility, and related markets.<\/li>\n<li><strong>Calculate a base spread.<\/strong> Wider during volatility and uncertainty; tighter in stable conditions.<\/li>\n<li><strong>Apply inventory skew.<\/strong> If the bot owns too much UP, lower the UP bid and make the UP ask more competitive.<\/li>\n<li><strong>Check reward eligibility.<\/strong> Confirm minimum size and maximum qualifying spread.<\/li>\n<li><strong>Estimate reward and rebate value.<\/strong> Treat both as uncertain competitive revenue.<\/li>\n<li><strong>Apply risk limits.<\/strong> Cap inventory, order size, quote age, and loss.<\/li>\n<li><strong>Submit post-only orders.<\/strong> Avoid accidentally crossing the spread when the intent is to remain a maker.<\/li>\n<li><strong>Cancel and replace stale quotes.<\/strong> Reprice as fair value, volatility, and competition change.<\/li>\n<\/ol>\n<p>The <a href=\"https:\/\/docs.polymarket.com\/concepts\/order-lifecycle\" target=\"_blank\" rel=\"noopener noreferrer\">official order lifecycle guide<\/a> notes that post-only orders are rejected if they would match immediately, preserving maker status.<\/p>\n<\/section>\n<aside class=\"affiliate-callout\"><strong>Rewards are not free money<\/strong><span>A tight quote can earn points and still lose more through adverse selection or inventory drift.<\/span><a class=\"button\" href=\"https:\/\/polymarket.com\/?r=nonamesx\" target=\"_blank\" rel=\"sponsored noopener noreferrer\">Open Polymarket \u2197<\/a><\/aside>\n<section>\n<h2>Inventory skew example<\/h2>\n<p>Assume fair UP value is $0.50. With neutral inventory, the bot quotes $0.49 bid and $0.51 ask. After several UP bids fill, it owns too much UP.<\/p>\n<table>\n<thead>\n<tr>\n<th>State<\/th>\n<th>UP bid<\/th>\n<th>UP ask<\/th>\n<th>Goal<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Neutral inventory<\/td>\n<td>$0.49<\/td>\n<td>$0.51<\/td>\n<td>Quote both sides evenly<\/td>\n<\/tr>\n<tr>\n<td>Too much UP<\/td>\n<td>$0.48<\/td>\n<td>$0.505<\/td>\n<td>Buy less UP and sell UP sooner<\/td>\n<\/tr>\n<tr>\n<td>Too little UP<\/td>\n<td>$0.495<\/td>\n<td>$0.52<\/td>\n<td>Acquire more UP while selling less<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The exact values depend on tick size, volatility, time remaining, and reward settings. Reward score should never force the bot to ignore its inventory cap.<\/p>\n<\/section>\n<section>\n<h2>Architecture of a liquidity-reward bot<\/h2>\n<table>\n<thead>\n<tr>\n<th>Component<\/th>\n<th>Responsibility<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Market selector<\/td>\n<td>Finds incentivized markets and reads reward settings<\/td>\n<\/tr>\n<tr>\n<td>Fair-value engine<\/td>\n<td>Estimates YES and NO probabilities<\/td>\n<\/tr>\n<tr>\n<td>Quote engine<\/td>\n<td>Calculates bid, ask, size, and refresh frequency<\/td>\n<\/tr>\n<tr>\n<td>Reward optimizer<\/td>\n<td>Estimates score from spread, size, balance, and competition<\/td>\n<\/tr>\n<tr>\n<td>Inventory manager<\/td>\n<td>Skews quotes and caps directional exposure<\/td>\n<\/tr>\n<tr>\n<td>Order manager<\/td>\n<td>Submits, cancels, replaces, and tracks post-only orders<\/td>\n<\/tr>\n<tr>\n<td>Reconciliation<\/td>\n<td>Matches local orders and positions to account state<\/td>\n<\/tr>\n<tr>\n<td>Monitoring<\/td>\n<td>Alerts on stale data, failed cancels, drawdown, and reward drift<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>See our <a href=\"https:\/\/polytrade.market\/blog\/how-to-build-polymarket-trading-bot\/\">Polymarket bot architecture guide<\/a> for order states, idempotency, and reconciliation.<\/p>\n<\/section>\n<section>\n<h2>The risks that destroy market maker returns<\/h2>\n<h3>Adverse selection<\/h3>\n<p>Informed takers trade against quotes that have become stale. The bot buys just before fair value falls or sells just before it rises.<\/p>\n<h3>Inventory concentration<\/h3>\n<p>One-sided fills create a directional position. A few cents of reward cannot offset a large binary loss.<\/p>\n<h3>Cancellation latency<\/h3>\n<p>Fast markets can move before cancel requests take effect. Quote age must be measured from the source timestamp.<\/p>\n<h3>Reward competition<\/h3>\n<p>Rewards are normalized against other makers. Expected payout can fall when competitors add tighter or larger quotes.<\/p>\n<h3>Parameter changes<\/h3>\n<p>Reward allocations, rebate percentages, qualifying spreads, and minimum sizes can change. Hardcoded assumptions create silent losses.<\/p>\n<h3>Paired-cost trap<\/h3>\n<p>Holding both outcomes is not automatically safe. If combined average cost exceeds $1, settlement locks in a loss unless spread and incentives recover it.<\/p>\n<\/section>\n<section>\n<h2>What to measure in paper mode<\/h2>\n<ul>\n<li>gross spread capture;<\/li>\n<li>inventory PnL;<\/li>\n<li>estimated liquidity rewards;<\/li>\n<li>realized maker rebates;<\/li>\n<li>fill rate by quote distance;<\/li>\n<li>adverse selection after each fill;<\/li>\n<li>average quote age;<\/li>\n<li>maximum inventory and drawdown;<\/li>\n<li>cancel and replace success rate;<\/li>\n<li>profit before and after incentives.<\/li>\n<\/ul>\n<p>Our <a href=\"https:\/\/polytrade.market\/blog\/polymarket-btc-bot-benchmark-2026\/\">bot benchmark methodology<\/a> explains how to include real depth, fees, fill rates, and drawdown without inventing results.<\/p>\n<\/section>\n<section>\n<h2>A practical deployment checklist<\/h2>\n<ul>\n<li>Read reward settings from each market.<\/li>\n<li>Verify the market is active and accepting orders.<\/li>\n<li>Use post-only behavior for maker quotes.<\/li>\n<li>Recalculate fair value continuously.<\/li>\n<li>Set maximum quote age.<\/li>\n<li>Cap inventory by market and category.<\/li>\n<li>Separate spread PnL, rewards, and rebates.<\/li>\n<li>Stop quoting on stale data or unknown order state.<\/li>\n<li>Reconcile orders, fills, balances, and positions.<\/li>\n<li>Test the kill switch before live capital.<\/li>\n<\/ul>\n<\/section>\n<section class=\"article-faq\"><span class=\"eyebrow\">QUICK ANSWERS<\/span><\/p>\n<h2>Frequently asked questions<\/h2>\n<details>\n<summary>Can a Polymarket market maker earn without getting filled?<\/summary>\n<p>Qualifying resting orders may earn liquidity rewards, but maker rebates require fills. Reward eligibility and payout depend on each market\u2019s current settings and competition.<\/p>\n<\/details>\n<details>\n<summary>Are liquidity rewards guaranteed?<\/summary>\n<p>No. They are competitive, settings can change, and configured pools are caps rather than guaranteed payouts.<\/p>\n<\/details>\n<details>\n<summary>Why quote both UP and DOWN?<\/summary>\n<p>Two-sided liquidity improves scoring and reduces one-sided inventory risk. Near extreme probabilities, the documented reward method requires double-sided liquidity to score.<\/p>\n<\/details>\n<details>\n<summary>Do makers pay trading fees?<\/summary>\n<p>The current official documentation lists maker fee rates as zero. Always read the current market configuration before relying on this.<\/p>\n<\/details>\n<details>\n<summary>Can rewards make an unprofitable strategy profitable?<\/summary>\n<p>They can offset some costs, but a bot that consistently loses more through inventory and adverse selection than it earns in rewards remains unprofitable.<\/p>\n<\/details>\n<\/section>\n<div class=\"risk-note\"><strong>Risk disclosure<\/strong><\/p>\n<p>Market making and automated trading involve substantial risk of loss. Reward programs, rates, and eligibility can change. This article is educational and does not guarantee income.<\/p>\n<\/div>\n<div class=\"article-cta\"><span>Quote carefully, measure everything<\/span><\/p>\n<h2>Register on the official Polymarket website.<\/h2>\n<p><a class=\"button\" href=\"https:\/\/polymarket.com\/?r=nonamesx\" target=\"_blank\" rel=\"sponsored noopener noreferrer\">Register on Polymarket \u2197<\/a><\/p>\n<p><small class=\"disclosure\">Affiliate disclosure: Polytrade may receive referral rewards if you register and trade through this link, at no additional cost to you.<\/small><\/div>\n","protected":false},"excerpt":{"rendered":"<p>How Polymarket market maker bots earn from spreads, liquidity rewards, and maker rebates\u2014and how they control inventory, quote risk, and adverse selection.<\/p>\n","protected":false},"author":2,"featured_media":52,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[12,13,15,16,11],"class_list":["post-54","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trading-bots","tag-bitcoin-15-minute-markets","tag-bitcoin-5-minute-markets","tag-liquidity-rewards","tag-maker-rebates","tag-polymarket-trading-bot"],"_links":{"self":[{"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/posts\/54","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/comments?post=54"}],"version-history":[{"count":0,"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/posts\/54\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/media\/52"}],"wp:attachment":[{"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/media?parent=54"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/categories?post=54"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/polytrade.market\/blog\/wp-json\/wp\/v2\/tags?post=54"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}