JSON-RPC connection
All JSON-RPC requests, responses, and notifications flow through the root WebSocket connection.
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8"
}
}{
"jsonrpc": "2.0",
"id": 2,
"error": {
"code": 1001,
"message": "Must authenticate first"
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"channel": "<string>",
"description": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/get_nonce",
"params": {
"wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/auth",
"params": {
"wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8",
"signature": "<base58-signature>",
"message": "Sign in to Joyride\n\nWallet: GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8\nNonce: 0123456789abcdef0123456789abcdef"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/session_resume",
"params": {
"session_token": "<jwt-from-prior-public-auth>"
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "private/buy",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"type": "limit",
"price": 1500000,
"amount": 1000
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"instrument_id": "<string>",
"type": "<string>",
"price": 123,
"amount": 123,
"time_in_force": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 5,
"method": "private/cancel",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"order_id": 42
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"instrument_id": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 7,
"method": "private/replace",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"order_id": 42,
"price": 1510000,
"amount": 1000
}
}{
"jsonrpc": "2.0",
"id": 9,
"method": "private/close_position",
"params": {
"position_id": "SOL_USDC-28FEB26-150-C"
}
}{
"jsonrpc": "<string>",
"method": "<string>"
}{
"jsonrpc": "2.0",
"id": 3,
"method": "public/get_market_config"
}{
"jsonrpc": "<string>",
"method": "<string>"
}{
"jsonrpc": "<string>",
"method": "<string>"
}{
"jsonrpc": "2.0",
"id": 10,
"method": "public/subscribe",
"params": {
"channels": [
"book.SOL_USDC-28FEB26-150-C.10",
"trades.SOL_USDC-28FEB26-150-C",
"user.orders",
"user.trades"
]
}
}No examples foundAsynchronous data pushed for subscribed channels
Request a nonce for SIWS authentication
Authenticate a WebSocket session
Re-authenticate using a previously issued session JWT
Place a buy order
Place a sell order
Cancel a specific order
Cancel all open orders, optionally filtered by instrument
Atomically cancel a resting order and place a new one
Place a reduce-only order in the opposite direction of an open position
Retrieve all active instruments (no auth required)
Returns round duration and epoch anchor (no auth required)
Retrieve authenticated user's open orders from the live matching engine
Retrieve authenticated user's balance
Subscribe to one or more data channels
Unsubscribe from one or more data channels
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8"
}
}{
"jsonrpc": "2.0",
"id": 2,
"error": {
"code": 1001,
"message": "Must authenticate first"
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"channel": "<string>",
"description": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/get_nonce",
"params": {
"wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/auth",
"params": {
"wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8",
"signature": "<base58-signature>",
"message": "Sign in to Joyride\n\nWallet: GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8\nNonce: 0123456789abcdef0123456789abcdef"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/session_resume",
"params": {
"session_token": "<jwt-from-prior-public-auth>"
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "private/buy",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"type": "limit",
"price": 1500000,
"amount": 1000
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"instrument_id": "<string>",
"type": "<string>",
"price": 123,
"amount": 123,
"time_in_force": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 5,
"method": "private/cancel",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"order_id": 42
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"instrument_id": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 7,
"method": "private/replace",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"order_id": 42,
"price": 1510000,
"amount": 1000
}
}{
"jsonrpc": "2.0",
"id": 9,
"method": "private/close_position",
"params": {
"position_id": "SOL_USDC-28FEB26-150-C"
}
}{
"jsonrpc": "<string>",
"method": "<string>"
}{
"jsonrpc": "2.0",
"id": 3,
"method": "public/get_market_config"
}{
"jsonrpc": "<string>",
"method": "<string>"
}{
"jsonrpc": "<string>",
"method": "<string>"
}{
"jsonrpc": "2.0",
"id": 10,
"method": "public/subscribe",
"params": {
"channels": [
"book.SOL_USDC-28FEB26-150-C.10",
"trades.SOL_USDC-28FEB26-150-C",
"user.orders",
"user.trades"
]
}
}No examples found