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

# Get projected user balances

> Read a current proposed, voted, or finalized balance snapshot.

**userId** `string` *required*

Unsigned decimal Kuru user ID.

**state** `string` (default: finalized)

`proposed`, `voted`, or `finalized`. Short forms `p`, `v`, and `f` are also
accepted.

**feedEpoch** `integer` *required*

Epoch namespace for `globalSeq` and `globalUserSeq`.

**data** `array` *required*

Up to 2,000 balances in immutable snapshot order.

**tokenAddress** `string` *required*

Lowercase token contract address.

**total** `string` *required*

Checked sum of available and reserved native token units.

**available** `string` *required*

Free native token units.

**reserved** `string` *required*

Reserved native token units.

**state** `string` *required*

Requested projection view.

**servedView** `string` *required*

Projection view that served the request.

**globalSeq** `integer | null` *required*

Global sequence represented by the projection snapshot.

**globalUserSeq** `integer | null` *required*

User sequence represented by the projection snapshot.

**truncated** `boolean` *required*

`true` when additional balances were omitted.

This gateway route does not accept a `tokenAddress` filter.

```json 200 theme={null}
{
  "feedEpoch": 7,
  "data": [{
    "tokenAddress": "0xb01dc575a7ef75e58a05d2bde73ab79f8e7dd0be",
    "total": "1200250000",
    "available": "1100250000",
    "reserved": "100000000"
  }],
  "state": "finalized",
  "servedView": "finalized",
  "globalSeq": 124367,
  "globalUserSeq": 2951,
  "truncated": false
}
```

For token filtering or a finalized epoch-qualified WebSocket bootstrap, use
the [Data Source user-balances route](https://docs.kuru.io/api/data-source/reference/user-balances.md).


## OpenAPI

````yaml api/exchange/openapi.yaml GET /api/v1/users/{userId}/balances
openapi: 3.1.0
info:
  title: Kuru Exchange Gateway API
  version: 1.0.0
servers:
  - url: https://gateway.mainnet.kuru.io
    description: Monad mainnet (default)
  - url: https://gateway.testnet.kuru.io
    description: Monad testnet
security: []
paths:
  /api/v1/users/{userId}/balances:
    get:
      summary: Get user balances
      operationId: getUserBalances
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: integer
        - name: state
          in: query
          schema:
            type: string
            default: finalized
      responses:
        '200':
          description: Projected balances

````

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