Skip to main content

Overview

Market making on SX Bet means posting orders to the orderbook that other users (takers) can fill. You provide liquidity by offering odds on one or both sides of a market, and earn the spread between your posted price and what takers receive. SX Bet charges 0% maker fees, making it well-suited for systematic market making strategies.

Prerequisites

Before you start:
  1. Create an account at sx.bet and export your private key from the assets page
  2. Get an API key — see API Key
  3. Enable betting by approving the TokenTransferProxy contract — see Enabling Betting
  4. Fund your account with USDC

The maker’s role

As a maker, you post orders specifying an outcome, stake size, and odds. Takers see the complementary side of your order — when they fill it, you’re matched. Your orders sit on the book until they’re filled, cancelled, or expired. You can post on one side, or both sides of a market:
  • Single side — post on one outcome if you want specific exposure to that result at your chosen odds
  • Two-sided (spread) — post on both outcomes to earn the difference between your posted price and what takers pay
Two-sided example:
You post outcome 1 at 52.5% implied → taker gets 47.5%
You post outcome 2 at 52.5% implied → taker gets 47.5%
Your spread: 5%
The totalBetSize field is from your perspective as the maker. It’s the maximum amount of tokens you’d put into the pot if the order was fully filled — your maximum risk on that order.

How the flow works

A typical market making loop:
  1. Find markets — query GET /markets/active for the sports and market types you want to cover. See Markets and Sports for sport IDs and market types.
  2. Check current odds — use GET /orders/odds/best and GET /orders to see what’s already on the book before deciding where to post.
  3. Post orders — construct, sign, and submit orders via POST /orders/new. Your percentageOdds must land on the odds ladder. See Posting Orders for the full field reference and signing instructions.
  4. Manage your orders — monitor fills in real-time, cancel stale orders, and run a heartbeat so your orders are auto-cancelled if your service goes down. See Order Management.

Exposure management

You can post as many orders as you wish across the exchange as long as your total exposure per market remains below your wallet balance. If your total exposure exceeds your wallet balance on any given market, your orders will be removed from the orderbook until your balance reaches the minimum again.
If the API repeatedly finds your balance below your total exposure, your account may be temporarily restricted.
See Order Management → Exposure management for a worked example with concrete numbers.

Real-time market signals

Beyond tracking your own orders, three channels carry signals that market makers use to decide when to reprice or cancel:
ChannelSignalWhen it matters
main_line:globalMain line shifts on spread/totals marketsReprice or cancel spread/total orders when the line moves
markets:globalMarket added, suspended, or settledCancel orders immediately when a market is suspended or settled
fixtures:live_scoresLive score and period updatesAdjust in-play odds or cancel exposure on goal/score changes
These channels are documented with code examples on the Real-time Data page.

Next steps

Posting Orders →

Full field reference, signing instructions, and order submission.

Order Management →

Monitoring fills, cancelling orders, heartbeat setup, and exposure management.

Odds Rounding →

Validate and round odds to the ladder before posting.

Market Making Parlays →

The full flow for making on parlay RFQ requests.