VaultMetricsRecord
Documentation for eth_defi.research.vault_metrics.VaultMetricsRecord Python class.
- class VaultMetricsRecord
Bases:
TypedDictPer-vault record in the JSON export.
Uses
total=Falseso that only the most critical fields are typed explicitly — remaining fields are still present but not enforced by the type checker. This is an incremental approach; more fields can be promoted to required as the schema stabilises.Attributes summary
Vault display name
Chain identifier (integer chain ID)
Chain display name, e.g.
Native protocol deployment slug, or
Nonefor ordinary EVM vaults.Real EVM chain ID associated with a native protocol deployment.
Protocol display name, e.g.
Protocol slug, e.g.
Curator slug, e.g.
Curator display name, e.g.
Whether the curator is the vault protocol itself.
Vault contract address (checksummed hex)
Unique vault slug for URLs
Compound Annual Growth Rate (lifetime)
Lifetime total return
3-month CAGR
1-month CAGR
Annualised volatility
Sharpe ratio
Technical risk classification
Latest adaptive vault scan cycle, e.g.
Current net asset value in USD
Peak net asset value in USD
Management fee percentage
Performance fee percentage
Denomination (reserve) token ERC-20 decimals, e.g.
Static support for this library's deposit/redemption manager, or
None.Share token ERC-20 decimals (the vault's own ERC-4626 token).
Protocol-specific extension data (Morpho flags, etc.)
Compact Core3 risk summary for the vault's protocol, or
Nonewhen no Core3 data is available.Stablecoin rate data for the vault denomination token.
Per-period tearsheet results
Methods summary
__init__(*args, **kwargs)clear()Remove all items from the dict.
copy()Return a shallow copy of the dict.
fromkeys([value])Create a new dictionary with keys from iterable and values set to value.
get(key[, default])Return the value for key if key is in the dictionary, else default.
items()Return a set-like object providing a view on the dict's items.
keys()Return a set-like object providing a view on the dict's keys.
pop(k[,d])If the key is not found, return the default if given; otherwise, raise a KeyError.
popitem()Remove and return a (key, value) pair as a 2-tuple.
setdefault(key[, default])Insert key with a value of default if key is not in the dictionary.
update([E, ]**F)If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
values()Return an object providing a view on the dict's values.
- name: str
Vault display name
- chain_id: int
Chain identifier (integer chain ID)
- chain: str
Chain display name, e.g.
"Ethereum"
- deployment: Optional[str]
Native protocol deployment slug, or
Nonefor ordinary EVM vaults.For now this is populated for Lighter so consumers can distinguish the original
ethereumdeployment from Lighter onrobinhoodwhile retaining Lighter’s synthetic vault-dataset chain ID.
- deployment_chain_id: Optional[int]
Real EVM chain ID associated with a native protocol deployment.
For now this is populated for Lighter on Ethereum (1) and Lighter on Robinhood Chain (4663). Both deployments keep
chain_id=9998because they share the native Lighter dataset namespace; their synthetic address prefixes and these deployment fields distinguish individual vaults.
- protocol: str
Protocol display name, e.g.
"Morpho"
- protocol_slug: str
Protocol slug, e.g.
"morpho"
- curator_slug: Optional[str]
Curator slug, e.g.
"gauntlet".Nonewhen no curator is known.
- curator_name: Optional[str]
Curator display name, e.g.
"Gauntlet".
- protocol_curator: Optional[bool]
Whether the curator is the vault protocol itself.
- address: str
Vault contract address (checksummed hex)
- vault_slug: str
Unique vault slug for URLs
- cagr: Optional[float]
Compound Annual Growth Rate (lifetime)
- lifetime_return: Optional[float]
Lifetime total return
- three_months_cagr: Optional[float]
3-month CAGR
- one_month_cagr: Optional[float]
1-month CAGR
- volatility: Optional[float]
Annualised volatility
- sharpe: Optional[float]
Sharpe ratio
- risk: Optional[str]
Technical risk classification
- vault_poll_frequency: Optional[str]
Latest adaptive vault scan cycle, e.g.
"large_tvl"or"peaked".
- current_nav: Optional[float]
Current net asset value in USD
- peak_nav: Optional[float]
Peak net asset value in USD
- management_fee: Optional[float]
Management fee percentage
- performance_fee: Optional[float]
Performance fee percentage
- denomination_decimals: Optional[int]
Denomination (reserve) token ERC-20 decimals, e.g.
6for USDC. Consumers use this to convert human amounts to raw uint256; a missing value must NOT be defaulted to 18 (seedenomination_token_address).
- deposit_manager: Optional[dict]
Static support for this library’s deposit/redemption manager, or
None.This does not mean the vault is currently open or that an account has permission, funds, acceptable slippage, spare cap, or liquidity.
- share_token_decimals: Optional[int]
Share token ERC-20 decimals (the vault’s own ERC-4626 token).
- other_data: dict
Protocol-specific extension data (Morpho flags, etc.)
- core3: Optional[eth_defi.core3.vault_protocol.Core3VaultSection]
Compact Core3 risk summary for the vault’s protocol, or
Nonewhen no Core3 data is available. SeeCore3VaultSection.
- denomination_token_rate: eth_defi.feed.stablecoin_rate.DenominationTokenRate
Stablecoin rate data for the vault denomination token.
- __init__(*args, **kwargs)
- __new__(**kwargs)
- clear()
Remove all items from the dict.
- copy()
Return a shallow copy of the dict.
- fromkeys(value=None, /)
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)
Return the value for key if key is in the dictionary, else default.
- items()
Return a set-like object providing a view on the dict’s items.
- keys()
Return a set-like object providing a view on the dict’s keys.
- pop(k[, d]) v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem()
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- setdefault(key, default=None, /)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- update([E, ]**F) None. Update D from mapping/iterable E and F.
If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values()
Return an object providing a view on the dict’s values.