fetch_all_vaults
Documentation for eth_defi.hyperliquid.vault.fetch_all_vaults function.
- fetch_all_vaults(session=None, stats_url='https://stats-data.hyperliquid.xyz/Mainnet/vaults', timeout=30.0)
Iterate over all Hyperliquid vaults.
This function fetches all vault summaries from the Hyperliquid stats-data API and yields them one by one. It handles API throttling using exponential backoff retry logic.
Note
This uses the undocumented stats-data endpoint (
HYPERLIQUID_STATS_URL) instead of the officialvaultSummariesendpoint which is documented but non-functional (returns empty array).Example:
from eth_defi.hyperliquid.session import create_hyperliquid_session from eth_defi.hyperliquid.vault import fetch_all_vaults, HYPERLIQUID_STATS_TESTNET_URL # Create a session for API requests session = create_hyperliquid_session() # Iterate over all vaults (mainnet) for vault in fetch_all_vaults(session): print(f"Vault: {vault.name}, TVL: ${vault.tvl:,.2f}") # Use testnet for vault in fetch_all_vaults(session, stats_url=HYPERLIQUID_STATS_TESTNET_URL): print(f"Testnet vault: {vault.name}") # Filter vaults with high TVL high_tvl_vaults = [v for v in fetch_all_vaults(session) if v.tvl > 1_000_000] # Convert to list all_vaults = list(fetch_all_vaults(session)) # Sort vaults by TVL after fetching sorted_by_tvl = sorted(fetch_all_vaults(session), key=lambda v: v.tvl, reverse=True) # Get top 10 vaults by TVL top_tvl = sorted_by_tvl[:10]- Parameters
session (requests.sessions.Session | None) – A requests Session configured for Hyperliquid API. Use
eth_defi.hyperliquid.session.create_hyperliquid_session()to create one. If None, a default session will be created.stats_url (str) – Hyperliquid stats-data API URL. Use
HYPERLIQUID_STATS_URLfor mainnet orHYPERLIQUID_STATS_TESTNET_URLfor testnet.timeout (float) – HTTP request timeout in seconds
- Returns
Iterator yielding VaultSummary objects
- Raises
requests.HTTPError – If the HTTP request fails after all retries
- Return type