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 official vaultSummaries endpoint 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_URL for mainnet or HYPERLIQUID_STATS_TESTNET_URL for 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

Iterator[eth_defi.hyperliquid.vault.VaultSummary]