Ensure the caller's RFQ subaccount exists (Joyride pays the rent once)
Asks core to make sure the authenticated wallet’s margin-vault
Subaccount PDA exists, with Joyride paying its rent at most once per
wallet. The owner is always the bearer’s wallet — the request has no
body fields and cannot provision another wallet. Idempotent and safe
to retry: exists costs nothing, submitted reports the in-flight
init_subaccount signature (concurrent callers share one send), and
refused is an answer, not an error. Paced at one call per minute
per wallet. On-chain presence is visible within seconds; the RFQ
desk’s RFQ_NOT_READY gate clears once the vault watcher attributes
the new subaccount, up to about a minute later.
Authorizations
Joyride Core session JWT obtained from the SIWS flow
(public/get_nonce + public/auth on the Core trading WebSocket).
Include as: Authorization: Bearer <jwt>
Response
Provisioning outcome
exists: the subaccount is on chain (nothing sent). submitted: an init_subaccount is in flight. refused: see reason.
exists, submitted, refused Base58 signature of the in-flight init_subaccount; present on submitted when known.
Present on refused. provisioner_disabled and payer_unavailable mean "fund the subaccount from a wallet, or try again shortly"; vault_paused means RFQ is paused; already_provisioned is the per-wallet spend bound (unreachable while the program has no close path).
provisioner_disabled, invalid_owner, already_provisioned, payer_unavailable, vault_paused