What onboarding produces
A market maker is a user the exchange has approved and designated. The account itself is yours: create it in the app with the wallet that will quote, as any user does. Designation is then a provisioned role; no API call enables it.
The wallet key is the credential; there are no API keys. The quoter role is bound to that wallet, so binding a new key goes through Joyride.
Readiness checklist
Run these four checks in order on one authenticated WebSocket session. Each depends on the one before it. Request and response frames are on API Connectivity and Quoting RFQs.- Role.
public/authreturnsrolescontainingrfq_quoter. An empty list means the account exists without the role, and everyrfq.maker.*method returnsRFQ_WRONG_ROLE. - Subscription.
rfq.maker.subscribereturnssubscribed: true. - Subaccount.
GET /api/query/vault-subaccount, with the session token as bearer, returns one row for the account. - Readiness.
rfq.maker.pollreturns a page instead ofRFQ_NOT_READY.
Reading RFQ_NOT_READY
RFQ_NOT_READY is one error code with several causes, told apart by the message field. The common ones are below; all are retryable: true, but only two clear on their own.
retryable: true means the request was well formed and may succeed later. For the two Joyride-owned causes, a retry alone will not clear it. Email support@joyride.exchange if one of those persists.
Obligations
- A delivered quote is firm until its
expires_at, with no cancel and no replace. Choose a TTL that hedging can honor, since the quote stands even if prices move. - Never call the vault’s
cancel_noncefor a nonce once its RFQ isaccepted. - Reconcile from durable history:
GET /api/query/rfq-fills?role=makeris the record of fills, and open requests are purged at settlement.