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

# Get Prediction Balances

> Fetch on-chain ConditionalTokens (ERC-1155) balances for a wallet's Safe trading account.

<Warning>**Alpha** — This endpoint is part of the Prediction Markets API, currently in early access. May change without notice.</Warning>

### Query Parameters

<ParamField query="wallet" type="string" required>
  The wallet address (EOA). The Safe address is derived automatically.
</ParamField>

<ParamField query="tokenIds" type="string" required>
  Comma-separated list of outcome token IDs to check balances for.
</ParamField>

### Response

<ResponseField name="data" type="object">
  Balance information for the requested outcome tokens.

  <Expandable title="Balances">
    <ResponseField name="safeAddress" type="string">The Safe trading account address.</ResponseField>

    <ResponseField name="balances" type="array">
      Array of token balance objects.

      <Expandable title="Balance">
        <ResponseField name="tokenId" type="string">The ERC-1155 outcome token ID.</ResponseField>
        <ResponseField name="balance" type="number">Token balance (in token units, 6 decimal precision).</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="hostname" type="string">Server node identifier.</ResponseField>
<ResponseField name="took" type="number">Request processing time in milliseconds.</ResponseField>

### Usage Example

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/wallet/pm/balances?wallet=0xYourWallet&tokenIds=71321...,48340..."
```

### Example Response

```json theme={null}
{
  "data": {
    "safeAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "balances": [
      { "tokenId": "71321...", "balance": 5.5 },
      { "tokenId": "48340...", "balance": 0 }
    ]
  },
  "hostname": "node-xyz",
  "took": 42
}
```

<Note>
  Balances are read directly from the ConditionalTokens ERC-1155 contract on Polygon via multicall. A balance of `5.5` means the Safe holds 5.5 outcome tokens (shares). These tokens pay out \$1 each if the outcome wins.
</Note>


## OpenAPI

````yaml GET /2/wallet/pm/balances
openapi: 3.0.0
info:
  version: 1.0.0
  title: Mobula Prediction Markets API
  description: >-
    Documentation of the Mobula Prediction Markets API.


    The PM API is currently served from a dedicated host:
    `pm-api-prod-eu.mobula.io`.

    All endpoints below require an API key (same key as the main Mobula API).


    Parameter names below are the **canonical names enforced by the API

    controllers** (Zod-validated). Following the wrong name (e.g. `?market=...`

    instead of `?platform=...&marketId=...`) returns `HTTP 400`.
servers:
  - url: https://pm-api-prod-eu.mobula.io/api/
    description: PM Production API (requires API key)
security: []
tags:
  - name: V2 - PM Market
    description: Prediction market data — details, prices, order book, trades, OHLCV
  - name: V2 - PM Discovery
    description: Search, trending, categories, live markets
  - name: V2 - PM Wallet
    description: Wallet prediction-market positions, balances, PnL, activity, status
paths:
  /2/wallet/pm/balances:
    get:
      tags:
        - V2 - PM Wallet
      summary: Get Prediction Balances
      description: >
        Fetch on-chain ConditionalTokens (ERC-1155) balances for a wallet's Safe
        trading account.


        Both `wallet` AND `tokenIds` are required — the controller has no
        default token basket.
      parameters:
        - $ref: '#/components/parameters/Wallet'
        - name: tokenIds
          in: query
          required: true
          description: Comma-separated outcome / token IDs (uint256 decimal strings).
          schema:
            type: string
            example: >-
              59855952379545476461266875939089074481171378466995213858930892770855011813551,5904694069529905826680225678119990013628860098514322777023141327768111791078
      responses:
        '200':
          description: Balances
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
components:
  parameters:
    Wallet:
      name: wallet
      in: query
      required: true
      description: >-
        User EOA wallet address. The API resolves the matching Safe trading
        account internally.
      schema:
        type: string
        example: '0x0000000000000000000000000000000000000001'

````