Docs / Market Makers
Behind every liquid market is a market maker — a participant who stands ready to buy and sell at publicly quoted prices. This page explains the role market makers play on Polis Exchange, how our automated market makers operate, and how you can build your own.
A market maker posts limit orders on both sides of the order book — a bid (buy order) below the mid-price and an ask (sell order) above it. The gap between the best bid and the best ask is the spread. By continuously quoting both sides, market makers provide three things a healthy market needs:
Without market makers, an order book can go empty between trades — spreads widen, fills slip, and trading feels broken. Market makers are the reason a market looks alive.
Polis Exchange runs a fleet of automated market-making bots that keep every market liquid around the clock. Each bot:
You can see the result on any market page — a populated order book with multiple price levels on each side and a narrow spread between the best bid and ask.
Competitive quoting narrows the bid-ask gap, so you pay less to cross the book.
Resting orders mean your marketable order is filled instantly, with no waiting for a counterparty.
Quotes that track fair value keep the displayed price honest and responsive to new information.
Multiple price levels on each side let you size up or down without moving the price against yourself.
On most exchanges, market makers earn a maker rebate — a small payment or fee discount for providing resting liquidity that gets filled. Traders who remove liquidity by crossing the spread (takers) pay a slightly higher fee. This maker-taker model rewards the participants who keep the book deep and spreads tight.
Polis Exchange exposes a full REST API, so you can write your own trading bot — whether that is a market maker, a momentum strategy, or an arbitrageur. Every action available in the web UI is available programmatically.
Key endpoints:
POST /v1/auth/login # obtain a JWT
POST /v1/trading/orders # place an order
GET /v1/trading/orders # list open orders
DELETE /v1/trading/orders/:id # cancel an order
GET /v1/tokens/balances # view token balances
GET /v1/markets/:ticker/book # read the order book
WS /v1/ws?userId={userId} # live trades & book updatesFor unattended bots, authenticate with an API key instead of a session JWT. Create one in Settings, then pass it as a Authorization header on every request. A reference market-making bot is included in the project at scripts/bot-trader.py.