Skip to main content

Devnet endpoints

The sandbox is a full Joyride deployment at https://devnet.joyride.exchange, backed by a vault program on Solana Devnet. Paths are the same as on Mainnet; only the host differs. Authentication, session rules, rate budgets, and error codes are as described on Connectivity for Bots. Moving a bot from Devnet to Mainnet means changing the origin and using a wallet provisioned on Mainnet.

Requesting access

Email support@joyride.exchange with:
  • The base58 ed25519 public key the bot will sign in with. Generate a separate key for the sandbox; the Mainnet key is provisioned separately and need not match.
  • A request for the quoter role. The role and the on-chain subaccount are created in the same pass as the account.
Provisioning returns:
  • An account bound to the public key, with a margin policy and fee tier. public/auth on the Devnet trading WebSocket succeeds once it exists.
  • A subaccount on the Devnet vault owned by the key. GET /api/query/vault-subaccount returns one row for the account when it is ready.
There is no self-serve signup for bots on Devnet or Mainnet.

Funding

Deposits are Devnet USDC sent to the Joyride vault through its deposit instruction. Transaction fees need Devnet SOL (solana airdrop on the Devnet cluster). The USDC mint is listed under Devnet identity; a Devnet USDC faucet can supply it. The caps are set in the vault’s on-chain configuration and are shared by every sandbox account, so other users’ activity can cause a rejection. Email support@joyride.exchange if a cap blocks testing. A deposit is credited once its transaction is finalized on Devnet. GET /api/query/deposits lists it, and GET /api/query/vault-subaccount shows the funded free_balance. Only deposits made through the vault’s deposit instruction are credited; a plain token transfer to the vault is not. Devnet USDC has no value. The caps bound what the sandbox vault holds and releases. Mainnet collateral is agreed per maker, as described on Becoming an RFQ Quoter.

Devnet identity

Quotes bind to the deployment they are signed for, so a quote signed for Devnet is rejected on Mainnet and the reverse. The deployment object on every RFQ open event carries the identity of the connected environment; comparing it with the configured value at startup catches a wrong-environment deployment before the first quote. The deployment id and the Mainnet values are on Program Addresses.

Verifying readiness

Readiness is checked from the account’s own session once provisioning is complete. Run the checklist on Becoming an RFQ Quoter against the Devnet origin: public/auth roles include rfq_quoter, rfq.maker.subscribe succeeds, GET /api/query/vault-subaccount returns a row, and rfq.maker.poll returns without RFQ_NOT_READY. RFQs arrive only when a Devnet taker sends one, so testing the quoting path requires driving the taker side as well. A quiet sandbox does not indicate an outage.

What Devnet shares with Mainnet

The sandbox runs the same software as Mainnet. A bot that passes readiness on Devnet needs only its origin, wallet key, and identity configuration changed for Mainnet. Next: Fees and Limits