Simmer Market Maker
by @richducat
Places GTC limit orders on both sides (bid/ask) of liquid Polymarket markets. Finds active markets with >$10k 24h volume, mid-range prices, and ample time to...
clawhub install dolph-market-makerπ About This Skill
name: simmer-market-maker description: Places GTC limit orders on both sides (bid/ask) of liquid Polymarket markets. Finds active markets with >$10k 24h volume, mid-range prices, and ample time to resolve. Quotes spreads around the CLOB midpoint to capture bid/ask spread. Use when you want to passively earn spread as a market maker. metadata: author: "PrYsM96" version: "1.2.0" displayName: "Simmer Market Maker" difficulty: "intermediate"
Polymarket Market Maker
A market-making strategy that places GTC (Good-Till-Cancelled) limit orders on both sides of liquid Polymarket prediction markets, capturing the bid/ask spread.
Strategy
1. Market Selection: Finds active markets with:
- 24h volume > $10,000 (liquid enough to fill)
- Price (YES probability) between 0.15 and 0.85 (avoids near-certain outcomes)
- Resolves > 4 hours away (enough time to get fills)
- No taker fees (is_paid=False) β 10% fee kills the edge
2. Pricing: Fetches the live CLOB midpoint for each market and quotes:
- YES buy limit at mid - 0.02 (2Β’ below mid)
- NO buy limit at (1 - mid) - 0.02 (2Β’ below NO mid)
3. Order Management: Cancels existing open orders before placing new ones each run.
4. Limits: Max $5 per order, max 3 markets per run.
Requirements
Environment variables (required):
| Variable | Required | Description |
|----------|----------|-------------|
| SIMMER_API_KEY | β
Yes | Your Simmer API key β get it at simmer.markets/dashboard β SDK tab |
| TRADING_VENUE | Optional | polymarket (default) or sim for paper trading with virtual $SIM |
Python dependency: simmer-sdk β install with pip install simmer-sdk
Setup
export SIMMER_API_KEY=sk_live_... # required
export TRADING_VENUE=sim # optional: paper mode with $SIM
pip install simmer-sdk
Usage
# Dry run (default)
python market_maker.pyLive trading
python market_maker.py --liveShow current positions
python market_maker.py --positionsShow config
python market_maker.py --configSet config
python market_maker.py --set max_order_usd=10.0
Config (env vars)
| Env Var | Default | Description |
|---------|---------|-------------|
| SIMMER_MM_MAX_ORDER_USD | 5.0 | Max USD per limit order |
| SIMMER_MM_MAX_MARKETS | 3 | Max markets per run |
| SIMMER_MM_MIN_VOL_24H | 10000 | Min 24h volume filter |
| SIMMER_MM_SPREAD_OFFSET | 0.02 | How far below mid to quote (2Β’) |
| SIMMER_MM_MIN_PRICE | 0.15 | Min YES price to consider |
| SIMMER_MM_MAX_PRICE | 0.85 | Max YES price to consider |
| SIMMER_MM_MIN_HOURS_TO_RESOLVE | 4 | Min hours to resolution |
π‘ Examples
# Dry run (default)
python market_maker.pyLive trading
python market_maker.py --liveShow current positions
python market_maker.py --positionsShow config
python market_maker.py --configSet config
python market_maker.py --set max_order_usd=10.0
βοΈ Configuration
export SIMMER_API_KEY=sk_live_... # required
export TRADING_VENUE=sim # optional: paper mode with $SIM
pip install simmer-sdk