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

# Get Wallet Summary

> Returns the top-level trading summary for a wallet: total PnL, win rate, averages, counts, ROI buckets, platform tags, and `summary.timing.avgHoldTimeSecs`. Use `/positions` when you need per-token detail.

## SDK Example

<CodeGroup>
  ```typescript SDK
  import { Client } from '@solana-tracker/data-api';

  const client = new Client({ apiKey: 'YOUR_API_KEY' });

  const data = await client.getPnlV2WalletOverview('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');

  ```
</CodeGroup>


## OpenAPI

````yaml /data-api/pnl-v2/openapi.json get /v2/pnl/wallets/{wallet}
openapi: 3.1.0
info:
  title: SolanaTracker PnL V2 API
  description: >-
    Profit-and-loss tracking for Solana wallets. Provides wallet PnL summaries,
    token-level positions, leaderboards, KOL rankings, risk analysis, and
    historical performance data. All monetary values are in USD. All timestamps
    are Unix milliseconds unless noted otherwise.
  version: 2.0.0
servers:
  - url: https://data.solanatracker.io
    description: Production
security:
  - apiKey: []
tags:
  - name: Leaderboard
    description: Top traders, whales, and KOL rankings
  - name: Token
    description: Per-token trader and holder data
  - name: Wallet
    description: Wallet-level PnL, positions, history, and analysis
  - name: Batch
    description: Bulk wallet summaries and position lookups
paths:
  /v2/pnl/wallets/{wallet}:
    get:
      tags:
        - Wallet
      summary: Get Wallet Summary
      description: >-
        Returns the top-level trading summary for a wallet: total PnL, win rate,
        averages, counts, ROI buckets, platform tags, and
        `summary.timing.avgHoldTimeSecs`. Use `/positions` when you need
        per-token detail.
      operationId: getWalletOverview
      parameters:
        - $ref: '#/components/parameters/walletPath'
        - $ref: '#/components/parameters/pnlMode'
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  wallet:
                    type: string
                  pnlMode:
                    type: string
                    enum:
                      - strict
                      - adjusted
                      - raw
                  identity:
                    $ref: '#/components/schemas/Identity'
                  summary:
                    $ref: '#/components/schemas/Summary'
                  analysis:
                    type: object
                    description: Win/loss analysis computed across all closed positions.
                    properties:
                      winRate:
                        type:
                          - number
                          - 'null'
                        description: Percentage of closed positions that were profitable.
                      avgPnlPerAsset:
                        type:
                          - number
                          - 'null'
                        description: Average PnL per closed token.
                      avgBuyValue:
                        type:
                          - number
                          - 'null'
                        description: Average USD invested per token.
                      tokens:
                        type: object
                        properties:
                          closed:
                            type: integer
                          winning:
                            type: integer
                          losing:
                            type: integer
                      distribution:
                        type: array
                        description: ROI distribution buckets for closed positions.
                        items:
                          type: object
                          properties:
                            range:
                              type: string
                              description: >-
                                ROI range label (e.g. '>500%', '100%-500%',
                                '0%-100%', '-50%-0%', '<-50%').
                            count:
                              type: integer
                            rate:
                              type:
                                - number
                                - 'null'
                              description: Percentage of closed positions in this bucket.
                  stats:
                    type: object
                    properties:
                      total:
                        type: integer
                        description: Total positions (all tokens ever traded).
                      holding:
                        type: integer
                        description: Positions currently held.
                      sold:
                        type: integer
                        description: Fully closed positions.
                      profitable:
                        type: integer
                      losing:
                        type: integer
                  tags:
                    type: object
                    description: Metadata tags about the wallet.
                    properties:
                      isArbitrage:
                        type: boolean
                        description: Whether the wallet is flagged as an arbitrage bot.
                      platforms:
                        type: array
                        items:
                          type: string
                        description: >-
                          Trading platforms/frontends the wallet uses (e.g.
                          axiom, photon, bloom).
                  updatedAt:
                    type:
                      - string
                      - 'null'
                    format: date-time
              example:
                wallet: CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o
                pnlMode: strict
                identity:
                  name: Cented
                  twitter: '@Cented7'
                  avatar: >-
                    https://kol-avatar.solanatracker.io/CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o
                  platforms:
                    - axiom
                    - bloom
                  type: kol
                  tags:
                    - kol
                    - axiom
                    - bloom
                summary:
                  pnl:
                    realized: 10705447.32
                    unrealized: 1395.74
                    total: 10706843.06
                  invested: 49779099.94
                  proceeds: 60484547.26
                  openPositions:
                    cost: 5118.14
                    value: 7855.98
                  counts:
                    buys: 196215
                    sells: 138588
                    trades: 334803
                    tokensTraded: 78676
                    tokensHeldEver: 78553
                  averages:
                    buy: 259.77
                    sell: 436.43
                  roi: 21.51
                  timing:
                    firstTrade: 1738348560665
                    lastTrade: 1777057718629
                    avgHoldTimeSecs: 20391
                analysis:
                  winRate: 61.17
                  avgPnlPerAsset: 135.12
                  avgBuyValue: 648.88
                  tokens:
                    closed: 78518
                    winning: 48029
                    losing: 30375
                  distribution:
                    - range: '>500%'
                      count: 145
                      rate: 0.18
                    - range: 200-500%
                      count: 1068
                      rate: 1.36
                    - range: 50-200%
                      count: 10662
                      rate: 13.58
                    - range: 0-50%
                      count: 36273
                      rate: 46.2
                    - range: '-50-0%'
                      count: 29252
                      rate: 37.26
                    - range: <-50%
                      count: 1118
                      rate: 1.42
                stats:
                  total: 78676
                  holding: 100
                  sold: 78424
                  profitable: 48041
                  losing: 30370
                tags:
                  isArbitrage: false
                  platforms:
                    - axiom-flash
                    - bloom
                updatedAt: '2026-04-24T19:08:38.649Z'
        '400':
          description: Invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: typescript
          label: SDK
          source: >
            import { Client } from '@solana-tracker/data-api';


            const client = new Client({ apiKey: 'YOUR_API_KEY' });


            const data = await
            client.getPnlV2WalletOverview('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');
      x-code-samples:
        - lang: typescript
          label: SDK
          source: >
            import { Client } from '@solana-tracker/data-api';


            const client = new Client({ apiKey: 'YOUR_API_KEY' });


            const data = await
            client.getPnlV2WalletOverview('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');
components:
  parameters:
    walletPath:
      name: wallet
      in: path
      required: true
      description: Solana wallet address (base58, 32-44 characters).
      schema:
        type: string
        pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
    pnlMode:
      name: pnlMode
      in: query
      description: >-
        How to treat positions flagged by the invalid PnL heuristic. `strict`
        zeros them out, `adjusted` caps them to a cost-basis-aware value, and
        `raw` leaves realized PnL untouched. Aliases `pnl_mode` and `mode` are
        also accepted by the API.
      schema:
        type: string
        enum:
          - strict
          - adjusted
          - raw
        default: strict
  schemas:
    Identity:
      type: object
      description: >-
        Unified wallet identity. Only fields with known values are returned; a
        wallet can carry multiple tags at once.
      properties:
        name:
          type:
            - string
            - 'null'
          description: Display name, if known.
        twitter:
          type:
            - string
            - 'null'
          description: Twitter/X handle, if known.
        avatar:
          type:
            - string
            - 'null'
          format: uri
          description: Avatar image URL.
        type:
          type:
            - string
            - 'null'
          description: >-
            Primary label for single-badge UIs, such as `kol`, `developer`,
            `pool`, `bot`, `hacker`, `spam_dusting`, `exchange`, or a platform
            tag.
        tags:
          type: array
          items:
            type: string
          description: >-
            All resolved labels for the wallet, including KOL, platform, pool,
            developer, bot, arbitrage, hacker, spam-dusting, or exchange tags.
        platforms:
          type: array
          items:
            type: string
          description: >-
            Normalized trading frontend tags such as `axiom`, `bloom`, or
            `photon`. Query filters also accept `axiom-flash`, which is
            normalized to `axiom` in identity responses.
        bot:
          type: object
          properties:
            name:
              type:
                - string
                - 'null'
            avatar:
              type:
                - string
                - 'null'
              format: uri
        pool:
          type: object
          properties:
            program:
              type:
                - string
                - 'null'
            poolAddress:
              type:
                - string
                - 'null'
        developer:
          type: object
          properties:
            token:
              type:
                - string
                - 'null'
            via:
              type: array
              items:
                type: string
            pools:
              type: array
              items:
                type: string
            creationTx:
              type:
                - string
                - 'null'
            createdAt:
              type:
                - integer
                - 'null'
              description: Unix timestamp in seconds.
        hacker:
          type: object
          description: Curated exploit/scam wallet label, when known.
          properties:
            label:
              type:
                - string
                - 'null'
        spamDusting:
          type: object
          description: Curated spam-dusting wallet label, when known.
          properties:
            label:
              type:
                - string
                - 'null'
        exchange:
          type: object
          description: Known centralized exchange hot wallet label, when known.
          properties:
            name:
              type:
                - string
                - 'null'
    Summary:
      type: object
      description: Aggregated wallet-level PnL summary across all positions.
      properties:
        pnl:
          $ref: '#/components/schemas/PnlBlock'
        invested:
          type:
            - number
            - 'null'
          description: Total USD spent buying tokens.
        proceeds:
          type:
            - number
            - 'null'
          description: Total USD received from selling tokens.
        openPositions:
          type: object
          properties:
            cost:
              type:
                - number
                - 'null'
              description: Total cost basis of currently-held positions.
            value:
              type:
                - number
                - 'null'
              description: Current market value of held positions.
        counts:
          type: object
          properties:
            buys:
              type: integer
            sells:
              type: integer
            trades:
              type: integer
              description: Total number of buy + sell transactions.
            tokensTraded:
              type: integer
              description: Number of distinct tokens traded.
            tokensHeldEver:
              type: integer
              description: Total tokens ever held (including sold).
        averages:
          type: object
          properties:
            buy:
              type:
                - number
                - 'null'
              description: Average USD per buy transaction.
            sell:
              type:
                - number
                - 'null'
              description: Average USD per sell transaction.
        roi:
          type:
            - number
            - 'null'
          description: 'Return on investment as a percentage: (totalPnl / invested) * 100.'
        timing:
          type: object
          properties:
            firstTrade:
              type:
                - integer
                - 'null'
              description: Unix ms timestamp of the wallet's first trade.
            lastTrade:
              type:
                - integer
                - 'null'
              description: Unix ms timestamp of the wallet's most recent trade.
            avgHoldTimeSecs:
              type:
                - integer
                - 'null'
              description: >-
                Average hold duration across all positions with a first buy, in
                seconds. Uses the same per-position formula as
                `timing.holdTimeSecs` on positions and traders (first buy to
                last sell for closed bags, live duration for open bags). Not the
                same as `/chart` → `summary.averages.holdTimeSecs`, which is
                day-weighted from daily snapshots.
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message.
      required:
        - error
    PnlBlock:
      type: object
      description: Realized, unrealized, and total profit/loss in USD.
      properties:
        realized:
          type:
            - number
            - 'null'
          description: Profit/loss from closed trades (tokens fully or partially sold).
        realizedRaw:
          type:
            - number
            - 'null'
          description: >-
            Unfiltered realized PnL before `pnlMode` adjustments. Present on
            position rows and leaderboard period stats when available.
        unrealized:
          type:
            - number
            - 'null'
          description: >-
            Paper profit/loss on tokens still held, based on current market
            price.
        total:
          type:
            - number
            - 'null'
          description: Sum of realized + unrealized PnL.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API Key for authentication

````