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

# Batch native wallet PnL summaries and identities

> 1–100 unique Solana wallets, in input order. Native ledger projections first, then the retained observed-swap index with a shared 10,000-event / 4 MiB read budget, four concurrent index reads, a shared 64-mint price lookup and a 1.5-second PnL deadline. No wallet registration, history backfill or watch promotion. Unknown basis stays null; complete=false. Observed coverage excludes fees, transfers and pre-window inventory; truncation is explicit. Identities use wallet-scoped native labels, reviewed profiles and platform evidence independently of any mint. Reviewed classifications require method, transaction evidence and confidence >=9500 basis points. SNS is cache-only; tokenized/subdomains remain unknown. Native service admission: 2 concurrent/IP and 60 starts/minute/IP, shared with liquidity reads. The BFF forwards only its verified ingress caller with a service bearer; caller claims without that bearer do not create independent buckets. Admission failure closes the route. No account or signing authority.



## OpenAPI

````yaml https://www.oceanx.trade/api/v1/openapi.json post /api/v1/wallets/summary
openapi: 3.1.0
info:
  title: OceanX Developer API
  version: 1.0.0
  description: >-
    Public API for the OceanX trading platform. Currently in beta and free to
    use while in beta.


    This spec covers the **spot quote** domain. The wallet **tracker** and
    **perps** domains are documented at https://docs.oceanx.trade/api/overview
    and are not yet described here.
  contact:
    url: https://docs.oceanx.trade
  termsOfService: https://www.oceanx.trade/legal/terms
  license:
    name: Proprietary
    url: https://www.oceanx.trade/legal/terms
servers:
  - url: https://www.oceanx.trade
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Router
    description: >-
      Read-only Raptor route quotes and public Solana transaction status. Build
      and execution remain separately gated.
  - name: Market Data
    description: Read-only OceanX market context sourced and cached by VM producers.
  - name: Spot
    description: >-
      Executable Solana swap quotes off OceanX's own router, and the exit
      checker that reports whether a whole position can be sold.
  - name: Callouts
    description: >-
      Public token callouts — user-posted token calls with live click/volume
      attribution stats. Read-only.
  - name: Copy Trading
    description: Key-owner follow, fill and PnL reads; no execution authority.
  - name: Price Alerts
    description: Key-owner alert management through the existing evaluator; no webhooks.
paths:
  /api/v1/wallets/summary:
    post:
      tags:
        - Market Data
      summary: Batch native wallet PnL summaries and identities
      description: >-
        1–100 unique Solana wallets, in input order. Native ledger projections
        first, then the retained observed-swap index with a shared 10,000-event
        / 4 MiB read budget, four concurrent index reads, a shared 64-mint price
        lookup and a 1.5-second PnL deadline. No wallet registration, history
        backfill or watch promotion. Unknown basis stays null; complete=false.
        Observed coverage excludes fees, transfers and pre-window inventory;
        truncation is explicit. Identities use wallet-scoped native labels,
        reviewed profiles and platform evidence independently of any mint.
        Reviewed classifications require method, transaction evidence and
        confidence >=9500 basis points. SNS is cache-only; tokenized/subdomains
        remain unknown. Native service admission: 2 concurrent/IP and 60
        starts/minute/IP, shared with liquidity reads. The BFF forwards only its
        verified ingress caller with a service bearer; caller claims without
        that bearer do not create independent buckets. Admission failure closes
        the route. No account or signing authority.
      operationId: walletSummaryBatch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - wallets
              properties:
                wallets:
                  type: array
                  minItems: 1
                  maxItems: 100
                  uniqueItems: true
                  items:
                    type: string
                    pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
      responses:
        '200':
          description: >-
            Partial when identity or PnL is present; unavailable only when both
            are absent. Missing PnL remains null even when an identity is known.
          content:
            application/json:
              schema:
                type: object
                properties:
                  source:
                    const: local
                  data:
                    type: object
                    properties:
                      complete:
                        const: false
                      wallets:
                        type: array
                        maxItems: 100
                        items:
                          type: object
                          properties:
                            wallet:
                              type: string
                            identity:
                              type:
                                - object
                                - 'null'
                              properties:
                                label:
                                  type:
                                    - string
                                    - 'null'
                                image:
                                  type:
                                    - string
                                    - 'null'
                                twitter:
                                  type:
                                    - string
                                    - 'null'
                                type:
                                  type:
                                    - string
                                    - 'null'
                                flags:
                                  type: array
                                  maxItems: 40
                                  items:
                                    type: string
                                source:
                                  const: oceanx_wallet_labels
                                asOf:
                                  type:
                                    - integer
                                    - 'null'
                                  minimum: 0
                                profileSource:
                                  enum:
                                    - wallet_label_reviews
                                    - null
                                profileAsOf:
                                  type:
                                    - integer
                                    - 'null'
                                  minimum: 0
                                sns:
                                  type:
                                    - object
                                    - 'null'
                                  properties:
                                    domain:
                                      type: string
                                      pattern: ^[a-z0-9-]{1,63}\.sol$
                                    nameAccount:
                                      type: string
                                    source:
                                      const: oceanx_rpc_sns
                                    method:
                                      const: primary-direct-owner-v1
                                    observedAtMs:
                                      type: integer
                                platformEvidence:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Observed fee-account association; confidence
                                    is a classifier score, not measured
                                    precision.
                                  properties:
                                    label:
                                      type: string
                                    method:
                                      const: native-terminal-fee-account-delta-v1
                                    evidenceTx:
                                      type: string
                                      description: Native Solana transaction signature.
                                    confidence:
                                      type: integer
                                      minimum: 9500
                                      maximum: 10000
                                    observedAtMs:
                                      type: integer
                                      minimum: 1
                                classifications:
                                  type: array
                                  maxItems: 3
                                  items:
                                    type: object
                                    properties:
                                      label:
                                        enum:
                                          - exchange
                                          - hacker
                                          - spam_dusting
                                      method:
                                        type: string
                                        maxLength: 96
                                      evidenceTx:
                                        type: string
                                        description: Native Solana transaction signature.
                                      confidence:
                                        type: integer
                                        minimum: 9500
                                        maximum: 10000
                                      observedAtMs:
                                        type: integer
                                        minimum: 1
                                      source:
                                        const: wallet_label_reviews
                                      name:
                                        type:
                                          - string
                                          - 'null'
                            summary:
                              type:
                                - object
                                - 'null'
                              description: >-
                                Native ledger USD PnL, then bounded
                                observed-swap index PnL. Missing basis stays
                                null. Observed coverage excludes fees, transfers
                                and pre-window inventory.
                              properties:
                                wallet:
                                  type: object
                                  properties:
                                    realized:
                                      type:
                                        - number
                                        - 'null'
                                    unrealized:
                                      type:
                                        - number
                                        - 'null'
                                    total:
                                      type:
                                        - number
                                        - 'null'
                                token:
                                  type:
                                    - object
                                    - 'null'
                                  properties:
                                    realized:
                                      type:
                                        - number
                                        - 'null'
                                    unrealized:
                                      type:
                                        - number
                                        - 'null'
                                    total:
                                      type:
                                        - number
                                        - 'null'
                                    costBasis:
                                      type: 'null'
                                    basisCoverage:
                                      type:
                                        - string
                                        - 'null'
                                    observedAtMs:
                                      type:
                                        - integer
                                        - 'null'
                                      minimum: 0
                                source:
                                  enum:
                                    - >-
                                      portfolio-ledger:fee-inclusive-weighted-average/v1
                                    - wallet-trade-index:observed-average-cost
                                complete:
                                  const: false
                                pnlMode:
                                  const: unknown-basis-null
                                asOf:
                                  type:
                                    - integer
                                    - 'null'
                                  minimum: 0
                                coverage:
                                  type:
                                    - string
                                    - 'null'
                                historyCoverage:
                                  type: object
                                  description: >-
                                    Observed fallback coverage by chain,
                                    including basis, valuation, exclusions and
                                    index limits.
                                  additionalProperties: true
                                index:
                                  type: object
                                  description: >-
                                    Observed index status, covered window, event
                                    count/cap, truncation and backfill evidence.
                                  additionalProperties: true
                            status:
                              enum:
                                - partial
                                - unavailable
        '400':
          description: Failed validation before reaching the engine.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, malformed or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            The key is valid but lacks the required scope
            (`insufficient_scope`), or its account no longer has product access
            (`product_access_revoked`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Request exceeds 8 KiB.
        '429':
          description: Rate limited. Honour `Retry-After`.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed per window.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix seconds when the window resets.
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            The routing engine or rate-limit storage is unavailable. Retry with
            backoff; no upstream work was admitted when the limiter failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        requestId:
          type: string
          description: Request identifier on new token endpoints.
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Stable machine-readable code. Branch on this, not the message.
              example: no_route
            message:
              type: string
              description: Human-readable detail. May change.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An OceanX API key, created in the app under Settings → Developer API.
        Send it as `Authorization: Bearer ox_live_…`. Required scopes are
        operation-specific: market reads use md.read, tracker uses tracker.read,
        copy reads use copy.read, and alert operations use alerts.read or
        alerts.write. New scopes require explicit selection and grant no trading
        authority. Existing perps operations retain their documented scopes.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.