Vault data#
This document describes the vault data format available over Trading Strategy API.
Vault datasets are
Vault metadata and real-time summaries
Historical returns data
Vault metadata format#
The vault metadata contains descriptions of all vaults.
The vault metadata is served as a JSON file.
The field descriptions:
Key |
Label |
Description |
|---|---|---|
|
Name |
Human‑readable vault name. May include chain information to ensure uniqueness. |
|
Vault Slug |
URL‑safe slug for the vault name, used in links and identifiers. |
|
Protocol Slug |
URL‑safe slug for the protocol name (e.g., |
|
Curator Slug |
Slug identifying the vault curator, or |
|
Curator Name |
Human‑readable curator name, or |
|
Protocol Curator |
Boolean indicating whether the curator is the protocol itself (not a third party). |
|
Share Token Address |
On‑chain address of the vault’s ERC‑20 share token. Usually the vault contract address itself. |
|
Denomination Token Addr. |
On‑chain address of the denomination (underlying) token. |
|
Lifetime Return (Gross) |
All‑time gross return from first to last price as a decimal fraction (e.g., 0.10 = 10%). |
|
Lifetime Return (Net) |
All‑time net return after fees as a decimal fraction. Present only when fee data is available. |
|
CAGR (Gross) |
Annualised gross return (Compound Annual Growth Rate) over the full history. |
|
CAGR (Net) |
Annualised net return after fees over the full history. |
|
3M Return (Gross) |
Absolute gross return over the last ~90 days as a decimal fraction. |
|
3M Return (Net) |
Absolute net return over the last ~90 days after fees as a decimal fraction. |
|
3M CAGR (Gross) |
Annualised gross return computed from the last ~90 days window. |
|
3M CAGR (Net) |
Annualised net return after fees computed from the last ~90 days window. |
|
3M Sharpe Ratio (Gross) |
Sharpe ratio over the last ~90 days using daily returns annualised to 365. Higher indicates better risk‑adjusted performance. |
|
3M Sharpe Ratio (Net) |
Net Sharpe ratio over the last ~90 days. Currently calculated from the same daily series as gross and may be identical. |
|
3M Volatility (Ann.) |
Annualised volatility over the last ~90 days: daily standard deviation scaled by sqrt(365). |
|
1M Return (Gross) |
Absolute gross return over the last ~30 days as a decimal fraction. |
|
1M Return (Net) |
Absolute net return over the last ~30 days after fees as a decimal fraction. |
|
1M CAGR (Gross) |
Annualised gross return computed from the last ~30 days window. |
|
1M CAGR (Net) |
Annualised net return after fees computed from the last ~30 days window. |
|
Denomination |
Underlying denomination token (e.g., USDC). Indicates the unit of account for share price and TVL. |
|
Normalised Denomination |
Canonical token symbol after normalisation (e.g., |
|
Denomination Slug |
Lower‑case slug of the normalised denomination, used for filtering. |
|
Share Token |
The vault’s share token identifier (symbol or address), representing depositor shares. |
|
Chain |
Human‑readable blockchain name (e.g., Ethereum, Arbitrum). |
|
Peak TVL/NAV |
All‑time high TVL by the vault. Reported in the denomination currency. |
|
Current TVL/NAV |
Latest TVL by the vault. Reported in the denomination currency. |
|
Age (Years) |
Vault observation window length in years from first to last data point. |
|
Management Fee |
Annual management fee as a decimal (e.g., 0.02 = 2%). May be missing if not detected. |
|
Performance Fee |
Performance fee as a decimal (e.g., 0.20 = 20% of profits). May be missing if not detected. |
|
Deposit Fee |
Fee applied on deposits as a decimal (e.g., 0.01 = 1%). May be null if no fee. |
|
Withdrawal Fee |
Fee applied on withdrawals as a decimal (e.g., 0.01 = 1%). May be null if no fee. |
|
Fee Mode |
How fees are applied: |
|
Fee Internalised |
Boolean shorthand: |
|
Fee Label |
Human‑readable fee summary, e.g., |
|
Lock‑up (Estimated) |
Estimated lock‑up period before funds can be withdrawn. May be zero or missing. |
|
Deposit/Withdraw Events |
Total number of observed deposit and redeem events for the vault. |
|
Protocol |
Name of the protocol implementing the vault (e.g., Yearn, Beefy). |
|
Risk (Category) |
Technical risk classification object; renderable to a human label via its API. |
|
Risk (Numeric) |
Numeric representation of the technical risk category for sorting or filtering. |
|
Vault ID |
Unique identifier combining chain and address ( |
|
Start Date |
Timestamp of the first available price observation used in metrics. |
|
End Date |
Timestamp of the last available price observation used in metrics. |
|
Address |
Vault contract address on the blockchain. |
|
Chain ID |
Numeric EVM chain identifier (e.g., 1 for Ethereum). |
|
Stablecoin‑Like |
Boolean indicating whether the vault is denominated in a stablecoin-like token (could be yield bearing). |
|
First Updated At |
Timestamp of the earliest recorded on‑chain observation for this vault. |
|
First Updated Block |
Block number corresponding to the earliest recorded observation. |
|
Last Updated At |
Timestamp of the latest recorded on‑chain observation for this vault. |
|
Last Updated Block |
Block number corresponding to the latest recorded observation. |
|
Last Share Price |
Most recent share price observation in the denomination currency. |
|
Detected Features |
List of detected vault features (e.g., ERC‑4626/7540 capabilities) as feature names. |
|
Vault Flags |
Set of VaultFlag values indicating vault status (e.g., |
|
Notes |
Human‑readable note text for the vault (e.g., risk warnings, Morpho flag summaries). May be |
|
Link |
URL to the vault on the protocol’s website. May be |
|
Trading Strategy Link |
URL to the vault page on tradingstrategy.ai. May be |
|
Deposit Closed Reason |
Reason why deposits are closed (e.g., |
|
Redemption Closed Reason |
Reason why redemptions are closed. Empty string if redemptions are open. |
|
Deposit Next Open |
Estimated timestamp when deposits will next open. |
|
Redemption Next Open |
Estimated timestamp when redemptions will next open. |
|
Available Liquidity |
Available liquidity for withdrawals in the denomination currency (lending vaults). |
|
Utilisation |
Current utilisation ratio (0.0–1.0) for lending vaults. |
|
Leader Fraction |
Fraction of vault assets controlled by the leader (Hypercore vaults). |
|
Leader Commission |
Commission rate charged by the vault leader (Hypercore). |
|
Follower Count |
Number of followers in a Hypercore leader vault. |
|
Account PnL |
Cumulative PnL of the vault leader account (Hypercore). |
|
Cumulative Volume |
Cumulative trading volume of the vault (Hypercore). |
|
Netflow Metrics |
List of NetflowMetrics objects for 1d, 7d, 30d deposit/withdrawal flows. |
|
Description |
Long‑form vault description from offchain metadata (Euler, Lagoon, etc.). |
|
Short Description |
Brief vault description from offchain metadata. |
|
Manual Review Status |
Manual review decision (e.g., |
|
Protocol Extension Data |
Protocol‑specific extension dict. See `other_data and Morpho flags`_ below. Empty lists for non‑Morpho vaults. |
|
Period Results |
List of PeriodMetrics objects for 1W, 1M, 3M, 6M, 1Y, and lifetime windows. See Structured period metrics below. |
Structured period metrics#
In addition to the legacy flat fields (three_months_cagr, one_month_returns, etc.), each vault record
includes a period_results list containing
PeriodMetrics
objects for six standard lookback windows: 1W, 1M, 3M, 6M, 1Y, and lifetime.
Each PeriodMetrics object contains:
Field |
Description |
|---|---|
|
Period label ( |
|
Error string if metrics could not be calculated (e.g., insufficient data), otherwise |
|
Timestamp when the period’s start share price was sampled. |
|
Timestamp when the period’s end share price was sampled. |
|
Share price at the beginning of the period. |
|
Share price at the end of the period. |
|
Absolute gross return over the period as a decimal fraction. |
|
Absolute net return after fees over the period as a decimal fraction. |
|
Annualised gross CAGR over the period. |
|
Annualised net CAGR after fees over the period. |
|
Annualised volatility based on daily returns. |
|
Sharpe ratio for the period. |
|
Maximum drawdown during the period as a decimal fraction. |
|
TVL at the start of the period in denomination currency. |
|
TVL at the end of the period in denomination currency. |
|
Minimum TVL observed during the period. |
|
Maximum TVL observed during the period. |
|
Rank among all vaults (1 = best), based on CAGR. Requires minimum $50,000 TVL. |
|
Rank among vaults on the same chain (1 = best). Requires minimum $10,000 TVL. |
|
Rank among vaults in the same protocol (1 = best). Requires minimum $10,000 TVL. |
|
Average utilisation over the period (lending vaults only, 0.0–1.0). |
|
Number of raw (hourly) data points used. |
|
Number of daily data points used for volatility/Sharpe calculation. |
Rankings are calculated by calculate_vault_rankings() and use net CAGR (falling back to gross when net is unavailable). Vaults are excluded from rankings if they are blacklisted, have zero/NaN CAGR, or fall below the TVL thresholds.
other_data field for vault-protocol specific metadata#
The other_data field is a protocol‑specific extension dict included in every vault record.
Currently it is populated only for Morpho vaults; all other protocols return empty lists.
Future protocols should add their own keys here rather than adding top‑level fields.
The Morpho‑specific keys are sourced from the Morpho Blue API via analyze_morpho_flags() and the MorphoFlagAnalytics dataclass:
Key |
Description |
|---|---|
|
List of vault‑level governance warning type strings from the Morpho Blue API. Example: |
|
List of market‑level risk warning type strings from the vault’s underlying Morpho market allocations.
Example: |
|
Combined RED‑level warning types across vault and market warnings. Non‑empty when |
|
Combined YELLOW‑level warning types. YELLOW flags do not trigger |
When any RED‑level flags are present, the vault is automatically blacklisted
(risk set to blacklisted) and the
VaultFlag.morpho_issues
flag is added to the flags set.
Historical vault data#
Historical vault data is the past performance metrics of a vault.
Historical data is served as a compressed Parquet file.
General columns (all protocols)#
These columns are present for every vault regardless of protocol.
Column |
Description |
|---|---|
|
EVM chain id. Native protocols use synthetic ids: |
|
Vault address, lowercase. Format varies: |
|
Block number of the on-chain read. Synthetic sequence number for native protocols. |
|
Naive UTC timestamp (also the DatetimeIndex). |
|
Share price in denomination token units. Read from contract for ERC-4626; from API for GRVT, Lighter, Hibachi; internally calculated for Hypercore (see note below). |
|
Total assets under management (TVL) in denomination token units. |
|
Total supply of vault share tokens. |
|
Performance fee at time of read (e.g. 0.20 = 20%). NaN if unknown. |
|
Management fee at time of read (e.g. 0.02 = 2%). NaN if unknown. |
|
Comma-separated RPC error messages (e.g. |
|
Dynamic poll frequency (e.g. |
|
Vault identifier: |
|
Human-readable vault name (unique within the dataset). |
|
Total deposit + redeem events observed for this vault. |
|
Protocol name (e.g. |
|
Return as |
|
Why deposits are closed (e.g. |
|
When this row was written/fetched (naive UTC). NaT for old data. |
ERC-4626 only columns#
These columns come from on-chain ERC-4626 contract calls and are NaN or empty for native protocols.
Column |
Description |
|---|---|
|
Maximum deposit amount allowed ( |
|
Maximum redeem amount allowed ( |
|
Whether deposits were open: |
|
Whether redemptions were open: |
|
Whether the vault was actively trading. Currently only D2 Finance. |
Lending protocol only columns#
These columns are populated for lending protocol vaults (IPOR, Euler, Morpho, Gearbox, Silo, etc.) and NaN for other protocols.
Column |
Description |
|---|---|
|
Available liquidity for immediate withdrawal in denomination token units. |
|
Utilisation ratio (0.0–1.0). Caution: this measures capital deployment, not redeemable liquidity. Multi-market aggregators (Morpho, Euler Earn, IPOR) can show high utilisation yet have substantial instantly redeemable liquidity in underlying markets. |
Hypercore only columns#
These columns are populated for native Hyperliquid vaults (chain 9999) and NaN for all others.
Column |
Description |
|---|---|
|
Fraction of vault assets controlled by the leader (0.0–1.0). |
|
Commission rate charged by the vault leader (0.0–1.0). |
|
Number of followers in the vault. |
|
Cumulative PnL of the vault leader account in USD. |
|
Cumulative trading volume of the vault in USD. |
Native protocol flow columns#
These columns are populated for native protocols with daily deposit/withdrawal data (Hypercore, GRVT, Lighter, Hibachi) and NaN for ERC-4626 vaults.
Column |
Description |
|---|---|
|
Number of deposit events in the latest day. |
|
Number of withdrawal events in the latest day. |
|
Total USD deposited in the latest day. |
|
Total USD withdrawn in the latest day. |
Vault technical risk#
The data contains vault technical risk labels. These are based on the beta vault technical risk framework.
Stablecoin vs. crypto-denominated vaults#
Currently only stablecoin-denominated vault data is available.
Raw data for BTC-nominated and ETH-nominated vault is collected, but not published yet. Ask if needed.