hyperliquid.deposit
Documentation for eth_defi.hyperliquid.deposit Python module.
Hyperliquid vault deposit and redemption history analysis.
This module provides functionality for fetching and analysing historical deposit and redemption (withdrawal) events for Hyperliquid vaults.
The Hyperliquid API provides the userNonFundingLedgerUpdates endpoint which
returns all ledger updates excluding funding payments. This includes vault-specific
events:
vaultDeposit- User deposits into a vaultvaultWithdraw- User withdraws from a vaultvaultCreate- Vault creation eventvaultDistribution- Distribution event (e.g., profit sharing)vaultLeaderCommission- Commission paid to vault leader
API Endpoints Used
userNonFundingLedgerUpdates- Paginated ledger history with time range support
Example:
from datetime import datetime, timedelta
from eth_defi.hyperliquid.session import create_hyperliquid_session
from eth_defi.hyperliquid.deposit import (
fetch_vault_deposits,
create_deposit_dataframe,
)
session = create_hyperliquid_session()
vault_address = "0x3df9769bbbb335340872f01d8157c779d73c6ed0"
# Fetch deposit/withdrawal history for the last 30 days
start_time = datetime.now() - timedelta(days=30)
events = list(fetch_vault_deposits(session, vault_address, start_time=start_time))
# Convert to DataFrame for analysis
df = create_deposit_dataframe(events)
print(f"Total deposits: ${df[df['event_type'] == 'vault_deposit']['usdc'].sum():,.2f}")
See Also
https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint
https://hyperliquid.gitbook.io/hyperliquid-docs/hypercore/vaults/for-vault-depositors
Functions
|
Aggregate vault events into daily deposit/withdrawal flow metrics. |
|
Create a DataFrame from vault deposit/withdrawal events. |
|
Fetch all deposit and withdrawal events for a vault. |
|
Generate a summary of vault deposit/withdrawal activity. |
Classes
Parsed ledger update data from Hyperliquid API. |
|
Represents a vault deposit, withdrawal, or related event. |
|
Type of vault deposit/withdrawal event. |
- class RawLedgerUpdate
Bases:
objectParsed ledger update data from Hyperliquid API.
This is an intermediate representation of raw API ledger data with proper typing.
- __init__(timestamp_ms, hash, delta)
- classmethod from_api_response(data)
Parse a ledger update from API response data.
- Parameters
data (dict) – Raw ledger update dict from API
- Returns
Parsed RawLedgerUpdate object
- Return type
- property timestamp: datetime.datetime
Convert millisecond timestamp to datetime.
- class VaultDepositEvent
Bases:
objectRepresents a vault deposit, withdrawal, or related event.
This dataclass captures vault-related ledger events from the
userNonFundingLedgerUpdatesAPI endpoint.- __init__(event_type, vault_address, user_address, usdc, timestamp, hash=None, requested_usd=None, commission=None, closing_cost=None, basis=None, net_withdrawn_usd=None)
- Parameters
event_type (eth_defi.hyperliquid.deposit.VaultEventType) –
vault_address (eth_typing.evm.HexAddress) –
user_address (Optional[eth_typing.evm.HexAddress]) –
usdc (decimal.Decimal) –
timestamp (datetime.datetime) –
requested_usd (Optional[decimal.Decimal]) –
commission (Optional[decimal.Decimal]) –
closing_cost (Optional[decimal.Decimal]) –
basis (Optional[decimal.Decimal]) –
net_withdrawn_usd (Optional[decimal.Decimal]) –
- Return type
None
- aggregate_daily_flows(events)
Aggregate vault events into daily deposit/withdrawal flow metrics.
Groups events by calendar date and computes:
Number of deposit events
Number of withdrawal events
Total USD deposited (positive)
Total USD withdrawn (positive, absolute value)
Only
vault_depositandvault_withdrawevents are counted. Other event types (vault_create,vault_distribution,vault_leader_commission) are excluded.- Parameters
events (list[eth_defi.hyperliquid.deposit.VaultDepositEvent]) – List of vault events from
fetch_vault_deposits().- Returns
Dict mapping date to
(deposit_count, withdrawal_count, deposit_usd, withdrawal_usd).- Return type
- create_deposit_dataframe(events)
Create a DataFrame from vault deposit/withdrawal events.
Creates a time-indexed DataFrame where each row represents a vault event (deposit, withdrawal, distribution, etc.).
Example:
from eth_defi.hyperliquid.deposit import fetch_vault_deposits, create_deposit_dataframe events = list(fetch_vault_deposits(session, vault_address)) df = create_deposit_dataframe(events) # Calculate net flows total_deposits = df[df["event_type"] == "vault_deposit"]["usdc"].sum() total_withdrawals = df[df["event_type"] == "vault_withdraw"]["usdc"].abs().sum() net_flow = total_deposits - total_withdrawals
- Parameters
events (list[eth_defi.hyperliquid.deposit.VaultDepositEvent]) – List of vault events from
fetch_vault_deposits()- Returns
DataFrame with timestamp index and columns for event details
- Return type
- fetch_vault_deposits(session, vault_address, start_time=None, end_time=None, timeout=30.0)
Fetch all deposit and withdrawal events for a vault.
Fetches ledger updates from the Hyperliquid API using the
userNonFundingLedgerUpdatesendpoint and filters for vault-related events (deposits, withdrawals, distributions, etc.).The events are yielded in chronological order (oldest first).
Example:
from datetime import datetime, timedelta from eth_defi.hyperliquid.session import create_hyperliquid_session from eth_defi.hyperliquid.deposit import fetch_vault_deposits session = create_hyperliquid_session() vault = "0x3df9769bbbb335340872f01d8157c779d73c6ed0" # Fetch last 7 days of deposits/withdrawals events = list( fetch_vault_deposits( session, vault, start_time=datetime.now() - timedelta(days=7), ) ) print(f"Fetched {len(events)} vault events")- Parameters
session (eth_defi.hyperliquid.session.HyperliquidSession) – Session from
create_hyperliquid_session()vault_address (eth_typing.evm.HexAddress) – Vault address to fetch events for
start_time (Optional[datetime.datetime]) – Start of time range (inclusive). Defaults to 30 days ago.
end_time (Optional[datetime.datetime]) – End of time range (inclusive). Defaults to current time.
timeout (float) – HTTP request timeout in seconds
- Returns
Iterator of vault events sorted by timestamp ascending (oldest first)
- Raises
requests.HTTPError – If the HTTP request fails after retries
- Return type
- get_deposit_summary(events)
Generate a summary of vault deposit/withdrawal activity.
- Parameters
events (list[eth_defi.hyperliquid.deposit.VaultDepositEvent]) – List of vault events from
fetch_vault_deposits()- Returns
Dict with summary statistics
- Return type