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

# Market Making on Joyride

> How the RFQ venue works, what a market maker commits to when it quotes, and how onboarding starts

Market makers on Joyride answer requests for quotes. A taker names a package of
one or more option legs, a maker prices the whole package as one signed firm bid and ask,
then the accepted side fills on-chain against both parties' collateral. Joyride
provisions the account and the quoter role. The contract terms and instrument
naming can be found in the [Exchange Overview](/).

This page covers RFQ execution, the quoter role, and onboarding.

## Summary

| Parameter        | Value                                                                               |
| ---------------- | ----------------------------------------------------------------------------------- |
| Legs per request | 1 to 13 on a single underlying and one expiry                                       |
| Quote firmness   | A delivered quote is firm until its expiry; no cancel, no replace                   |
| Fills            | One on-chain transaction for the entire package, all legs or none                   |
| Fees             | Maker and taker fees by tier, see [Fees and Limits](/market-makers/fees-and-limits) |

<Info>
  A sandbox with the same protocol and payloads runs on Solana Devnet at [devnet.joyride.exchange](/market-makers/sandbox).
</Info>

## How an RFQ works

1. A taker sends a request naming its legs. Each leg is one instrument, one side,
   and one quantity. All legs share one underlying and one expiry.
2. The venue publishes the request as an `open` event on the `rfq_maker`
   channel of the trading WebSocket. Every quoter subscribed to that channel
   receives it on its own connection and prices the package inside the request
   window.
3. Quoters respond with a signed two-sided quote, a bid and an ask for the
   whole package, that is binding until the expiry the quoter set, at most one
   hour later.
4. The taker accepts one side of the quote, bid or ask, for the whole package.
5. The fill executes on-chain in one transaction against both parties'
   collateral. Every leg lands or none does. The resulting positions settle at
   expiry against the settlement price.

A spread or a butterfly is never legged: the fill moves collateral and positions
for every leg atomically.

## Who quotes

Quoting requires a provisioned account and the quoter role. Joyride creates the
account with its margin policy and fee tier, and provisions the role together
with the maker's on-chain subaccount during onboarding. Once the subaccount is
funded, the maker authenticates with its wallet and starts receiving requests.

## Timing

| Window            | Value                                                                                                                                                                    |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Request window    | A request stays open for quotes for 5 seconds after the taker creates it                                                                                                 |
| Quote lifetime    | Set by the quoter on each quote, up to 3,600 seconds. There is no fixed minimum, but a quote must reach the venue with more than 2 seconds of life left or it is refused |
| Acceptance        | The taker can accept until 2 seconds before the quote expires                                                                                                            |
| Submission window | The fill must land on chain within 30 seconds of acceptance, or 2 seconds before the quote expires, whichever comes first                                                |

## What is not supported

* No quote cancel or replace. A delivered quote is firm until its expiry. The
  quote TTL is the only bound on exposure.
* No notification to losing quoters. The first firm quote wins the request;
  later quotes receive no message and expire on their own. Makers need a local
  expiry timer per quote to release reserved risk.
* No partial fills. A package is all-or-nothing: every leg fills in one
  transaction or none does, and a quote fills for its full quantity or not at
  all.
* No cross-asset or calendar packages. A request carries between one and
  thirteen legs on one underlying and one expiry.
* No API keys. Every session opens with a wallet signature.

## Next steps

Onboarding starts by email to [support@joyride.exchange](mailto:support@joyride.exchange).

Next: [Connectivity for Bots](/market-makers/connectivity)
