This page covers MM-specific workflows and best practices. For full order
mechanics, see Create Orders and Cancel
Orders.
Two-Sided Quoting
The core market making workflow is posting a bid and ask around your fair value. UsecreateAndPostOrder to place each side:
Batch Orders
For tighter spreads across multiple levels, usepostOrders to submit up to 15 orders in a single request:
Choosing Order Types
| Type | Behavior | When to Use |
|---|---|---|
| GTC | Rests on the book until filled or cancelled | Default for passive quoting |
| GTD | Auto-expires at a specified time | Expire quotes before known events |
| FOK | Must fill entirely and immediately, or cancel | Aggressive rebalancing — all or nothing |
| FAK | Fills what’s available immediately, cancels rest | Rebalancing where partial fills are OK |
Time-Limited Quotes with GTD
Auto-expire quotes before known events like market close or resolution:Managing Orders
Cancelling
Cancel individual orders, by market, or everything at once:Monitoring Open Orders
Tick Sizes
Your order price must conform to the market’s tick size, or it will be rejected. Look it up with the SDK before quoting:Fees
Most markets have zero fees for both makers and takers. However, the following market types have taker fees:- All crypto markets (1H, 4H, daily, and weekly starting March 6, 2026 for new markets)
- Select sports markets (e.g., NCAAB, Serie A)
Best Practices
Quote Management
- Quote both sides — Post bids and asks to earn maximum liquidity rewards
- Skew on inventory — Adjust quote prices based on your current position to manage exposure
- Cancel stale quotes — Pull orders immediately when market conditions change
- Use GTD for events — Auto-expire quotes before known catalysts to avoid stale exposure
Latency
- Batch orders — Use
postOrders()to submit multiple quotes in a single request - WebSocket for data — Subscribe to real-time feeds instead of polling REST endpoints
Risk Controls
- Size limits — Check token balances before quoting and don’t exceed your available inventory
- Price guards — Validate prices against the book midpoint and reject outliers
- Kill switch — Call
cancelAll()immediately on errors or position breaches - Monitor fills — Subscribe to the WebSocket user channel for real-time fill notifications