grvt.vault
Documentation for eth_defi.grvt.vault Python module.
GRVT vault data extraction and analysis.
This module provides functionality for extracting GRVT vault data via public endpoints:
Vault discovery is done via the public GraphQL API at
https://edge.grvt.io/query, which provides vault metadata including per-vault fee percentages.Vault details (TVL, share price, performance, risk metrics, share price history) come from the public market data API at
https://market-data.grvt.io.
No authentication is required for these endpoints.
For more information about GRVT strategies see:
https://help.grvt.io/en/articles/11424324-what-is-grvt-strategies
https://help.grvt.io/en/articles/11424466-grvt-strategies-core-concepts
Functions
|
Build a merged markdown description from all GRVT vault description fields. |
|
Fetch vault detail data (TVL, share price) from the market data API. |
|
Fetch GRVT vault listing via the public GraphQL API. |
|
Fetch vault performance metrics from the market data API. |
|
Fetch vault risk metrics from the market data API. |
|
Fetch share price history for a vault from the market data API. |
Classes
Performance metrics for a GRVT vault from the market data API. |
|
Risk metrics for a GRVT vault from the market data API. |
|
Summary information for a GRVT vault. |
- class GRVTVaultSummary
Bases:
objectSummary information for a GRVT vault.
Combines data from the GRVT GraphQL API with live data from the market data API.
- risk_management_process: str
Risk management process (“How they manage risks” on the strategies page)
- manager_profile_image_url: Optional[str]
Manager profile image URL (avatar) from the GRVT CDN.
From the GraphQL
managerInfo.profileImageURLfield.Nonewhen the manager has no avatar. Used as a curator logo source.
- cover_image_url: Optional[str]
Vault cover image URL (banner artwork) from the GRVT CDN.
From the GraphQL
coverImageURLfield.Nonewhen no cover image.
- raw_metadata: Optional[dict[str, Any]]
Raw GraphQL vault node as returned by the GRVT API.
Stored verbatim so that newly added API fields are preserved without a schema change. Persisted as a JSON dump in the
extended_vault_infocolumn and refreshed weekly.Nonewhen the summary was not built from a GraphQL node.
- create_time: Optional[datetime.datetime]
Creation timestamp
Current share price (from market data API)
- management_fee: Optional[float]
Annual management fee as a decimal fraction (e.g. 0.01 = 1%). From the GRVT GraphQL API
managementFeefield (PPM).
- performance_fee: Optional[float]
Performance fee as a decimal fraction (e.g. 0.20 = 20%). From the GRVT GraphQL API
performanceFeefield (PPM).
- __init__(vault_id, chain_vault_id, name, description, manager_bio, investment_philosophy, risk_management_process, vault_type, discoverable, status, manager_name, categories, manager_profile_image_url=None, cover_image_url=None, raw_metadata=None, create_time=None, tvl=None, share_price=None, management_fee=None, performance_fee=None)
- Parameters
- Return type
None
- class GRVTVaultPerformance
Bases:
objectPerformance metrics for a GRVT vault from the market data API.
- __init__(chain_vault_id, apr, return_30d, return_90d, return_ytd, return_since_inception, trading_volume, cumulative_pnl)
- build_vault_description(summary)
Build a merged markdown description from all GRVT vault description fields.
Combines the short description, manager bio, investment philosophy, risk management process, and extended metadata (strategy categories, manager profile image, cover image) into a single markdown string with headings matching the GRVT strategies page layout.
Only includes sections where the text or field is non-empty.
- Parameters
summary (eth_defi.grvt.vault.GRVTVaultSummary) – Vault summary with description fields populated from the GraphQL API.
- Returns
Merged markdown description, or empty string if all fields are empty.
- Return type
- fetch_vault_listing_graphql(session, graphql_url='https://edge.grvt.io/query', only_discoverable=True, timeout=30.0)
Fetch GRVT vault listing via the public GraphQL API.
Returns per-vault fee data (
managementFee,performanceFee) alongside vault metadata.The GraphQL endpoint at
https://edge.grvt.io/queryis public and requires no authentication.Example:
from eth_defi.grvt.session import create_grvt_session from eth_defi.grvt.vault import fetch_vault_listing_graphql session = create_grvt_session() vaults = fetch_vault_listing_graphql(session) for v in vaults: print(f"{v.name}: mgmt={v.management_fee}, perf={v.performance_fee}")- Parameters
- Returns
List of
GRVTVaultSummaryobjects with fee data populated.- Return type
- fetch_vault_details(session, chain_vault_ids, market_data_url='https://market-data.grvt.io', timeout=30.0)
Fetch vault detail data (TVL, share price) from the market data API.
Uses
/full/v1/vault_detail. No authentication required.- Parameters
- Returns
Dict mapping chain_vault_id to detail dict with keys:
share_price,total_equity,valuation_cap,total_supply_lp_tokens.- Return type
- fetch_vault_performance(session, chain_vault_ids, market_data_url='https://market-data.grvt.io', timeout=30.0)
Fetch vault performance metrics from the market data API.
Uses
/full/v1/vault_performance. No authentication required.- Parameters
- Returns
Dict mapping chain_vault_id to
GRVTVaultPerformance.- Return type
- fetch_vault_risk_metrics(session, chain_vault_ids, market_data_url='https://market-data.grvt.io', timeout=30.0)
Fetch vault risk metrics from the market data API.
Uses
/full/v1/vault_risk_metric. No authentication required.- Parameters
- Returns
Dict mapping chain_vault_id to
GRVTVaultRiskMetric.- Return type
- fetch_vault_summary_history(session, chain_vault_id, market_data_url='https://market-data.grvt.io', timeout=30.0)
Fetch share price history for a vault from the market data API.
Uses
/full/v1/vault_summary_history. No authentication required.Returns a DataFrame with daily share prices, resampled from the ~8-hourly intervals provided by the API.
- Parameters
- Returns
DataFrame indexed by date with
share_priceanddaily_returncolumns. Empty if no data.- Return type