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

# Subscribe Trades

> Subscribe to real-time trades.

<Callout icon="activity" color="#FFC107" iconType="regular">To keep the connection alive, you need to send a ping message every less than 60 seconds.</Callout>

You can subscribe and unsubscribe to any amount of topics you want on a single connection.

To update a topic subscription, you can resubscribe to the same topic with new parameters.

Incoming messages will include a `topic` field that you can use to filter the type of message.

<Tip>When **subscribing**, you can leave any of the array fields of the `params` object empty to subscribe to all entries for that field.</Tip>
<Tip>When **unsubscribing**, you can leave the `topics` array empty to unsubscribe from all topics.</Tip>


## AsyncAPI

````yaml dist/asyncapi.yml solanaDexTradesSubscription
id: solanaDexTradesSubscription
title: Trades Subscription
description: Subscribe to real-time trade updates.
servers:
  - id: production
    protocol: wss
    host: refract.prismapi.io
    bindings: []
    variables: []
address: /v1/ws
parameters: []
bindings: []
operations:
  - &ref_2
    id: receiveSolanaDexTradesSubscription
    title: Receive solana dex trades subscription
    type: send
    messages:
      - &ref_5
        id: tradesSubscriptionMessage
        contentType: application/json
        payload:
          - name: Trade Message
            description: Message containing the trade data.
            type: object
            properties:
              - name: topic
                type: string
                enumValues:
                  - solana.dex.prices
                  - solana.dex.swaps
                  - solana.dex.trades
                  - solana.dex.pools
                  - solana.dex.profiles.wallet
                  - solana.dex.profiles.token
                  - solana.dex.profiles.position
                  - solana.assets.transfers
                  - solana.assets.balance-changes
                required: false
              - name: data
                type: object
                required: false
                properties:
                  - name: id
                    type: integer
                    required: false
                  - name: protocol
                    type: string
                    description: >-
                      Refer to [Data
                      Sources](/documentation/solana/dex/overview#data-sources)
                      for the list of supported protocols.
                    required: false
                  - name: swap_type
                    type: string
                    enumValues:
                      - quote_token
                      - token_quote
                      - token_token
                      - quote_quote
                    required: false
                  - name: wallet_address
                    type: string
                    required: false
                  - name: token_address
                    type: string
                    required: false
                  - name: quote_address
                    type: string
                    required: false
                  - name: position_address
                    type: string
                    required: false
                  - name: direction
                    type: string
                    enumValues:
                      - buy
                      - sell
                    required: false
                  - name: position_state
                    type: string
                    enumValues:
                      - open
                      - close
                      - trade
                    required: false
                  - name: token_amount
                    type: number
                    required: false
                  - name: quote_amount
                    type: number
                    required: false
                  - name: native_amount
                    type: number
                    required: false
                  - name: usd_amount
                    type: number
                    required: false
                  - name: pre_token_balance
                    type: number
                    required: false
                  - name: post_token_balance
                    type: number
                    required: false
                  - name: token_price
                    type: number
                    required: false
                  - name: quote_price
                    type: number
                    required: false
                  - name: token_mcap
                    type: number
                    required: false
                  - name: block_slot
                    type: integer
                    required: false
                  - name: block_time
                    type: string
                    required: false
                  - name: tx_hash
                    type: string
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            topic:
              x-fern-type-name: SubscriptionTopicEnum
              type: string
              enum:
                - solana.dex.prices
                - solana.dex.swaps
                - solana.dex.trades
                - solana.dex.pools
                - solana.dex.profiles.wallet
                - solana.dex.profiles.token
                - solana.dex.profiles.position
                - solana.assets.transfers
                - solana.assets.balance-changes
              x-parser-schema-id: <anonymous-schema-59>
            data:
              x-fern-type-name: SolanaDexTradeMessage
              type: object
              properties:
                id:
                  type: integer
                  x-parser-schema-id: <anonymous-schema-61>
                protocol:
                  x-fern-type-name: SolanaDexProtocolField
                  type: string
                  description: >-
                    Refer to [Data
                    Sources](/documentation/solana/dex/overview#data-sources)
                    for the list of supported protocols.
                  x-parser-schema-id: <anonymous-schema-62>
                swap_type:
                  x-fern-type-name: SolanaDexSwapTypeEnum
                  type: string
                  enum:
                    - quote_token
                    - token_quote
                    - token_token
                    - quote_quote
                  x-enum-descriptions:
                    - Quote (sell) to token (buy) swap
                    - Token (sell) to quote (buy) swap
                    - Token (sell) to token (buy) swap
                    - Quote (sell) to quote (buy) swap
                  x-parser-schema-id: <anonymous-schema-63>
                wallet_address:
                  type: string
                  x-parser-schema-id: <anonymous-schema-64>
                token_address:
                  type: string
                  x-parser-schema-id: <anonymous-schema-65>
                quote_address:
                  type: string
                  x-parser-schema-id: <anonymous-schema-66>
                position_address:
                  type: string
                  x-parser-schema-id: <anonymous-schema-67>
                direction:
                  x-fern-type-name: SolanaDexTradeDirectionEnum
                  type: string
                  enum:
                    - buy
                    - sell
                  x-enum-descriptions:
                    - Trader bought a token.
                    - Trader sold a token.
                  x-parser-schema-id: <anonymous-schema-68>
                position_state:
                  x-fern-type-name: SolanaDexTradePositionStateEnum
                  type: string
                  enum:
                    - open
                    - close
                    - trade
                  x-enum-descriptions:
                    - Trader opened a position.
                    - Trader closed a position.
                    - Trader executed a trade against a position.
                  x-parser-schema-id: <anonymous-schema-69>
                token_amount:
                  type: number
                  x-parser-schema-id: <anonymous-schema-70>
                quote_amount:
                  type: number
                  x-parser-schema-id: <anonymous-schema-71>
                native_amount:
                  type: number
                  x-parser-schema-id: <anonymous-schema-72>
                usd_amount:
                  type: number
                  x-parser-schema-id: <anonymous-schema-73>
                pre_token_balance:
                  type: number
                  x-parser-schema-id: <anonymous-schema-74>
                post_token_balance:
                  type: number
                  x-parser-schema-id: <anonymous-schema-75>
                token_price:
                  type: number
                  x-parser-schema-id: <anonymous-schema-76>
                quote_price:
                  type: number
                  x-parser-schema-id: <anonymous-schema-77>
                token_mcap:
                  type: number
                  x-parser-schema-id: <anonymous-schema-78>
                block_slot:
                  type: integer
                  x-parser-schema-id: <anonymous-schema-79>
                block_time:
                  type: string
                  format: date-time
                  x-parser-schema-id: <anonymous-schema-80>
                tx_hash:
                  type: string
                  x-parser-schema-id: <anonymous-schema-81>
              x-parser-schema-id: <anonymous-schema-60>
          x-parser-schema-id: <anonymous-schema-58>
        title: Trade Message
        description: Message containing the trade data.
        example: |-
          {
            "topic": "solana.dex.trades",
            "data": {
              "id": 1,
              "protocol": "orca-whirl",
              "swap_type": "token_quote",
              "wallet_address": "CsVdJ8WH8Q9eHSTRpwtwN3TYApm24QnLKYUMNxJ3DaED",
              "token_address": "J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd",
              "quote_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "position_address": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
              "direction": "buy",
              "position_state": "open",
              "token_amount": 256.4115815,
              "quote_amount": 35.323303,
              "native_amount": 0.012345,
              "usd_amount": 35.31801262890969,
              "pre_token_balance": 2247.98704231,
              "post_token_balance": 1991.57546081,
              "token_symbol": "2Z",
              "quote_symbol": "USDC",
              "token_price": 0.13773953743547926,
              "quote_price": 0.99985023,
              "block_slot": 382423380,
              "block_time": "2026-05-28T12:00:00Z",
              "tx_hash": "3gg6eQPa2PJ4LkGnd12EoEBHmSB3R3fr9h6MYUaaDAjeZBL5bb9paUxn521Z9d3ScWES4cVKLsexwEvo3dUoqhEs"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: tradesSubscriptionMessage
          - id: x-parser-message-name
            value: tradesSubscriptionMessage
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: solanaDexTradesSubscription
  - &ref_1
    id: sendSolanaDexTradesSubscription
    title: Send solana dex trades subscription
    type: receive
    messages:
      - &ref_3
        id: subscribeTrades
        contentType: application/json
        payload:
          - name: Subscribe Trades
            description: Subscribe to trade updates.
            type: object
            properties:
              - name: method
                type: string
                enumValues:
                  - subscribe
                  - unsubscribe
                required: true
              - name: topic
                type: string
                enumValues:
                  - solana.dex.prices
                  - solana.dex.swaps
                  - solana.dex.trades
                  - solana.dex.pools
                  - solana.dex.profiles.wallet
                  - solana.dex.profiles.token
                  - solana.dex.profiles.position
                  - solana.assets.transfers
                  - solana.assets.balance-changes
                required: true
              - name: params
                type: object
                required: true
                properties:
                  - name: token_addresses
                    type: array
                    required: false
                    properties:
                      - name: item
                        type: string
                        required: false
                  - name: wallet_addresses
                    type: array
                    required: false
                    properties:
                      - name: item
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - method
            - topic
            - params
          properties:
            method:
              x-fern-type-name: SubscriptionMethodEnum
              type: string
              enum:
                - subscribe
                - unsubscribe
              x-parser-schema-id: <anonymous-schema-83>
            topic:
              x-fern-type-name: SubscriptionTopicEnum
              type: string
              enum:
                - solana.dex.prices
                - solana.dex.swaps
                - solana.dex.trades
                - solana.dex.pools
                - solana.dex.profiles.wallet
                - solana.dex.profiles.token
                - solana.dex.profiles.position
                - solana.assets.transfers
                - solana.assets.balance-changes
              x-parser-schema-id: <anonymous-schema-84>
            params:
              type: object
              properties:
                token_addresses:
                  type: array
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-87>
                  x-parser-schema-id: <anonymous-schema-86>
                wallet_addresses:
                  type: array
                  items:
                    type: string
                    x-parser-schema-id: <anonymous-schema-89>
                  x-parser-schema-id: <anonymous-schema-88>
              x-parser-schema-id: <anonymous-schema-85>
          x-parser-schema-id: <anonymous-schema-82>
        title: Subscribe Trades
        description: Subscribe to trade updates.
        example: |-
          {
            "method": "subscribe",
            "topic": "solana.dex.trades",
            "params": {
              "token_addresses": [
                "J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd"
              ],
              "wallet_addresses": [
                "CsVdJ8WH8Q9eHSTRpwtwN3TYApm24QnLKYUMNxJ3DaED"
              ]
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: subscribeTrades
          - id: x-parser-message-name
            value: subscribeTrades
      - &ref_4
        id: unsubscribeTrades
        contentType: application/json
        payload:
          - name: Unsubscribe Trades
            description: Unsubscribe from trade updates.
            type: object
            properties:
              - name: method
                type: string
                enumValues:
                  - subscribe
                  - unsubscribe
                required: true
              - name: topics
                type: array
                description: >-
                  The topics to unsubscribe from. Leave empty to unsubscribe
                  from all topics.
                required: true
                properties:
                  - name: item
                    type: string
                    enumValues:
                      - solana.dex.prices
                      - solana.dex.swaps
                      - solana.dex.trades
                      - solana.dex.pools
                      - solana.dex.profiles.wallet
                      - solana.dex.profiles.token
                      - solana.dex.profiles.position
                      - solana.assets.transfers
                      - solana.assets.balance-changes
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - method
            - topics
          properties:
            method:
              x-fern-type-name: SubscriptionMethodEnum
              type: string
              enum:
                - subscribe
                - unsubscribe
              x-parser-schema-id: <anonymous-schema-91>
            topics:
              type: array
              description: >-
                The topics to unsubscribe from. Leave empty to unsubscribe from
                all topics.
              items:
                x-fern-type-name: SubscriptionTopicEnum
                type: string
                enum:
                  - solana.dex.prices
                  - solana.dex.swaps
                  - solana.dex.trades
                  - solana.dex.pools
                  - solana.dex.profiles.wallet
                  - solana.dex.profiles.token
                  - solana.dex.profiles.position
                  - solana.assets.transfers
                  - solana.assets.balance-changes
                x-parser-schema-id: <anonymous-schema-93>
              x-parser-schema-id: <anonymous-schema-92>
          x-parser-schema-id: <anonymous-schema-90>
        title: Unsubscribe Trades
        description: Unsubscribe from trade updates.
        example: |-
          {
            "method": "unsubscribe",
            "topics": [
              "solana.dex.trades"
            ]
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: unsubscribeTrades
          - id: x-parser-message-name
            value: unsubscribeTrades
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
receiveOperations:
  - *ref_2
sendMessages:
  - *ref_3
  - *ref_4
receiveMessages:
  - *ref_5
extensions:
  - id: x-parser-unique-object-id
    value: solanaDexTradesSubscription
securitySchemes:
  - id: WsApiKeyAuth
    name: x-api-key
    type: httpApiKey
    description: >
      Your Prism API key. You can get one for free in the [Prism
      Dashboard](https://dashboard.prismapi.io).

      You must include it in the `x-api-key` query parameter.
    in: query
    extensions: []

````