> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joyride.exchange/llms.txt
> Use this file to discover all available pages before exploring further.

# JSON-RPC connection

> All JSON-RPC requests, responses, and notifications flow through the root WebSocket connection.



## AsyncAPI

````yaml _generated/asyncapi.yaml rpcConnection
id: rpcConnection
title: JSON-RPC connection
description: >-
  All JSON-RPC requests, responses, and notifications flow through the root
  WebSocket connection.
servers:
  - id: production
    protocol: wss
    host: joyride.exchange
    bindings: []
    variables: []
address: /
parameters: []
bindings: []
operations:
  - &ref_2
    id: sendRpcRequest
    title: Send JSON-RPC request
    description: Client sends JSON-RPC requests on the root WebSocket connection.
    type: send
    messages:
      - &ref_6
        id: GetNonceRequest
        contentType: application/json
        payload:
          - name: Get authentication nonce
            description: Request a nonce for SIWS authentication
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/get_nonce
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: wallet
                    type: string
                    description: Base58-encoded Solana wallet address
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-2>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-4>
                - type: string
                  x-parser-schema-id: <anonymous-schema-5>
              x-parser-schema-id: <anonymous-schema-3>
            method:
              type: string
              const: public/get_nonce
              x-parser-schema-id: <anonymous-schema-6>
            params:
              type: object
              properties:
                wallet:
                  type: string
                  description: Base58-encoded Solana wallet address
                  example: GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8
                  x-parser-schema-id: <anonymous-schema-8>
              required:
                - wallet
              x-parser-schema-id: <anonymous-schema-7>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-1>
        title: Get authentication nonce
        description: Request a nonce for SIWS authentication
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "public/get_nonce",
            "params": {
              "wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: GetNonceRequest
      - &ref_7
        id: AuthRequest
        contentType: application/json
        payload:
          - name: Authenticate
            description: Authenticate a WebSocket session
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/auth
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: wallet
                    type: string
                    description: Base58-encoded Solana wallet address
                    required: true
                  - name: signature
                    type: string
                    description: Base58-encoded ed25519 signature over the SIWS message
                    required: true
                  - name: message
                    type: string
                    description: Exact SIWS message that was signed
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-10>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-12>
                - type: string
                  x-parser-schema-id: <anonymous-schema-13>
              example: 1
              x-parser-schema-id: <anonymous-schema-11>
            method:
              type: string
              const: public/auth
              x-parser-schema-id: <anonymous-schema-14>
            params:
              type: object
              properties:
                wallet:
                  type: string
                  description: Base58-encoded Solana wallet address
                  example: GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8
                  x-parser-schema-id: <anonymous-schema-16>
                signature:
                  type: string
                  description: Base58-encoded ed25519 signature over the SIWS message
                  example: >-
                    5LzHfV8r5P6kQmB1sV2nY3wX4aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890abcdEFGH
                  x-parser-schema-id: <anonymous-schema-17>
                message:
                  type: string
                  description: Exact SIWS message that was signed
                  example: |-
                    Sign in to Joyride

                    Wallet: GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8
                    Nonce: 0123456789abcdef0123456789abcdef
                  x-parser-schema-id: <anonymous-schema-18>
              required:
                - wallet
                - signature
                - message
              x-parser-schema-id: <anonymous-schema-15>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-9>
        title: Authenticate
        description: Authenticate a WebSocket session
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "public/auth",
            "params": {
              "wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8",
              "signature": "<base58-signature>",
              "message": "Sign in to Joyride\n\nWallet: GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8\nNonce: 0123456789abcdef0123456789abcdef"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: AuthRequest
      - &ref_8
        id: SessionResumeRequest
        contentType: application/json
        payload:
          - name: Resume an authenticated session
            description: Re-authenticate using a previously issued session JWT
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/session_resume
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: session_token
                    type: string
                    description: JWT returned by a prior `public/auth` response
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-20>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-22>
                - type: string
                  x-parser-schema-id: <anonymous-schema-23>
              example: 1
              x-parser-schema-id: <anonymous-schema-21>
            method:
              type: string
              const: public/session_resume
              x-parser-schema-id: <anonymous-schema-24>
            params:
              type: object
              properties:
                session_token:
                  type: string
                  description: JWT returned by a prior `public/auth` response
                  x-parser-schema-id: <anonymous-schema-26>
              required:
                - session_token
              x-parser-schema-id: <anonymous-schema-25>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-19>
        title: Resume an authenticated session
        description: Re-authenticate using a previously issued session JWT
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "public/session_resume",
            "params": {
              "session_token": "<jwt-from-prior-public-auth>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: SessionResumeRequest
      - &ref_9
        id: BuyRequest
        contentType: application/json
        payload:
          - name: Buy (place bid)
            description: Place a buy order
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/buy
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: instrument_id
                    type: string
                    description: Instrument to buy
                    required: true
                  - name: type
                    type: string
                    description: Order type
                    enumValues:
                      - limit
                      - market
                    required: true
                  - name: price
                    type: integer
                    description: >-
                      Limit price in USDC micros (required for limit, omit for
                      market)
                    required: false
                  - name: amount
                    type: integer
                    description: Order size in millicontracts
                    required: true
                  - name: time_in_force
                    type: string
                    description: Time-in-force policy
                    enumValues:
                      - GTC
                      - IOC
                      - FOK
                      - POST_ONLY
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-28>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-30>
                - type: string
                  x-parser-schema-id: <anonymous-schema-31>
              x-parser-schema-id: <anonymous-schema-29>
            method:
              type: string
              const: private/buy
              x-parser-schema-id: <anonymous-schema-32>
            params:
              type: object
              properties:
                instrument_id:
                  type: string
                  description: Instrument to buy
                  example: SOL_USDC-28FEB26-150-C
                  x-parser-schema-id: <anonymous-schema-34>
                type:
                  type: string
                  enum:
                    - limit
                    - market
                  description: Order type
                  x-parser-schema-id: <anonymous-schema-35>
                price:
                  type: integer
                  description: >-
                    Limit price in USDC micros (required for limit, omit for
                    market)
                  example: 1500000
                  x-parser-schema-id: <anonymous-schema-36>
                amount:
                  type: integer
                  description: Order size in millicontracts
                  example: 1000
                  x-parser-schema-id: <anonymous-schema-37>
                time_in_force:
                  type: string
                  enum:
                    - GTC
                    - IOC
                    - FOK
                    - POST_ONLY
                  default: GTC
                  description: Time-in-force policy
                  x-parser-schema-id: <anonymous-schema-38>
              required:
                - instrument_id
                - type
                - amount
              x-parser-schema-id: <anonymous-schema-33>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-27>
        title: Buy (place bid)
        description: Place a buy order
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 42,
            "method": "private/buy",
            "params": {
              "instrument_id": "SOL_USDC-28FEB26-150-C",
              "type": "limit",
              "price": 1500000,
              "amount": 1000
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: BuyRequest
      - &ref_10
        id: SellRequest
        contentType: application/json
        payload:
          - name: Sell (place ask)
            description: Place a sell order
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/sell
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: instrument_id
                    type: string
                    required: true
                  - name: type
                    type: string
                    enumValues:
                      - limit
                      - market
                    required: true
                  - name: price
                    type: integer
                    description: Limit price in USDC micros
                    required: false
                  - name: amount
                    type: integer
                    description: Order size in millicontracts
                    required: true
                  - name: time_in_force
                    type: string
                    enumValues:
                      - GTC
                      - IOC
                      - FOK
                      - POST_ONLY
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-40>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-42>
                - type: string
                  x-parser-schema-id: <anonymous-schema-43>
              x-parser-schema-id: <anonymous-schema-41>
            method:
              type: string
              const: private/sell
              x-parser-schema-id: <anonymous-schema-44>
            params:
              type: object
              properties:
                instrument_id:
                  type: string
                  example: SOL_USDC-28FEB26-150-C
                  x-parser-schema-id: <anonymous-schema-46>
                type:
                  type: string
                  enum:
                    - limit
                    - market
                  x-parser-schema-id: <anonymous-schema-47>
                price:
                  type: integer
                  description: Limit price in USDC micros
                  x-parser-schema-id: <anonymous-schema-48>
                amount:
                  type: integer
                  description: Order size in millicontracts
                  x-parser-schema-id: <anonymous-schema-49>
                time_in_force:
                  type: string
                  enum:
                    - GTC
                    - IOC
                    - FOK
                    - POST_ONLY
                  default: GTC
                  x-parser-schema-id: <anonymous-schema-50>
              required:
                - instrument_id
                - type
                - amount
              x-parser-schema-id: <anonymous-schema-45>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-39>
        title: Sell (place ask)
        description: Place a sell order
        example: |-
          {
            "jsonrpc": "<string>",
            "method": "<string>",
            "params": {
              "instrument_id": "<string>",
              "type": "<string>",
              "price": 123,
              "amount": 123,
              "time_in_force": "<string>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: SellRequest
      - &ref_11
        id: CancelRequest
        contentType: application/json
        payload:
          - name: Cancel order
            description: Cancel a specific order
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/cancel
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: instrument_id
                    type: string
                    description: Instrument the order belongs to
                    required: true
                  - name: order_id
                    type: integer
                    description: Order ID to cancel
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-52>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-54>
                - type: string
                  x-parser-schema-id: <anonymous-schema-55>
              x-parser-schema-id: <anonymous-schema-53>
            method:
              type: string
              const: private/cancel
              x-parser-schema-id: <anonymous-schema-56>
            params:
              type: object
              properties:
                instrument_id:
                  type: string
                  description: Instrument the order belongs to
                  example: SOL_USDC-28FEB26-150-C
                  x-parser-schema-id: <anonymous-schema-58>
                order_id:
                  type: integer
                  description: Order ID to cancel
                  example: 42
                  x-parser-schema-id: <anonymous-schema-59>
              required:
                - instrument_id
                - order_id
              x-parser-schema-id: <anonymous-schema-57>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-51>
        title: Cancel order
        description: Cancel a specific order
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 5,
            "method": "private/cancel",
            "params": {
              "instrument_id": "SOL_USDC-28FEB26-150-C",
              "order_id": 42
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: CancelRequest
      - &ref_12
        id: CancelAllRequest
        contentType: application/json
        payload:
          - name: Cancel all orders
            description: Cancel all open orders, optionally filtered by instrument
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/cancel_all
                required: true
              - name: params
                type: object
                required: false
                properties:
                  - name: instrument_id
                    type: string
                    description: >-
                      Optional instrument filter. If omitted, cancels across all
                      instruments.
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-61>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-63>
                - type: string
                  x-parser-schema-id: <anonymous-schema-64>
              x-parser-schema-id: <anonymous-schema-62>
            method:
              type: string
              const: private/cancel_all
              x-parser-schema-id: <anonymous-schema-65>
            params:
              type: object
              properties:
                instrument_id:
                  type: string
                  description: >-
                    Optional instrument filter. If omitted, cancels across all
                    instruments.
                  x-parser-schema-id: <anonymous-schema-67>
              x-parser-schema-id: <anonymous-schema-66>
          required:
            - jsonrpc
            - id
            - method
          x-parser-schema-id: <anonymous-schema-60>
        title: Cancel all orders
        description: Cancel all open orders, optionally filtered by instrument
        example: |-
          {
            "jsonrpc": "<string>",
            "method": "<string>",
            "params": {
              "instrument_id": "<string>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: CancelAllRequest
      - &ref_13
        id: ReplaceRequest
        contentType: application/json
        payload:
          - name: Replace an open order
            description: Atomically cancel a resting order and place a new one
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/replace
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: instrument_id
                    type: string
                    description: Instrument the order belongs to
                    required: true
                  - name: order_id
                    type: integer
                    description: ID of the resting order to replace
                    required: true
                  - name: price
                    type: integer
                    description: New limit price in USDC micros
                    required: true
                  - name: amount
                    type: integer
                    description: New order size in millicontracts
                    required: true
                  - name: time_in_force
                    type: string
                    enumValues:
                      - GTC
                      - IOC
                      - FOK
                      - POST_ONLY
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-69>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-71>
                - type: string
                  x-parser-schema-id: <anonymous-schema-72>
              x-parser-schema-id: <anonymous-schema-70>
            method:
              type: string
              const: private/replace
              x-parser-schema-id: <anonymous-schema-73>
            params:
              type: object
              properties:
                instrument_id:
                  type: string
                  description: Instrument the order belongs to
                  example: SOL_USDC-28FEB26-150-C
                  x-parser-schema-id: <anonymous-schema-75>
                order_id:
                  type: integer
                  description: ID of the resting order to replace
                  example: 42
                  x-parser-schema-id: <anonymous-schema-76>
                price:
                  type: integer
                  description: New limit price in USDC micros
                  example: 1500000
                  x-parser-schema-id: <anonymous-schema-77>
                amount:
                  type: integer
                  description: New order size in millicontracts
                  example: 1000
                  x-parser-schema-id: <anonymous-schema-78>
                time_in_force:
                  type: string
                  enum:
                    - GTC
                    - IOC
                    - FOK
                    - POST_ONLY
                  default: GTC
                  x-parser-schema-id: <anonymous-schema-79>
              required:
                - instrument_id
                - order_id
                - price
                - amount
              x-parser-schema-id: <anonymous-schema-74>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-68>
        title: Replace an open order
        description: Atomically cancel a resting order and place a new one
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 7,
            "method": "private/replace",
            "params": {
              "instrument_id": "SOL_USDC-28FEB26-150-C",
              "order_id": 42,
              "price": 1510000,
              "amount": 1000
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: ReplaceRequest
      - &ref_14
        id: ClosePositionRequest
        contentType: application/json
        payload:
          - name: Close a position
            description: >-
              Place a reduce-only order in the opposite direction of an open
              position
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/close_position
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: position_id
                    type: string
                    description: Instrument ID of the position to close
                    required: true
                  - name: quantity
                    type: integer
                    description: >-
                      Quantity to close in millicontracts. If omitted, closes
                      the full position.
                    required: false
                  - name: order_type
                    type: string
                    enumValues:
                      - market
                      - limit
                    required: false
                  - name: price
                    type: integer
                    description: >-
                      Limit price in USDC micros. Required when `order_type` is
                      `limit`.
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-81>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-83>
                - type: string
                  x-parser-schema-id: <anonymous-schema-84>
              x-parser-schema-id: <anonymous-schema-82>
            method:
              type: string
              const: private/close_position
              x-parser-schema-id: <anonymous-schema-85>
            params:
              type: object
              properties:
                position_id:
                  type: string
                  description: Instrument ID of the position to close
                  example: SOL_USDC-28FEB26-150-C
                  x-parser-schema-id: <anonymous-schema-87>
                quantity:
                  type: integer
                  description: >-
                    Quantity to close in millicontracts. If omitted, closes the
                    full position.
                  example: 1000
                  x-parser-schema-id: <anonymous-schema-88>
                order_type:
                  type: string
                  enum:
                    - market
                    - limit
                  default: market
                  x-parser-schema-id: <anonymous-schema-89>
                price:
                  type: integer
                  description: >-
                    Limit price in USDC micros. Required when `order_type` is
                    `limit`.
                  x-parser-schema-id: <anonymous-schema-90>
              required:
                - position_id
              x-parser-schema-id: <anonymous-schema-86>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-80>
        title: Close a position
        description: >-
          Place a reduce-only order in the opposite direction of an open
          position
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 9,
            "method": "private/close_position",
            "params": {
              "position_id": "SOL_USDC-28FEB26-150-C"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: ClosePositionRequest
      - &ref_15
        id: GetInstrumentsRequest
        contentType: application/json
        payload:
          - name: Get instruments
            description: Retrieve all active instruments (no auth required)
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/get_instruments
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-92>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-94>
                - type: string
                  x-parser-schema-id: <anonymous-schema-95>
              x-parser-schema-id: <anonymous-schema-93>
            method:
              type: string
              const: public/get_instruments
              x-parser-schema-id: <anonymous-schema-96>
          required:
            - jsonrpc
            - id
            - method
          x-parser-schema-id: <anonymous-schema-91>
        title: Get instruments
        description: Retrieve all active instruments (no auth required)
        example: |-
          {
            "jsonrpc": "<string>",
            "method": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: GetInstrumentsRequest
      - &ref_16
        id: GetMarketConfigRequest
        contentType: application/json
        payload:
          - name: Get market configuration
            description: Returns round duration and epoch anchor (no auth required)
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/get_market_config
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-98>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-100>
                - type: string
                  x-parser-schema-id: <anonymous-schema-101>
              x-parser-schema-id: <anonymous-schema-99>
            method:
              type: string
              const: public/get_market_config
              x-parser-schema-id: <anonymous-schema-102>
          required:
            - jsonrpc
            - id
            - method
          x-parser-schema-id: <anonymous-schema-97>
        title: Get market configuration
        description: Returns round duration and epoch anchor (no auth required)
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 3,
            "method": "public/get_market_config"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: GetMarketConfigRequest
      - &ref_17
        id: GetOpenOrdersRequest
        contentType: application/json
        payload:
          - name: Get open orders
            description: >-
              Retrieve authenticated user's open orders from the live matching
              engine
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/get_open_orders
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-104>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-106>
                - type: string
                  x-parser-schema-id: <anonymous-schema-107>
              x-parser-schema-id: <anonymous-schema-105>
            method:
              type: string
              const: private/get_open_orders
              x-parser-schema-id: <anonymous-schema-108>
          required:
            - jsonrpc
            - id
            - method
          x-parser-schema-id: <anonymous-schema-103>
        title: Get open orders
        description: >-
          Retrieve authenticated user's open orders from the live matching
          engine
        example: |-
          {
            "jsonrpc": "<string>",
            "method": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: GetOpenOrdersRequest
      - &ref_18
        id: GetAccountRequest
        contentType: application/json
        payload:
          - name: Get account
            description: Retrieve authenticated user's balance
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: private/get_account
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-110>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-112>
                - type: string
                  x-parser-schema-id: <anonymous-schema-113>
              x-parser-schema-id: <anonymous-schema-111>
            method:
              type: string
              const: private/get_account
              x-parser-schema-id: <anonymous-schema-114>
          required:
            - jsonrpc
            - id
            - method
          x-parser-schema-id: <anonymous-schema-109>
        title: Get account
        description: Retrieve authenticated user's balance
        example: |-
          {
            "jsonrpc": "<string>",
            "method": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: GetAccountRequest
      - &ref_19
        id: SubscribeRequest
        contentType: application/json
        payload:
          - name: Subscribe to channels
            description: Subscribe to one or more data channels
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/subscribe
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: channels
                    type: array
                    description: List of channel names to subscribe to
                    required: true
                    properties:
                      - name: item
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-116>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-118>
                - type: string
                  x-parser-schema-id: <anonymous-schema-119>
              x-parser-schema-id: <anonymous-schema-117>
            method:
              type: string
              const: public/subscribe
              x-parser-schema-id: <anonymous-schema-120>
            params:
              type: object
              properties:
                channels:
                  type: array
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-123>
                  description: List of channel names to subscribe to
                  example:
                    - book.SOL_USDC-28FEB26-150-C.10
                    - trades.SOL_USDC-28FEB26-150-C
                    - user.orders
                    - user.trades
                    - logs
                  x-parser-schema-id: <anonymous-schema-122>
              required:
                - channels
              x-parser-schema-id: <anonymous-schema-121>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-115>
        title: Subscribe to channels
        description: Subscribe to one or more data channels
        example: |-
          {
            "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"
              ]
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: SubscribeRequest
      - &ref_20
        id: UnsubscribeRequest
        contentType: application/json
        payload:
          - name: Unsubscribe from channels
            description: Unsubscribe from one or more data channels
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: method
                type: string
                description: public/unsubscribe
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: channels
                    type: array
                    required: true
                    properties:
                      - name: item
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-125>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-127>
                - type: string
                  x-parser-schema-id: <anonymous-schema-128>
              x-parser-schema-id: <anonymous-schema-126>
            method:
              type: string
              const: public/unsubscribe
              x-parser-schema-id: <anonymous-schema-129>
            params:
              type: object
              properties:
                channels:
                  type: array
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-132>
                  x-parser-schema-id: <anonymous-schema-131>
              required:
                - channels
              x-parser-schema-id: <anonymous-schema-130>
          required:
            - jsonrpc
            - id
            - method
            - params
          x-parser-schema-id: <anonymous-schema-124>
        title: Unsubscribe from channels
        description: Unsubscribe from one or more data channels
        example: No examples found
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnsubscribeRequest
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: rpcConnection
  - &ref_1
    id: receiveRpcMessage
    title: Receive JSON-RPC response or notification
    description: >-
      Server returns method results, method errors, and subscription
      notifications on the root WebSocket connection.
    type: receive
    messages:
      - &ref_3
        id: RpcResponse
        contentType: application/json
        payload:
          - name: Successful response
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                description: Matches the request id
                required: true
              - name: description
                type: string
                description: Method-specific result object
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-134>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-136>
                - type: string
                  x-parser-schema-id: <anonymous-schema-137>
              description: Matches the request id
              x-parser-schema-id: <anonymous-schema-135>
            result:
              description: Method-specific result object
              x-parser-schema-id: <anonymous-schema-138>
          required:
            - jsonrpc
            - id
            - result
          x-parser-schema-id: <anonymous-schema-133>
        title: Successful response
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {
              "wallet": "GmQozSzrtMjXt5F1Bed8Vrt55zCbiga8vDZr47RX9wC8"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: RpcResponse
      - &ref_4
        id: RpcError
        contentType: application/json
        payload:
          - name: Error response
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: id
                type: oneOf
                required: true
              - name: error
                type: object
                required: true
                properties:
                  - name: code
                    type: integer
                    description: >
                      Standard JSON-RPC errors:

                      - `-32700` Parse error (invalid JSON)

                      - `-32600` Invalid request (invalid JSON-RPC structure)

                      - `-32601` Method not found

                      - `-32602` Invalid params

                      - `-32603` Internal error


                      Application errors:

                      - `1001` Not authenticated

                      - `1002` Insufficient balance

                      - `1003` Order not found

                      - `1004` Instrument not found

                      - `1005` Invalid price (must be > 0)

                      - `1006` Invalid size (amount must be > 0)

                      - `1007` Rate limit exceeded

                      - `1008` Order already cancelled or filled

                      - `1009` Market closed (instrument expired)

                      - `1010` Authentication failed

                      - `1014` Instrument paused by operator (existing orders
                      can be cancelled; lifted by
                      `/v1/admin/instruments/pause-by-expiration`)
                    required: true
                  - name: message
                    type: string
                    description: Human-readable error message
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-140>
            id:
              oneOf:
                - type: integer
                  x-parser-schema-id: <anonymous-schema-142>
                - type: string
                  x-parser-schema-id: <anonymous-schema-143>
              x-parser-schema-id: <anonymous-schema-141>
            error:
              type: object
              properties:
                code:
                  type: integer
                  description: >
                    Standard JSON-RPC errors:

                    - `-32700` Parse error (invalid JSON)

                    - `-32600` Invalid request (invalid JSON-RPC structure)

                    - `-32601` Method not found

                    - `-32602` Invalid params

                    - `-32603` Internal error


                    Application errors:

                    - `1001` Not authenticated

                    - `1002` Insufficient balance

                    - `1003` Order not found

                    - `1004` Instrument not found

                    - `1005` Invalid price (must be > 0)

                    - `1006` Invalid size (amount must be > 0)

                    - `1007` Rate limit exceeded

                    - `1008` Order already cancelled or filled

                    - `1009` Market closed (instrument expired)

                    - `1010` Authentication failed

                    - `1014` Instrument paused by operator (existing orders can
                    be cancelled; lifted by
                    `/v1/admin/instruments/pause-by-expiration`)
                  x-parser-schema-id: <anonymous-schema-145>
                message:
                  type: string
                  description: Human-readable error message
                  x-parser-schema-id: <anonymous-schema-146>
              required:
                - code
                - message
              x-parser-schema-id: <anonymous-schema-144>
          required:
            - jsonrpc
            - id
            - error
          x-parser-schema-id: <anonymous-schema-139>
        title: Error response
        example: |-
          {
            "jsonrpc": "2.0",
            "id": 2,
            "error": {
              "code": 1001,
              "message": "Must authenticate first"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: RpcError
      - &ref_5
        id: SubscriptionNotification
        contentType: application/json
        payload:
          - name: Channel data push
            description: Asynchronous data pushed for subscribed channels
            type: object
            properties:
              - name: jsonrpc
                type: string
                description: '2.0'
                required: true
              - name: method
                type: string
                description: subscription
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: channel
                    type: string
                    description: The channel name this data belongs to
                    required: true
                  - name: description
                    type: string
                    description: >-
                      Channel-specific data (see individual channel message
                      schemas)
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            jsonrpc:
              type: string
              const: '2.0'
              x-parser-schema-id: <anonymous-schema-148>
            method:
              type: string
              const: subscription
              x-parser-schema-id: <anonymous-schema-149>
            params:
              type: object
              properties:
                channel:
                  type: string
                  description: The channel name this data belongs to
                  example: book.SOL_USDC-28FEB26-150-C.10
                  x-parser-schema-id: <anonymous-schema-151>
                data:
                  description: >-
                    Channel-specific data (see individual channel message
                    schemas)
                  x-parser-schema-id: <anonymous-schema-152>
              required:
                - channel
                - data
              x-parser-schema-id: <anonymous-schema-150>
          required:
            - jsonrpc
            - method
            - params
          x-parser-schema-id: <anonymous-schema-147>
        title: Channel data push
        description: Asynchronous data pushed for subscribed channels
        example: |-
          {
            "jsonrpc": "<string>",
            "method": "<string>",
            "params": {
              "channel": "<string>",
              "description": "<string>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: SubscriptionNotification
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
receiveOperations:
  - *ref_2
sendMessages:
  - *ref_3
  - *ref_4
  - *ref_5
receiveMessages:
  - *ref_6
  - *ref_7
  - *ref_8
  - *ref_9
  - *ref_10
  - *ref_11
  - *ref_12
  - *ref_13
  - *ref_14
  - *ref_15
  - *ref_16
  - *ref_17
  - *ref_18
  - *ref_19
  - *ref_20
extensions:
  - id: x-parser-unique-object-id
    value: rpcConnection
securitySchemes: []

````