Get Vault TVL History

Returns a daily time series of total value locked (USD) for a single ERC-4626 vault. Each point is a UTC-midnight sample and carries a quality_flag describing whether the producer marked the underlying TVL reading as trustworthy. The response also hoists the most recent passing point to a top-level latest aggregate so stat-tile consumers can render the current value without paging the full series.

Quality filtering (default): Samples flagged as capped, diverged, or spike are dropped from the response by default, so the chart line stays clean against producer-side data-quality issues. When this happens, count will be smaller than days and filtered_count reports how many points were excluded — a visible kink in the chart line is expected and does not indicate a missed cron tick. Set includeFlagged=true to bypass the filter and receive the raw series with every sample's quality_flag populated.

Envelope semantics: stale_reason disambiguates the four post-filter states (fresh, pipeline_lag, all_filtered, no_samples_yet); stale: boolean is preserved for back-compat (true iff stale_reason !== 'fresh'). schema_version is bumped any time the response shape changes — pin it if you're building a regression harness.

Returns 404 when the vault is not in the verified-vaults catalog; tracked vaults with no samples yet still return 200 with count: 0, latest: null, and stale_reason: 'no_samples_yet'. Cached for 5 minutes; the includeFlagged=true and default responses are cached in partitioned namespaces so they never cross-pollinate.

Path Params
string
required
^0x[a-fA-F0-9]{40}$

Vault contract address

Query Params
string
enum
required

Blockchain network where the vault is deployed

Allowed:
string
enum
Defaults to 30d

Window length to return. Defaults to 30d when omitted.

Allowed:
boolean
Defaults to false

When true, bypasses the default quality_flag allowlist filter and returns the full raw series including capped, diverged, and spike samples. Intended for power users and researchers — the default chart-friendly behavior (false) drops those samples so single-day pricing artifacts and divergence events do not show up as misleading peaks or troughs in the line. filtered_count is always 0 when this flag is true. The hoisted latest aggregate tracks the same filter: when false, latest is the most recent passing sample (quality_flag ∈ {ok, unknown}); when true, latest is the most recent sample in the raw series and may carry any quality_flag value.

Responses

latest aggregate

400

Invalid address format, missing chain parameter, or unsupported range value

404

Vault not in the verified-vaults catalog for the given address and chain

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json