---
title: "Account positions across chains"
method: GET
path: "/v3/accounts/{address}/positions"
tags: ["Accounts"]
---

# Account positions across chains

`GET /v3/accounts/{address}/positions`

Returns paginated account positions across the selected chain scope.
Uses `meta.hasMore` for pagination continuation on the hot path rather than an exact `meta.total`.
EVK debt and controller nulls mean unknown, not zero. A failed partial
live refresh retains a coherent last-known snapshot and its timestamp
when one exists; otherwise the unknown fields remain null.

## Path parameters

- `address` string, required

## Query parameters

- `chainId` string
- `offset` integer
- `limit` integer
- `forceFresh` boolean

## Response `200`

Account positions

- object
  - `data` AccountPosition[]
    - `chainId` integer
    - `account` string
    - `vault` string
    - `vaultType` 'evk' | 'earn' | 'securitize'
    - `asset` string, nullable
    - `shares` string, nullable — Raw vault share amount as a bigint string.
    - `assets` string, nullable — Raw underlying asset amount as a bigint string.
    - `borrowed` string, nullable — Raw borrowed asset amount as a bigint string. `"0"` is a successful zero-debt read. `null` means EVK debt is currently unknown; it is not a zero balance. Earn and Securitize positions use `"0"` because EVK debt is not applicable to those vault types.
    - `assetsValue` string, nullable — Contract-derived account-liquidity asset value, raw 18-decimal bigint string.
    - `debtValue` string, nullable — Contract-derived account-liquidity debt value, raw 18-decimal bigint string. `null` means the EVK debt read is unknown, not zero.
    - `isCollateral` boolean, nullable
    - `balanceForwarderEnabled` boolean, nullable
    - `isController` boolean, nullable — Explicit EVC controller status when AccountLens provides it. `null` means controller status is unknown; a zero debt amount does not imply `false`. The field is non-applicable for Earn and Securitize positions.
    - `liquidity` AccountPositionLiquidity, nullable
      - `vaultAddress` string
      - `unitOfAccount` string
      - `daysToLiquidation` union
        - integer
        - 'Infinity' | 'MoreThanAYear'
      - `liabilityValue` AccountLiquidityValue — Contract-derived account-liquidity value in unit-of-account terms; each field is a raw 18-decimal bigint string.
        - `borrowing` string — Borrowing value, raw 18-decimal bigint string.
        - `liquidation` string — Liquidation value, raw 18-decimal bigint string.
        - `oracleMid` string — Oracle midpoint value, raw 18-decimal bigint string.
      - `totalCollateralValue` AccountLiquidityValue — Contract-derived account-liquidity value in unit-of-account terms; each field is a raw 18-decimal bigint string.
        - `borrowing` string — Borrowing value, raw 18-decimal bigint string.
        - `liquidation` string — Liquidation value, raw 18-decimal bigint string.
        - `oracleMid` string — Oracle midpoint value, raw 18-decimal bigint string.
      - `collaterals` object[]
        - `address` string
        - `value` AccountLiquidityValue — Contract-derived account-liquidity value in unit-of-account terms; each field is a raw 18-decimal bigint string.
          - `borrowing` string — Borrowing value, raw 18-decimal bigint string.
          - `liquidation` string — Liquidation value, raw 18-decimal bigint string.
          - `oracleMid` string — Oracle midpoint value, raw 18-decimal bigint string.
        - `marketPriceUsd` number — Market USD price number for the collateral asset.
        - `valueUsd` number — Market USD value number for this collateral.
      - `liabilityValueUsd` number — Market USD liability value number.
      - `totalCollateralValueUsd` number — Market USD collateral value number.
    - `subAccount` object, nullable
      - `owner` string, nullable
      - `timestamp` string, date-time, nullable
      - `lastAccountStatusCheckTimestamp` string, date-time, nullable
      - `enabledControllers` string[], nullable
      - `enabledCollaterals` string[], nullable
      - `isLockdownMode` boolean, nullable
      - `isPermitDisabledMode` boolean, nullable
    - `snapshot` object
      - `timestamp` string, date-time, nullable — Timestamp of the coherent snapshot represented by this position. A failed partial refresh retains the prior snapshot and timestamp when replacing it would erase known EVK debt or controller state.
      - `ageSeconds` integer, nullable
      - `source` string, nullable
      - `method` string, nullable
  - `meta` PaginationMeta
    - `total` integer — Exact total count when the endpoint provides one.
    - `hasMore` boolean — Indicates whether another page exists beyond the current page.
    - `offset` integer
    - `limit` integer — Echoed page size after endpoint-side clamping.
    - `timestamp` string, date-time, required
    - `chainId` string — Comma-separated chain IDs for multi-chain responses.
    - `degradedProviders` string[] — Live providers whose data is incomplete in this response.
  - `freshness` object
    - `latestSnapshotTimestamp` string, date-time, nullable
    - `ageSeconds` integer, nullable
    - `timestamp` string, date-time
    - `mode` 'fresh' | 'cached'
    - `forceFreshRequested` boolean
    - `refreshTriggered` boolean
    - `refreshCompleted` boolean
    - `timedOut` boolean
    - `rateLimited` boolean
    - `fallbackReason` string, nullable
    - `waitedMs` integer

## Other responses

- `504` — Upstream request timed out

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/euler/euler-data-api-v3/revisions/9573a5fbd4a6/schema)
