Market Maker Bot
The Market Maker Bot passively quotes both sides of Polymarket's BTC 5-minute up/down markets. It rests buy limits below mid on each leg, stays delta-neutral, and holds filled pairs to resolution — profiting whenever a complete pair costs under $1.
- Two-sided passive quoting
- Delta-neutral inventory with a balance cap
- BTC 5-minute up/down markets
- Auto-settles filled pairs at resolution
- Per-window and per-session loss caps
- Fully hands-off operation
How it works
Within each 5-minute window the bot rests buy orders a configurable distance below mid on both the UP and DOWN legs. When both legs fill, it holds the pair to resolution; since exactly one side pays $1, a pair acquired for under $1 is profit. It keeps the two legs balanced (delta-neutral) within the balance cap and stops quoting near the end of each window.
Quoting
| Setting | Default | What it does |
|---|---|---|
quoting.priceMode | mid-minus-delta | Rest at mid − delta, or at best-bid − 1 tick. |
quoting.delta | 0.02 | How far below mid to rest each leg (in dollars; 0.02 = 2¢). |
quoting.orderSize | 19 | Shares per resting order, per leg. |
quoting.requoteSeconds | 8 | How often to refresh quotes. |
quoting.startSecond | 10 | Start quoting this many seconds into the 5-minute window. |
quoting.endSecond | 240 | Stop quoting after this many seconds into the window. |
Risk
| Setting | Default | What it does |
|---|---|---|
risk.balanceCap | 19 | Max share imbalance allowed between the two legs. |
risk.maxWindowUsd | 25 | Max USDC deployed in a single 5-minute window. |
risk.maxSessionLossUsd | 100 | Halt the bot when cumulative session loss reaches this. |
risk.maxPairCost | 0.99 | Skip a fill that would push the combined pair cost above this. |
pollIntervalSeconds | 3 | Seconds between cycles. |
Live trading
Live quoting needs a wallet private key in Settings → API Keys and funded USDC. The default caps are intentionally small — raise them only once you've watched it run.