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 GRVTVaultSummary

Bases: object

Summary information for a GRVT vault.

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

vault_id: str

Vault string ID on the GRVT platform (e.g. VLT:34dTZyg6LhkGM49Je5AABi9tEbW)

chain_vault_id: int

Numeric on-chain vault ID used by the market data API

name: str

Vault display name

description: str

Short description of the strategy

manager_bio: str

Manager biography (“Things to know about the trader” on the strategies page)

investment_philosophy: str

Investment philosophy (“How they trade” on the strategies page)

risk_management_process: str

Risk management process (“How they manage risks” on the strategies page)

vault_type: str

Vault type (prime or launchpad)

discoverable: bool

Whether the vault is listed on the strategies page

status: str

Vault status (e.g. active)

manager_name: str

Manager name

categories: list[str]

Strategy categories (e.g. ["Market Making", "Delta Neutral"])

create_time: datetime.datetime | None

Creation timestamp

tvl: float | None

Current TVL in USDT (from market data API)

share_price: float | None

Current share price (from market data API)

management_fee: float | None

Annual management fee as a decimal fraction (e.g. 0.01 = 1%). From the GRVT GraphQL API managementFee field (PPM).

performance_fee: float | None

Performance fee as a decimal fraction (e.g. 0.20 = 20%). From the GRVT GraphQL API performanceFee field (PPM).

__init__(vault_id, chain_vault_id, name, description, manager_bio, investment_philosophy, risk_management_process, vault_type, discoverable, status, manager_name, categories, create_time=None, tvl=None, share_price=None, management_fee=None, performance_fee=None)
Parameters
  • vault_id (str) –

  • chain_vault_id (int) –

  • name (str) –

  • description (str) –

  • manager_bio (str) –

  • investment_philosophy (str) –

  • risk_management_process (str) –

  • vault_type (str) –

  • discoverable (bool) –

  • status (str) –

  • manager_name (str) –

  • categories (list[str]) –

  • create_time (datetime.datetime | None) –

  • tvl (float | None) –

  • share_price (float | None) –

  • management_fee (float | None) –

  • performance_fee (float | None) –

Return type

None

class GRVTVaultPerformance

Bases: object

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

chain_vault_id: int

Numeric on-chain vault ID

apr: float

Annualised percentage return

return_30d: float

30-day return

return_90d: float

90-day return

return_ytd: float

Year-to-date return

return_since_inception: float

Return since inception

trading_volume: float

Total trading volume in USDT

cumulative_pnl: float

Cumulative PnL in USDT

__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.

chain_vault_id: int

Numeric on-chain vault ID

sharpe_ratio: float

Sharpe ratio

sortino_ratio: float

Sortino ratio

max_drawdown: float

Maximum drawdown as a decimal (e.g. 0.12 = 12%)

__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

build_vault_description(summary)

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

Combines the short description, manager bio, investment philosophy, and risk management process into a single markdown string with headings matching the GRVT strategies page layout.

Only includes sections where the text 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_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_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_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