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:

Functions

build_vault_description(summary)

Build a merged markdown description from all GRVT vault description fields.

fetch_vault_details(session, chain_vault_ids)

Fetch vault detail data (TVL, share price) from the market data API.

fetch_vault_listing_graphql(session[, ...])

Fetch GRVT vault listing via the public GraphQL API.

fetch_vault_performance(session, chain_vault_ids)

Fetch vault performance metrics from the market data API.

fetch_vault_risk_metrics(session, ...[, ...])

Fetch vault risk metrics from the market data API.

fetch_vault_summary_history(session, ...[, ...])

Fetch share price history for a vault from the market data API.

Classes

GRVTVaultPerformance

Performance metrics for a GRVT vault from the market data API.

GRVTVaultRiskMetric

Risk metrics for a GRVT vault from the market data API.

GRVTVaultSummary

Summary information for a GRVT vault.

class GRVTVaultPerformance

Bases: object

Performance 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)
Parameters
  • chain_vault_id (int) –

  • apr (float) –

  • return_30d (float) –

  • return_90d (float) –

  • return_ytd (float) –

  • return_since_inception (float) –

  • trading_volume (float) –

  • cumulative_pnl (float) –

Return type

None

class GRVTVaultRiskMetric

Bases: object

Risk metrics for a GRVT vault from the market data API.

__init__(chain_vault_id, sharpe_ratio, sortino_ratio, max_drawdown)
Parameters
  • chain_vault_id (int) –

  • sharpe_ratio (float) –

  • sortino_ratio (float) –

  • max_drawdown (float) –

Return type

None

class GRVTVaultSummary

Bases: object

Summary information for a GRVT vault.

Combines data from the GRVT GraphQL API with live data from the market data API.

__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

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

str

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
  • session (requests.sessions.Session) – HTTP session.

  • chain_vault_ids (list[int]) – List of numeric chain vault IDs.

  • market_data_url (str) – Market data API base URL.

  • timeout (float) – HTTP request timeout.

Returns

Dict mapping chain_vault_id to detail dict with keys: share_price, total_equity, valuation_cap, total_supply_lp_tokens.

Return type

dict[int, dict[str, Any]]

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/query is 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
  • session (requests.sessions.Session) – HTTP session (no authentication needed).

  • graphql_url (str) – GRVT GraphQL API URL.

  • only_discoverable (bool) – If True, only return vaults marked as discoverable.

  • timeout (float) – HTTP request timeout in seconds.

Returns

List of GRVTVaultSummary objects with fee data populated.

Return type

list[eth_defi.grvt.vault.GRVTVaultSummary]

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
  • session (requests.sessions.Session) – HTTP session.

  • chain_vault_ids (list[int]) – List of numeric chain vault IDs.

  • market_data_url (str) – Market data API base URL.

  • timeout (float) – HTTP request timeout.

Returns

Dict mapping chain_vault_id to GRVTVaultPerformance.

Return type

dict[int, eth_defi.grvt.vault.GRVTVaultPerformance]

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
  • session (requests.sessions.Session) – HTTP session.

  • chain_vault_ids (list[int]) – List of numeric chain vault IDs.

  • market_data_url (str) – Market data API base URL.

  • timeout (float) – HTTP request timeout.

Returns

Dict mapping chain_vault_id to GRVTVaultRiskMetric.

Return type

dict[int, eth_defi.grvt.vault.GRVTVaultRiskMetric]

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
  • session (requests.sessions.Session) – HTTP session.

  • chain_vault_id (int) – Numeric chain vault ID.

  • market_data_url (str) – Market data API base URL.

  • timeout (float) – HTTP request timeout.

Returns

DataFrame indexed by date with share_price and daily_return columns. Empty if no data.

Return type

pandas.DataFrame