# Market Making on Polymarket

### Overview

Market making on prediction markets means placing both a **buy limit order** and a **sell limit order** for the same outcome to help keep the market liquid and active. In return, Polymarket pays daily rewards to market makers whose orders meet certain quality thresholds.

#### How it works on Polymarket

On Polymarket, each market has two outcomes (e.g., "Yes" and "No"). Each outcome has its own order book where you can place buy or sell orders. That means there are four possible order types:

1. **Buy Yes** - spend USDC to acquire Yes shares
2. **Sell Yes** - sell Yes shares you hold for USDC
3. **Buy No** - spend USDC to acquire No shares
4. **Sell No** - sell No shares you hold for USDC

#### What Tread's MM bot does

When you start a market-making bot on tread, you pick **one outcome** (e.g., Yes) and the bot simultaneously places:

* A **buy limit order** for that outcome (bidding to acquire shares)
* A **sell limit order** for that outcome (offering to sell shares)

This is classic market making - you're quoting both sides of a single outcome's order book, earning the spread between your buy and sell prices. The bot continuously manages these two orders, adjusting their prices to stay competitive around the midpoint.

This is why the collateral requirement is a 50/50 split: you need **USDC** to fund the buy side and **outcome shares** to fund the sell side.

> **Note:** Tread currently supports market making on one outcome at a time. If you want to provide liquidity on both Yes and No, you would start two separate bots - one for each outcome.

Market making is only enabled for markets where Polymarket is rewarding liquidity provision.

#### Why use Tread instead of Polymarket directly?

Traditionally, you would need to go to Polymarket's website and manually place and manage these orders yourself - constantly monitoring prices, adjusting order sizes, and rebalancing. With Tread, the bot automates all of this: order placement, spread management, rebalancing, participation rate targeting, and risk controls (stop loss/take profit).

***

### How Polymarket Liquidity Rewards Work

Polymarket runs a Liquidity Rewards Program that pays traders for providing liquidity. Here's how it generally works:

* **You earn rewards** by keeping active limit orders close to the market's midpoint price
* **The closer your orders are to the midpoint**, the more you earn relative to other market makers
* **Rewards are paid daily** at approximately midnight UTC
* **Minimum payout**: Rewards must reach $1 before they're distributed
* **Competitiveness matters**: Your earnings depend on how your orders compare to other market makers in terms of size and pricing

Each eligible market defines two key requirements:

| Requirement    | What it means                                                                         |
| -------------- | ------------------------------------------------------------------------------------- |
| **Max Spread** | The farthest your limit orders can be from the midpoint and still qualify for rewards |
| **Min Shares** | The minimum order size (in shares) needed to qualify                                  |

If the market's midpoint price drops below $0.10, you must have orders on **both sides** (Yes and No) to qualify.

These are subject to change and are managed by Polymarket. For up to date information please refer to their official [documentation](https://help.polymarket.com/en/articles/13364466-liquidity-rewards) on the rewards program

***

### Getting Started

<figure><img src="https://3498068627-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzGueudbPNYpRWNpS3Ilo%2Fuploads%2Fwa6MXF59kZRlDPAEC1lz%2FScreenshot%202569-04-03%20at%2015.47.42.png?alt=media&#x26;token=a5805da2-e6ed-4dd2-959b-516c10297b46" alt="" width="375"><figcaption></figcaption></figure>

#### Step 1: Find a Rewards Market

1. Navigate to **Predict** in the top navigation bar
2. Click the **Rewards** tab
3. You'll see a table of all markets currently offering liquidity rewards

The Rewards table shows:

| Column         | What it means                                                                                 |
| -------------- | --------------------------------------------------------------------------------------------- |
| **Markets**    | The prediction market question                                                                |
| **Max Spread** | Maximum distance from midpoint your orders can be (in cents)                                  |
| **Min Shares** | Minimum order size required to qualify for rewards                                            |
| **Reward**     | Daily reward rate for the market                                                              |
| **Comp**       | Competitiveness - a visual indicator of how crowded the market is (higher = more competition) |
| **Price**      | Current prices for both outcomes                                                              |

Click on any market row to open the event page where you can start market making.

#### Step 2: Prepare Your Collateral

Because the bot places both buy and sell orders for the same outcome, you need two types of collateral:

* **50% in USDC** - to fund the buy side (acquiring shares when someone sells to you)
* **50% in outcome shares** - to fund the sell side (selling shares when someone buys from you)

For example, if you want to market make on "Yes" with $1,000 margin:

* You need $500 in USDC in your Tread Polymarket wallet
* You need Yes shares worth $500 (valued at the current outcome price)

**How to get outcome shares**: Use the **Split** button at the top of the order form. Splitting converts USDC into equal amounts of Yes and No outcome shares. For example, splitting $500 USDC gives you $500 worth of Yes shares and $500 worth of No shares. You would then use the Yes shares as collateral for your MM bot (the No shares remain in your wallet).

<figure><img src="https://3498068627-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzGueudbPNYpRWNpS3Ilo%2Fuploads%2FDY5o9v0deyuh0Elimf6i%2FScreenshot%202569-04-03%20at%2015.45.24.png?alt=media&#x26;token=dd4e4c74-6cc1-4c5c-a6f1-7a3bc580fea6" alt="" width="375"><figcaption></figcaption></figure>

**How to convert shares back**: Use the **Merge** button to convert equal amounts of Yes and No shares back into USDC. This requires matching quantities of both outcomes.

#### Step 3: Open the MM Form

1. On the event page, select the specific market/outcome you want to make on (e.g., "April 30")
2. Choose which side to market make on (Yes or No)
3. Click the **MM** tab in the order form (next to Market, Limit, and Algo)

***

### The MM Form - Field by Field

#### Margin

The dollar amount of capital you're committing to market making. This is split 50/50 between USDC and outcome shares.

* **Minimum**: $1

Below the margin input you'll see two balance indicators:

* **Wallet icon + dollar amount**: Your available USDC balance
* **Chart icon + share count**: Your available outcome shares

If either balance turns red, you don't have enough collateral. Hover over the red indicator to see exactly how much more you need.

**Estimated Volume**: Your margin is multiplied by 20x to determine the total share volume the bot will try to execute. So $100 margin = \~$2,000 estimated volume.

#### Reference Price

This controls the pricing strategy your bot uses. There are three modes:

**Mid** (default)

* Quotes orders around the market's midpoint price
* The most straightforward approach
* When selected, you can also set a **Directional Bias** (see below)

**Grid**

* Places a grid of orders around the midpoint
* Aims for guaranteed breakeven + spread profit
* Good for stable markets where you want consistent returns
* When selected, shows a **Grid Reset Threshold** option (see below)

**RGrid** (Reverse Grid)

* Like Grid but inverted - better for recovering from unfavorable pricing
* Uses a "TP Reset Threshold" instead of Grid Reset Threshold
* Shown in red to indicate it's more aggressive

#### Directional Bias (Mid mode only)

Only appears when Reference Price is set to Mid. Controls whether your orders lean toward one side:

* **Short**: Bias toward selling - your quotes lean lower
* **Neutral** (default): Balanced quoting on both sides
* **Long**: Bias toward buying - your quotes lean higher

#### Grid Reset Threshold (Grid/RGrid modes only)

Controls how aggressively the bot resets its grid when price moves:

* Options: 0.05%, 0.125%, 0.25%, 0.50%, 1%
* **Lower values** = more frequent resets (tighter management)
* **Higher values** = less frequent resets (more relaxed)
* Default for Grid: 0.25%
* Default for Reverse Grid: 0.125%

In Grid mode this is labeled "Grid Reset Threshold." In RGrid mode it's labeled "TP Reset Threshold" (take profit reset).

#### Participation Rate

Controls how aggressively the bot participates in the market's volume. This determines both the speed and duration of your market making:

| Mode                 | Target % of Volume | Duration Range    |
| -------------------- | ------------------ | ----------------- |
| **Aggressive**       | 10%                | 5 min - 1 hour    |
| **Normal** (default) | 5%                 | 10 min - 3 hours  |
| **Passive**          | 1%                 | 30 min - 24 hours |

The bot automatically calculates the optimal duration based on your margin, the market's 24-hour volume, and your chosen participation rate.

* **Aggressive** (red): Fills faster, higher market impact, shorter duration
* **Normal**: Balanced pace
* **Passive** (green): Fills slowly, minimal market impact

#### Spread

The minimum spread buffer (in basis points) between your orders and the reference price.

* **Range**: -50 to +50 bps
* **Default**: 0 bps
* A bps is 1/100th of a percent (so 50 bps = 0.50%)

How spread works depends on your Reference Price mode:

* **In Mid mode**: Adds a spread buffer around the midpoint when quoting
* **In Grid mode**: Aims for breakeven + the specified spread of PnL

Positive values mean wider spread (more conservative, less likely to earn rewards but safer). Negative values mean tighter spread (more aggressive, more competitive for rewards but higher risk).

#### Stop Loss

The maximum percentage loss before the bot automatically stops.

* Options: 5%, 10% (default), 25%, 50%, 100%
* Calculated as a percentage of your margin
* For example, with $1,000 margin and 10% stop loss, the bot stops if losses reach $100

#### Take Profit

The profit target at which the bot automatically stops.

* Options: 10%, 25%, 50%, 100%, Uncapped (default)
* **Uncapped** means the bot runs until its duration expires without a profit cap
* Calculated as a percentage of your margin

***

### Summary Section

Before submitting, the form shows three key metrics:

| Metric                 | What it means                                                                       |
| ---------------------- | ----------------------------------------------------------------------------------- |
| **Est. Volume**        | Total share volume the bot will attempt to execute (margin x 20)                    |
| **Duration**           | How long the bot will run, auto-calculated from your settings and market conditions |
| **Participation Rate** | The target percentage of market volume your bot will try to capture                 |

***

### Troubleshooting

The button will be disabled (grayed out) if:

* Your margin is less than $1
* You don't have enough USDC (need at least half the margin)
* You don't have enough outcome shares (need at least half the margin in share value)
* No market/account is selected

***

### Managing Active Bots

#### Bots Tab

At the bottom of the event page, click the **Bots** tab to see all your active market making bots. The tab shows a count (e.g., "Bots (2)").

Each bot entry shows:

* **Mode**: Visual indicators for your strategy settings
* **Market**: Which market the bot is running on
* **Spread**: Current spread in bps
* **Filled**: Progress bar showing how much of the estimated volume has been filled
* **Status**: Active, Paused, etc.

#### Bot Controls

* **Pause**: Temporarily stop a running bot (can be resumed later)
* **Resume**: Restart a paused bot
* **Cancel**: Permanently stop and cancel a bot
* **View**: Navigate to the full order details page

***

### Tips for Effective Market Making

1. **Check the Max Spread requirement** before starting. Your spread setting should keep your orders within the market's max spread to qualify for rewards.
2. **Start with Normal participation rate** to get a feel for the market before going Aggressive.
3. **Use the Split button** to prepare your collateral before starting. You need both USDC and outcome shares.
4. **Monitor competitiveness** in the Rewards table. Markets with lower competitiveness have less competition, meaning your orders earn a larger share of rewards.
5. **Set a reasonable stop loss** - 10% (default) is a good starting point. Prediction markets can be volatile around news events.
6. **Consider the market's volume** - markets with higher 24-hour volume support larger margin amounts and more aggressive participation rates.
7. **Grid mode is great for stable markets** where the price isn't moving dramatically, however this could also lead to your order getting stuck and eventually stop-lossed. Mid mode has a higher chance of finishing and generating your desired volume but may come at greater losses.&#x20;
8. **Check your rewards on Polymarket** - rewards are distributed daily at midnight UTC. You can verify your earnings are accumulating.
