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

# Wallet Positions: batch

> Batch twin: up to 20 wallets per call, response array in input order. Each slot is `{ data, summary, hasMore }`, the body of the single GET for that wallet, or `{ error }` when that wallet failed, so one wallet never fails the others. `minValueUsd`, `includeNative`, `includeStables`, `limit` and `offset` apply to every wallet of the call. Billed per wallet.

`POST /v1/wallet/positions` · **2 per wallet credits**

Batch twin: up to 20 wallets per call, response array in input order. Each slot is `{ data, summary, hasMore }`, the body of the single GET for that wallet, or `{ error }` when that wallet failed, so one wallet never fails the others. `minValueUsd`, `includeNative`, `includeStables`, `limit` and `offset` apply to every wallet of the call. Billed per wallet.

<Note>Each `items[]` entry takes a `wallet` and an optional `chain` (omit it for all EVM chains of a hex address; a base58 address is Solana). A slot's `data`, `summary` and `hasMore` are exactly what `GET /v1/wallet/positions` returns for that wallet with the same options; see that page for the row fields.</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST 'https://api.serialized.xyz/v1/wallet/positions' \\
    -H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \\
    -d '{"items":[{"wallet":"Hasda78TSaT9bjiPxDBvP4GpohFpP3TDTaJEcCYK5kyN","chain":"solana"},{"wallet":"0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09","chain":"evm:8453"}],"limit":1}'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "data": [
      {
        "data": [
          {
            "chain": "solana",
            "address": "A7bdiYdS5GjqGFtxf17ppRHtDKPkkRqbKtR27dxvQXaS",
            "symbol": "ZEC",
            "name": "Zcash",
            "iconUrl": "https://serialized.cloud/token/1dddec38-ed10-4a95-8c28-0f26b679e2cd/icon",
            "kind": "position",
            "decimals": 8,
            "amount": "192.61887279",
            "amountUsd": 204564.0,
            "entryPriceUsd": 1159.37,
            "entryPriceLifetimeUsd": 580.754,
            "currentPriceUsd": 1176.53,
            "marketCapUsd": 117842000.0,
            "exitPriceUsd": 580.396,
            "realizedPnlUsd": 143736.0,
            "unrealizedPnlUsd": -18752.6,
            "totalPnlUsd": 124983.0,
            "boughtTokens": "277623.5582956517",
            "soldTokens": "277216.80506887264",
            "boughtUsd": 161231000.0,
            "soldUsd": 160896000.0,
            "buys": 386285,
            "sells": 386391,
            "firstTradeAt": 1770064351000,
            "lastTradeAt": 1788884202000,
            "holdingSince": null,
            "buyFeesUsd": null,
            "sellFeesUsd": null,
            "totalFeesUsd": null,
            "labels": []
          }
        ],
        "summary": {
          "totalValueUsd": 1106750.0,
          "realizedPnlUsd": 30184600.0,
          "unrealizedPnlUsd": -20955.2,
          "totalPnlUsd": 30163600.0,
          "positions": 24
        },
        "hasMore": true
      },
      {
        "data": [
          {
            "chain": "evm:8453",
            "address": "0x75dba8d0a28c171d4ca98b19c452616f3ee70ac0",
            "symbol": "RV",
            "name": "RV",
            "iconUrl": null,
            "kind": "position",
            "decimals": 18,
            "amount": "8",
            "amountUsd": null,
            "entryPriceUsd": null,
            "entryPriceLifetimeUsd": null,
            "currentPriceUsd": null,
            "marketCapUsd": null,
            "exitPriceUsd": null,
            "realizedPnlUsd": 0,
            "unrealizedPnlUsd": null,
            "totalPnlUsd": 0,
            "boughtTokens": "0",
            "soldTokens": "0",
            "boughtUsd": 0,
            "soldUsd": 0,
            "buys": 0,
            "sells": 0,
            "firstTradeAt": null,
            "lastTradeAt": null,
            "holdingSince": null,
            "buyFeesUsd": null,
            "sellFeesUsd": null,
            "totalFeesUsd": null,
            "labels": []
          }
        ],
        "summary": {
          "totalValueUsd": 0.000228482,
          "realizedPnlUsd": 18.928,
          "unrealizedPnlUsd": 0,
          "totalPnlUsd": 18.928,
          "positions": 2
        },
        "hasMore": true
      }
    ],
    "meta": {
      "asOf": 1788884264787
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml openapi.json POST /v1/wallet/positions
openapi: 3.1.0
info:
  title: Serialized Data API
  description: >-
    On-chain data for trading apps - tokens, candles, token filters. Built on
    our own indexers. 18 EVM chains + Solana, live.
  version: 0.1.0
servers:
  - url: https://demo.serialized.xyz
    description: 'Demo: no key needed, read endpoints, rate-limited per IP'
  - url: https://api.serialized.xyz
    description: 'Production: your API key in the Authorization header'
security:
  - apiKey: []
  - {}
paths:
  /v1/wallet/positions:
    post:
      summary: 'Wallet Positions: batch'
      description: >-
        Batch twin: up to 20 wallets per call, response array in input order.
        Each slot is `{ data, summary, hasMore }`, the body of the single GET
        for that wallet, or `{ error }` when that wallet failed, so one wallet
        never fails the others. `minValueUsd`, `includeNative`,
        `includeStables`, `limit` and `offset` apply to every wallet of the
        call. Billed per wallet.
      operationId: wallet-positions-batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              additionalProperties: false
              type: object
              required:
                - items
              properties:
                items:
                  minItems: 1
                  maxItems: 20
                  type: array
                  items:
                    additionalProperties: false
                    type: object
                    required:
                      - wallet
                    properties:
                      wallet:
                        description: Wallet address (EVM hex or Solana base58)
                        type: string
                      chain:
                        description: Public chain id. Omit for all EVM chains.
                        type: string
                  description: >-
                    `[{ "wallet": "…", "chain": "…" }]` - 1 to 20 wallets, EVM
                    and Solana mixed freely; `chain` optional (omit for all EVM
                    chains).
                minValueUsd:
                  minimum: 0
                  default: 0.05
                  type: number
                  description: Same as the GET, applied to every wallet. Default 0.05.
                  example: 0.05
                  x-default: 0.05
                includeNative:
                  default: false
                  type: boolean
                  description: Same as the GET, applied to every wallet.
                  example: false
                  x-default: false
                includeStables:
                  default: false
                  type: boolean
                  description: Same as the GET, applied to every wallet.
                  example: false
                  x-default: false
                limit:
                  minimum: 1
                  maximum: 500
                  type: integer
                  description: Page size per wallet, 1-500.
                offset:
                  minimum: 0
                  default: 0
                  type: integer
                  description: Rows to skip per wallet. Default 0.
                  example: 0
                  x-default: 0
      responses:
        '200':
          description: Standard `{ data, meta }` envelope.
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header
      description: Your raw API key (not needed on the demo server).

````

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