> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sx.bet/llms.txt
> Use this file to discover all available pages before exploring further.

# Parlays (RFQ System)

> How SX Bet's request-for-quote parlay system works.

## Overview

SX Bet supports parlays (multi-leg bets) through a **Request-for-Quote (RFQ)** system. Unlike single bets where makers post orders to a standing orderbook, parlays are created on-demand when a bettor requests a custom combination of legs.

This means there is no persistent parlay orderbook. Every parlay market is created fresh in response to a bettor's request, and market makers compete in real-time to offer odds.

## How it works

```
Bettor selects multiple legs on sx.bet
              │
              ▼
Parlay request broadcast via WebSocket
    (channel: parlay_markets:global)
              │
              ▼
Market makers receive the request
              │
              ▼
 3-second window for makers to
    post orders to the parlay
              │
              ▼
All submitted orders shown to taker
    simultaneously after window closes
              │
              ▼
Taker has 1 minute to fill an order
  before the orderbook closes
              │
              ▼
Taker chooses an order to fill
              │
              ▼
Trade executes like any other bet
```

## Key concepts

### Parlay markets are real markets

When a bettor submits a parlay request, SX Bet creates a real market with its own `marketHash`. This market behaves like any other market on the exchange — you post orders to it, fill orders on it, and cancel orders on it using the same API endpoints.

The difference is that a parlay market has **legs** — an array of underlying single markets and the outcomes the bettor selected for each.

### The 3-second RFQ window

Once a parlay request is broadcast:

1. Market makers have **3 seconds** to analyze the legs and post orders
2. After the window closes, the taker sees all available orders at once
3. The taker has **1 minute** to fill an order before the orderbook closes
4. The taker picks the best offer and fills it

<Warning>Your orders may remain active even after the bettor's orderbook window closes. Set `apiExpiry` on your orders to control how long they stay valid.</Warning>

### Sample parlay request

When a taker submits a parlay, makers receive a message like this on the `parlay_markets:global` WebSocket channel:

```json theme={null}
{
  "marketHash": "0x38cceead7bda65c18574a34994ebd8af154725d08aa735dcbf26247a7dcc67bd",
  "baseToken": "0x6629Ce1Cf35Cc1329ebB4F63202F3f197b3F050B", // Mainnet USDC — see References for testnet address
  "requestSize": "100000000",
  "legs": [
    {
      "marketHash": "0x0d64c52e8781acdada86920a2d1e5acd6f29dcfe285cf9cae367b671dff05f7d",
      "bettingOutcomeOne": true
    },
    {
      "marketHash": "0xe609a49d083cd41214a0db276c1ba323c4a947eefd2e4260386fec7b5d258188",
      "bettingOutcomeOne": false
    }
  ]
}
```

The `marketHash` at the top level is the parlay market you post orders against. The `legs` array contains the individual markets and outcomes the taker selected.

### Legs and pricing

Each leg in a parlay request contains:

| Field               | Description                                              |
| ------------------- | -------------------------------------------------------- |
| `marketHash`        | The single market for this leg                           |
| `bettingOutcomeOne` | Which outcome the bettor selected (`true` = outcome one) |

As a market maker, you need to:

* Look up each leg's market via [`GET /markets/find`](/api-reference/get-markets-find) to understand the matchup
* Check current odds for each leg via [`GET /orders/odds/best`](/api-reference/get-best-odds)
* Calculate combined odds across all legs (accounting for correlation if applicable)
* Decide your offer price and size, then post via [`POST /orders/new`](/api-reference/post-new-order)

For example, given the sample request above with two legs:

| Leg          | Market      | Taker's Pick                     | Your Fair Probability   |
| ------------ | ----------- | -------------------------------- | ----------------------- |
| 1            | `0x0d64...` | Outcome One (e.g. Team A to win) | 55%                     |
| 2            | `0xe609...` | Outcome Two (e.g. Under 220.5)   | 48%                     |
| **Combined** |             |                                  | **26.4%** (0.55 × 0.48) |

You'd then add your margin on top of the combined probability to arrive at the odds you offer. For example, with a 3% edge you'd price the parlay at \~29.4% implied probability for the maker side.

### Fees

SX Bet charges **0% fees** on single bets but applies a **5% fee on profit** for parlay bets.

## Parlay vs single bets

|                     | Single Bet                         | Parlay                              |
| ------------------- | ---------------------------------- | ----------------------------------- |
| **Orderbook**       | Persistent, always available       | Created on-demand per request       |
| **Discovery**       | Browse existing orders             | Receive RFQ via WebSocket           |
| **Timing**          | Post/fill anytime                  | 3-second maker window               |
| **Market creation** | Markets exist for scheduled events | Market created when bettor requests |
| **Legs**            | Single market                      | Multiple underlying markets         |
| **Fees**            | 0% maker and taker                 | 5% on profit                        |

## Next steps

<CardGroup cols={2}>
  <Card title="Market Making Parlays →" icon="arrow-right" href="/developers/market-making-parlays">
    The full guide to listening for, pricing, and submitting orders on parlay requests.
  </Card>

  <Card title="Parlay Markets API →" icon="book" href="/api-reference/parlay-markets">
    API reference for parlay market behavior and fields.
  </Card>
</CardGroup>
