---
title: "Earn vault totals history"
method: GET
path: "/v3/earn/vaults/{chainId}/{address}/totals"
tags: ["Earn"]
---

# Earn vault totals history

`GET /v3/earn/vaults/{chainId}/{address}/totals`

Returns aggregator-level Earn vault totals history. This endpoint uses
Earn semantics and intentionally omits EVK-only borrowed, cash, and
utilization fields. Fresh Earn snapshots serve current totals, APY, and
share price without Ponder or RPC work; missing or stale snapshots retain
the indexed/live fallback. Historical USD values use bucket-aligned asset
prices when available and remain null when pricing is unavailable. The
effective end is `to` or the current time. When
`from` is omitted, the effective window is 7 days for `1h` and 30 days for
`1d`. Ranges count both endpoint buckets and support at most 744 hourly
buckets or 732 daily buckets.

## Path parameters

- `chainId` integer, required
- `address` string, required

## Query parameters

- `resolution` '1h' | '1d'
- `from` integer
- `to` integer

## Response `200`

Earn vault totals history

- object
  - `data` EarnTotalsHistory
    - `current` EarnTotalsHistoryPoint
      - `totalAssets` string — Raw aggregator underlying asset amount as a bigint string.
      - `totalAssetsUsd` number, nullable — USD value of totalAssets. Current values use the materialized vault valuation; history values use the bucket-aligned asset price when available.
      - `sharePrice` number, nullable — Aggregator share price when available.
      - `apy` number, nullable — Earn public APY as a percent number.
      - `timestamp` string, date-time
    - `history` EarnTotalsHistoryPoint[]
      - `totalAssets` string — Raw aggregator underlying asset amount as a bigint string.
      - `totalAssetsUsd` number, nullable — USD value of totalAssets. Current values use the materialized vault valuation; history values use the bucket-aligned asset price when available.
      - `sharePrice` number, nullable — Aggregator share price when available.
      - `apy` number, nullable — Earn public APY as a percent number.
      - `timestamp` string, date-time
  - `meta` EarnTotalsHistoryMeta
    - `chainId` string
    - `vault` string
    - `resolution` '1h' | '1d'
    - `startTimestamp` string, date-time
    - `endTimestamp` string, date-time
    - `timestamp` string, date-time
    - `source` 'snapshot' | 'live' | 'ponder' | 'summary' | 'snapshot-stale' — Source selected for the current totalAssets value.
    - `stale` boolean — Whether the selected current totalAssets value is older than the 15-minute freshness threshold.
    - `snapshotTimestamp` string, date-time — Timestamp of the latest Earn APY snapshot when one exists.
    - `snapshotAgeSeconds` integer — Age of the latest Earn APY snapshot at response construction time.
    - `note` string

## Other responses

- `400` — Bad request
- `404` — Not found
- `429` — Rate limited
- `500` — Internal server error
- `503` — Service unavailable
- `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/2e0e17d09898/schema)
