Skip to main content
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

A sandbox with the same protocol and payloads runs on Solana Devnet at devnet.joyride.exchange.

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

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. Next: Connectivity for Bots