> ## 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.

# Public trade feed

> Real-time trade feed for an instrument.



## AsyncAPI

````yaml _generated/asyncapi.yaml tradesChannel
id: tradesChannel
title: Public trade feed
description: Real-time trade feed for an instrument.
servers:
  - id: production
    protocol: wss
    host: joyride.exchange
    bindings: []
    variables: []
address: trades.{instrument_id}
parameters:
  - id: instrument_id
    jsonSchema:
      type: string
      description: Instrument identifier.
      examples:
        - SOL_USDC-28FEB26-150-C
    description: Instrument identifier.
    type: string
    required: true
    deprecated: false
bindings: []
operations:
  - &ref_0
    id: receiveTradeNotification
    title: Receive public trade notification
    description: Receive public trade notifications for a subscribed instrument.
    type: receive
    messages:
      - &ref_1
        id: TradeNotification
        contentType: application/json
        payload:
          - name: Public trade notification
            description: >
              Public fill broadcast on `trades.<instrument>`. Includes both
              wallets

              (Solana base58 addresses), but deliberately omits the maker/taker

              order IDs that are present on the private `user.trades` payload —
              see

              `UserTradeNotification` — to avoid exposing maker placement and

              cancellation patterns to anonymous subscribers.
            type: object
            properties:
              - name: trade_id
                type: integer
                required: true
              - name: instrument_id
                type: string
                required: true
              - name: price
                type: integer
                description: Execution price (USDC micros)
                required: true
              - name: size
                type: integer
                description: Size (millicontracts)
                required: true
              - name: taker_wallet
                type: string
                description: Wallet address of the taker (Solana base58).
                required: true
              - name: maker_wallet
                type: string
                description: Wallet address of the maker (Solana base58).
                required: true
              - name: taker_side
                type: string
                enumValues:
                  - bid
                  - ask
                required: true
              - name: timestamp
                type: integer
                description: Unix microseconds
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            trade_id:
              type: integer
              x-parser-schema-id: <anonymous-schema-163>
            instrument_id:
              type: string
              x-parser-schema-id: <anonymous-schema-164>
            price:
              type: integer
              description: Execution price (USDC micros)
              x-parser-schema-id: <anonymous-schema-165>
            size:
              type: integer
              description: Size (millicontracts)
              x-parser-schema-id: <anonymous-schema-166>
            taker_wallet:
              type: string
              description: Wallet address of the taker (Solana base58).
              x-parser-schema-id: <anonymous-schema-167>
            maker_wallet:
              type: string
              description: Wallet address of the maker (Solana base58).
              x-parser-schema-id: <anonymous-schema-168>
            taker_side:
              type: string
              enum:
                - bid
                - ask
              x-parser-schema-id: <anonymous-schema-169>
            timestamp:
              type: integer
              description: Unix microseconds
              x-parser-schema-id: <anonymous-schema-170>
          required:
            - trade_id
            - instrument_id
            - price
            - size
            - taker_wallet
            - maker_wallet
            - taker_side
            - timestamp
          x-parser-schema-id: <anonymous-schema-162>
        title: Public trade notification
        description: |
          Public fill broadcast on `trades.<instrument>`. Includes both wallets
          (Solana base58 addresses), but deliberately omits the maker/taker
          order IDs that are present on the private `user.trades` payload — see
          `UserTradeNotification` — to avoid exposing maker placement and
          cancellation patterns to anonymous subscribers.
        example: |-
          {
            "trade_id": 123,
            "instrument_id": "<string>",
            "price": 123,
            "size": 123,
            "taker_wallet": "<string>",
            "maker_wallet": "<string>",
            "taker_side": "<string>",
            "timestamp": 123
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: TradeNotification
    bindings: []
    extensions:
      - id: x-parser-unique-object-id
        value: tradesChannel
sendOperations:
  - *ref_0
receiveOperations: []
sendMessages:
  - *ref_1
receiveMessages: []
extensions:
  - id: x-parser-unique-object-id
    value: tradesChannel
securitySchemes: []

````