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

# Wallet summary

> 订阅整钱包 PnL 汇总：含总盈亏、笔数、均值、未平仓合计、ROI 与时间等聚合指标。



## AsyncAPI

````yaml cn/datastream/pnl.json walletSummary
id: walletSummary
title: Wallet summary
description: 订阅整钱包 PnL 汇总：含总盈亏、笔数、均值、未平仓合计、ROI 与时间等聚合指标。
servers:
  - id: production
    protocol: wss
    host: datastream.solanatracker.io
    bindings: []
    variables:
      - id: apiKey
        description: Data API 订阅中的唯一 API 密钥
        allowedValues: []
        examples: []
address: /
parameters: []
bindings: []
operations:
  - &ref_1
    id: subscribeToPnlWalletSummary
    title: Subscribe to pnl wallet summary
    description: Subscribe to wallet PnL summary
    type: receive
    messages:
      - &ref_5
        id: joinPnlWalletSummary
        payload:
          - name: joinPnlWalletSummary
            description: Subscribe to PnL Portfolio Summary
            type: object
            properties:
              - name: type
                type: string
                description: join
                required: true
              - name: room
                type: string
                description: PnL wallet summary room (pnl:{walletAddress}:summary)
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - room
          properties:
            type:
              type: string
              const: join
              default: join
              x-parser-schema-id: <anonymous-schema-66>
            room:
              type: string
              pattern: ^pnl:[A-Za-z0-9]{32,44}:summary$
              description: PnL wallet summary room (pnl:{walletAddress}:summary)
              default: pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary
              x-parser-schema-id: <anonymous-schema-67>
          examples:
            - type: join
              room: pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary
          x-parser-schema-id: <anonymous-schema-65>
        title: Join pnl wallet summary
        description: Subscribe to PnL Portfolio Summary
        example: |-
          {
            "type": "join",
            "room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: joinPnlWalletSummary
          - id: x-parser-message-name
            value: joinPnlWalletSummary
    bindings: []
    extensions: &ref_0
      - id: x-displayName
        value: PnL Portfolio Summary
      - id: x-codeSamples
        value: &ref_9
          - lang: typescript
            label: SDK
            source: >
              import { Datastream } from '@solana-tracker/data-api';


              const dataStream = new Datastream({
                wsUrl: 'wss://datastream.solanatracker.io/YOUR_API_KEY',
              });


              await dataStream.connect();


              const sub =
              dataStream.subscribe.pnl.summary('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF').on((data)
              => {
                console.log(data);
              });


              // sub.unsubscribe();
      - id: x-parser-unique-object-id
        value: walletSummary
  - &ref_3
    id: receivePnlWalletSummaryConfirmation
    title: Receive pnl wallet summary confirmation
    description: Receive wallet PnL summary confirmation
    type: send
    messages:
      - &ref_7
        id: pnlWalletSummaryJoined
        payload:
          - name: pnlWalletSummaryJoined
            description: Wallet PnL summary subscription confirmed
            type: object
            properties:
              - name: type
                type: string
                description: joined
                required: false
              - name: room
                type: string
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: joined
              x-parser-schema-id: <anonymous-schema-69>
            room:
              type: string
              x-parser-schema-id: <anonymous-schema-70>
          examples:
            - type: joined
              room: pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary
          x-parser-schema-id: <anonymous-schema-68>
        title: Pnl wallet summary joined
        description: Wallet PnL summary subscription confirmed
        example: |-
          {
            "type": "joined",
            "room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: pnlWalletSummaryJoined
          - id: x-parser-message-name
            value: pnlWalletSummaryJoined
    bindings: []
    extensions: *ref_0
  - &ref_4
    id: receivePnlWalletUpdate
    title: Receive pnl wallet update
    description: Receive wallet PnL summary update
    type: send
    messages:
      - &ref_8
        id: pnlWalletUpdateMessage
        payload:
          - name: pnlWalletUpdateMessage
            description: Wallet PnL summary update
            type: object
            properties:
              - name: type
                type: string
                description: message
                required: false
              - name: room
                type: string
                description: The PnL wallet summary room identifier (pnl:{wallet}:summary)
                required: false
              - name: data
                type: object
                description: Aggregated wallet-level PnL summary for the summary room.
                required: false
                properties:
                  - name: averages
                    type: object
                    required: false
                    properties:
                      - name: buy
                        type: number
                        description: Average USD amount per buy transaction.
                        required: false
                      - name: sell
                        type: number
                        description: Average USD amount per sell transaction.
                        required: false
                  - name: counts
                    type: object
                    required: false
                    properties:
                      - name: buys
                        type: integer
                        required: false
                      - name: sells
                        type: integer
                        required: false
                      - name: tokensHeldEver
                        type: integer
                        required: false
                      - name: tokensTraded
                        type: integer
                        required: false
                      - name: trades
                        type: integer
                        required: false
                  - name: invested
                    type: number
                    description: Total USD spent buying tokens.
                    required: false
                  - name: openPositions
                    type: object
                    required: false
                    properties:
                      - name: cost
                        type: number
                        description: Cost basis of currently open positions.
                        required: false
                      - name: value
                        type: number
                        description: Current USD value of open positions.
                        required: false
                  - name: pnl
                    type: object
                    required: false
                    properties:
                      - name: realized
                        type: number
                        required: false
                      - name: total
                        type: number
                        required: false
                      - name: unrealized
                        type: number
                        required: false
                  - name: proceeds
                    type: number
                    description: Total USD proceeds from sells.
                    required: false
                  - name: roi
                    type: number
                    description: Wallet ROI percentage.
                    required: false
                  - name: timing
                    type: object
                    required: false
                    properties:
                      - name: firstTrade
                        type: integer
                        description: Unix timestamp (ms) of the first indexed trade.
                        required: false
                      - name: lastTrade
                        type: integer
                        description: Unix timestamp (ms) of the most recent indexed trade.
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: message
              x-parser-schema-id: <anonymous-schema-72>
            room:
              type: string
              description: The PnL wallet summary room identifier (pnl:{wallet}:summary)
              x-parser-schema-id: <anonymous-schema-73>
            data:
              type: object
              description: Aggregated wallet-level PnL summary for the summary room.
              properties:
                averages:
                  type: object
                  properties:
                    buy:
                      type: number
                      description: Average USD amount per buy transaction.
                      x-parser-schema-id: <anonymous-schema-75>
                    sell:
                      type: number
                      description: Average USD amount per sell transaction.
                      x-parser-schema-id: <anonymous-schema-76>
                  x-parser-schema-id: <anonymous-schema-74>
                counts:
                  type: object
                  properties:
                    buys:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-78>
                    sells:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-79>
                    tokensHeldEver:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-80>
                    tokensTraded:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-81>
                    trades:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-82>
                  x-parser-schema-id: <anonymous-schema-77>
                invested:
                  type: number
                  description: Total USD spent buying tokens.
                  x-parser-schema-id: <anonymous-schema-83>
                openPositions:
                  type: object
                  properties:
                    cost:
                      type: number
                      description: Cost basis of currently open positions.
                      x-parser-schema-id: <anonymous-schema-85>
                    value:
                      type: number
                      description: Current USD value of open positions.
                      x-parser-schema-id: <anonymous-schema-86>
                  x-parser-schema-id: <anonymous-schema-84>
                pnl:
                  type: object
                  properties:
                    realized:
                      type: number
                      x-parser-schema-id: <anonymous-schema-88>
                    total:
                      type: number
                      x-parser-schema-id: <anonymous-schema-89>
                    unrealized:
                      type: number
                      x-parser-schema-id: <anonymous-schema-90>
                  x-parser-schema-id: <anonymous-schema-87>
                proceeds:
                  type: number
                  description: Total USD proceeds from sells.
                  x-parser-schema-id: <anonymous-schema-91>
                roi:
                  type: number
                  description: Wallet ROI percentage.
                  x-parser-schema-id: <anonymous-schema-92>
                timing:
                  type: object
                  properties:
                    firstTrade:
                      type: integer
                      description: Unix timestamp (ms) of the first indexed trade.
                      x-parser-schema-id: <anonymous-schema-94>
                    lastTrade:
                      type: integer
                      description: Unix timestamp (ms) of the most recent indexed trade.
                      x-parser-schema-id: <anonymous-schema-95>
                  x-parser-schema-id: <anonymous-schema-93>
              x-parser-schema-id: WalletUpdate
          examples:
            - type: message
              data:
                averages:
                  buy: 1.1751933473135445
                  sell: 1.7625162156883138
                counts:
                  buys: 1664
                  sells: 745
                  tokensHeldEver: 842
                  tokensTraded: 862
                  trades: 2409
                invested: 708.3246017180338
                openPositions:
                  cost: 962.9218710198314
                  value: 37.196319618271204
                pnl:
                  realized: 604.7499789697601
                  total: -421.18843262884593
                  unrealized: -1025.938411598606
                proceeds: 1313.0745806877937
                roi: -59.46262936614906
                timing:
                  firstTrade: 1704067810000
                  lastTrade: 1778966213113
              room: pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary
          x-parser-schema-id: <anonymous-schema-71>
        title: Pnl wallet update message
        description: Wallet PnL summary update
        example: |-
          {
            "type": "message",
            "data": {
              "averages": {
                "buy": 1.1751933473135445,
                "sell": 1.7625162156883138
              },
              "counts": {
                "buys": 1664,
                "sells": 745,
                "tokensHeldEver": 842,
                "tokensTraded": 862,
                "trades": 2409
              },
              "invested": 708.3246017180338,
              "openPositions": {
                "cost": 962.9218710198314,
                "value": 37.196319618271204
              },
              "pnl": {
                "realized": 604.7499789697601,
                "total": -421.18843262884593,
                "unrealized": -1025.938411598606
              },
              "proceeds": 1313.0745806877937,
              "roi": -59.46262936614906,
              "timing": {
                "firstTrade": 1704067810000,
                "lastTrade": 1778966213113
              }
            },
            "room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: pnlWalletUpdateMessage
          - id: x-parser-message-name
            value: pnlWalletUpdateMessage
    bindings: []
    extensions: *ref_0
  - &ref_2
    id: unsubscribeFromPnlWalletSummary
    title: Unsubscribe from pnl wallet summary
    description: Unsubscribe from wallet PnL summary
    type: receive
    messages:
      - &ref_6
        id: leavePnlWalletSummary
        payload:
          - name: leavePnlWalletSummary
            description: Unsubscribe from wallet PnL summary
            type: object
            properties:
              - name: type
                type: string
                description: leave
                required: true
              - name: room
                type: string
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - room
          properties:
            type:
              type: string
              const: leave
              default: leave
              x-parser-schema-id: <anonymous-schema-97>
            room:
              type: string
              default: pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary
              x-parser-schema-id: <anonymous-schema-98>
          examples:
            - type: leave
              room: pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary
          x-parser-schema-id: <anonymous-schema-96>
        title: Leave pnl wallet summary
        description: Unsubscribe from wallet PnL summary
        example: |-
          {
            "type": "leave",
            "room": "pnl:DJqkHSmx9XosFpNqdi2DevtNgaf52oow4pFpJECv6D61:summary"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: leavePnlWalletSummary
          - id: x-parser-message-name
            value: leavePnlWalletSummary
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
  - *ref_2
receiveOperations:
  - *ref_3
  - *ref_4
sendMessages:
  - *ref_5
  - *ref_6
receiveMessages:
  - *ref_7
  - *ref_8
extensions:
  - id: x-displayName
    value: PnL Portfolio Summary
  - id: x-codeSamples
    value: *ref_9
  - id: x-parser-unique-object-id
    value: walletSummary
securitySchemes:
  - id: apiKeyAuth
    name: apiKey
    type: httpApiKey
    description: >-
      API key for authentication. Include your Datastream key in the connection
      URL: wss://datastream.solanatracker.io/{DATASTREAM_KEY}
    in: header
    extensions: []

````