ERC-4626: analyse performance of individual vaults
This is an example notebook how to diagnose and debug the ignestion of data from a single vault
Often vault have pecularities in their data, which
Cause need for us to clean data (see
eth_defi.research.wrangle_vault_prices)The cleaning itself may cause further issues for other vaults
This is a helper notebook allowing us to diagnose these issues.
Example vault ids
Known good and bad vaults:
# Fluid
VAULT_ID=1-"0x00c8a649c9837523ebb406ceb17a6378ab5c74cf"
# Plutus
VAULT_ID="42161-0x58bfc95a864e18e8f3041d2fcd3418f48393fe6a"
# Summer
VAULT_ID="42161-0x4f63cfea7458221cb3a0eee2f31f7424ad34bb58"
# Ipor Base
VAULT_ID="8453-0x45aa96f0b3188d47a1dafdbefce1db6b37f58216"
# Hype++
# https://dashboard.tenderly.co/contract/arbitrum/0x75288264fdfea8ce68e6d852696ab1ce2f3e5004/read?view=market
VAULT_ID="42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004"
Setup
[3]:
import logging
import os
import pickle
from pathlib import Path
from pprint import pprint
from eth_defi.utils import setup_console_logging
from eth_defi.vault.base import VaultSpec
from eth_defi.vault.vaultdb import read_default_vault_prices, DEFAULT_RAW_PRICE_DATABASE, DEFAULT_UNCLEANED_PRICE_DATABASE, VaultDatabase
vault_id = "42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004"
logger = logging.getLogger(__name__)
frequency = "1h"
output_folder = Path("~/.tradingstrategy/vaults").expanduser()
reader_state_db = output_folder / f"vault-reader-state-{frequency}.pickle"
spec = VaultSpec.parse_string(vault_id)
print(f"Examining vault {spec}")
Examining vault VaultSpec(chain_id=42161, vault_address='0x75288264fdfea8ce68e6d852696ab1ce2f3e5004')
Reader state
Check the stateful price reader state
[4]:
from pprint import pprint
reader_states: dict[VaultSpec, dict] = pickle.load(reader_state_db.open("rb"))
if not spec in reader_states:
raise ValueError(f"Vault {spec} not found in reader states")
state = reader_states[spec]
print(f"Vault {spec} state:")
for key, value in state.items():
print(f" {key}: {value}")
Vault VaultSpec(chain_id=42161, vault_address='0x75288264fdfea8ce68e6d852696ab1ce2f3e5004') state:
last_tvl: 3804729.905747
last_share_price: 1.419478
max_tvl: 6241538.816345
first_seen_at_block: 276378009
first_block: 276382721
first_read_at: 2024-11-20 08:20:28
last_call_at: 2025-12-22 12:19:17
last_block: 413312321
peaked_at: None
peaked_tvl: None
faded_at: None
entry_count: 9407
chain_id: 42161
vault_address: 0x75288264FDFEA8ce68e6D852696aB1cE2f3E5004
denomination_token_address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
share_token_address: 0x75288264FDFEA8ce68e6D852696aB1cE2f3E5004
one_raw_share: None
reading_restarted_count: 0
vault_poll_frequency: large_tvl
token_symbol: None
unsupported_token: None
invoke_count_passed: 28089
invoke_count_first_read: 132
invoke_count_missing_freq: 0
invoke_count_throttled: 387
write_filtered: 9267
write_done: 140
rpc_error_count: 0
last_rpc_error: None
Raw price data
Check uncleaned raw price data from scan-prices.py script
[5]:
import pandas as pd
from eth_defi.research.wrangle_vault_prices import assign_unique_names
# Check raw price data
vault_db = VaultDatabase.read()
print(f"Checking uncleaned price data {DEFAULT_UNCLEANED_PRICE_DATABASE}")
prices_df = pd.read_parquet(DEFAULT_UNCLEANED_PRICE_DATABASE)
prices_df = assign_unique_names(vault_db.rows, prices_df, logger=lambda x: None)
vault_prices_df = prices_df.loc[prices_df["id"] == vault_id]
vault_prices_df = vault_prices_df.set_index("timestamp")
data = {
"First timestamp": vault_prices_df.index.min(),
"Last timestamp": vault_prices_df.index.max(),
"Last block": f"{vault_prices_df['block_number'].iloc[-1]:,}",
"First raw share price": vault_prices_df["share_price"].iloc[0],
"Last raw share price": vault_prices_df["share_price"].iloc[-1],
"Min raw share price": vault_prices_df["share_price"].min(),
"Max raw share price": vault_prices_df["share_price"].max(),
"Min TVL": f"${vault_prices_df['total_assets'].min():,.0f}",
"Max TVL": f"${vault_prices_df['total_assets'].max():,.0f}",
"Last TVL": vault_prices_df["total_assets"].iloc[-1],
"Rows (vault)": len(vault_prices_df),
"Rows (all)": f"{len(prices_df):,}",
}
pprint(data)
display(vault_prices_df.tail(50))
Checking uncleaned price data /Users/moo/.tradingstrategy/vaults/vault-prices-1h.parquet
{'First raw share price': 1.0,
'First timestamp': Timestamp('2024-11-20 08:20:28'),
'Last TVL': 3804729.905747,
'Last block': '413,168,321',
'Last raw share price': 1.419478,
'Last timestamp': Timestamp('2025-12-22 02:20:30'),
'Max TVL': '$6,241,539',
'Max raw share price': 1.419478,
'Min TVL': '$84,127',
'Min raw share price': 1.0,
'Rows (all)': '16,540,288',
'Rows (vault)': 138}
| chain | address | block_number | share_price | total_assets | total_supply | performance_fee | management_fee | errors | id | name | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| timestamp | |||||||||||
| 2025-10-07 07:30:39 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 386945921 | 1.393886 | 3.241143e+06 | 2.325256e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 09:30:16 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 386974721 | 1.393886 | 3.189458e+06 | 2.288176e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 10:30:05 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 386989121 | 1.393886 | 3.214497e+06 | 2.306140e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 11:29:54 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387003521 | 1.393886 | 3.258839e+06 | 2.337951e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 12:29:45 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387017921 | 1.393886 | 3.265279e+06 | 2.342572e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 14:29:21 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387046721 | 1.393886 | 3.269012e+06 | 2.345250e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 15:29:13 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387061121 | 1.393886 | 3.403705e+06 | 2.441881e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-10-07 16:29:09 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387075521 | 1.393886 | 3.541407e+06 | 2.540671e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-10 06:28:56 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398696321 | 1.408808 | 3.559103e+06 | 2.526322e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-10 08:28:45 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398725121 | 1.408808 | 3.553150e+06 | 2.522097e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-10 14:28:04 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398811521 | 1.408808 | 3.547086e+06 | 2.517792e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-10 18:27:36 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398869121 | 1.408808 | 3.523840e+06 | 2.501291e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-10 23:27:07 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398941121 | 1.408808 | 3.514042e+06 | 2.494337e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-11 04:26:42 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399013121 | 1.408808 | 3.536854e+06 | 2.510529e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-11 05:26:40 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399027521 | 1.408808 | 3.568853e+06 | 2.533243e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-11 06:26:36 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399041921 | 1.408808 | 3.668854e+06 | 2.604225e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-11-11 10:26:15 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399099521 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-07 14:50:41 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408157121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-07 23:49:31 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408286721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-08 19:46:15 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408574721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-09 11:44:24 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408805121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-10 07:41:42 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409093121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-11 01:39:03 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409352321 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-12 02:35:12 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409712321 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-12 13:34:17 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409870721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-13 02:33:16 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 410057921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-14 02:32:04 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 410403521 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-15 04:32:18 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 410777921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-16 02:29:37 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411094721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-16 10:28:44 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411209921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-17 02:26:49 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411440321 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-17 06:26:37 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411497921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-17 09:26:24 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411541121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 02:24:43 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411785921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 05:24:26 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411829121 | 1.419478 | 3.732210e+06 | 2.629283e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 08:24:15 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411872321 | 1.419478 | 3.670448e+06 | 2.585772e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 09:24:08 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411886721 | 1.419478 | 3.663123e+06 | 2.580612e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 12:23:54 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411929921 | 1.419478 | 3.637933e+06 | 2.562866e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 13:23:45 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411944321 | 1.419478 | 3.628198e+06 | 2.556008e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 14:23:30 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411958721 | 1.419478 | 3.663035e+06 | 2.580550e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 15:23:18 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411973121 | 1.419478 | 3.623032e+06 | 2.552369e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 16:23:07 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411987521 | 1.419478 | 3.730555e+06 | 2.628117e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 19:22:38 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412030721 | 1.419478 | 3.744273e+06 | 2.637781e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 20:22:29 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412045121 | 1.419478 | 3.748137e+06 | 2.640503e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-18 23:22:18 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412088321 | 1.419478 | 3.766870e+06 | 2.653700e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-19 02:22:14 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412131521 | 1.419478 | 3.803081e+06 | 2.679210e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-19 11:21:25 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412261121 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-20 01:21:15 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412462721 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-21 02:21:06 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412822721 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ | |
| 2025-12-22 02:20:30 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 413168321 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | HYPE++ |
Cleaned price data
Check price data after cleaning
[6]:
# Check price data
print(f"Checking cleaned price data {DEFAULT_RAW_PRICE_DATABASE}")
prices_df = read_default_vault_prices()
cleaned_df = vault_prices_df = prices_df.loc[prices_df["id"] == vault_id]
data = {
"First timestamp": vault_prices_df.index.min(),
"Last timestamp": vault_prices_df.index.max(),
"Last block": f"{vault_prices_df['block_number'].iloc[-1]:,}",
"First price": vault_prices_df["share_price"].iloc[0],
"Last price": vault_prices_df["share_price"].iloc[-1],
"Last price (raw)": vault_prices_df["raw_share_price"].iloc[-1],
"Last TVL": vault_prices_df["total_assets"].iloc[-1],
"Rows (vault)": len(vault_prices_df),
"Rows (all)": f"{len(prices_df):,}",
"Last timestamp (all)": prices_df.index.max(),
}
pprint(data)
print("Last 50 rows of cleaned price data:")
display(cleaned_df.tail(50))
Checking cleaned price data /Users/moo/.tradingstrategy/vaults/cleaned-vault-prices-1h.parquet
{'First price': 1.0,
'First timestamp': Timestamp('2024-11-20 08:20:28'),
'Last TVL': 3804729.905747,
'Last block': '413,168,321',
'Last price': 1.419478,
'Last price (raw)': 1.419478,
'Last timestamp': Timestamp('2025-12-22 02:20:30'),
'Last timestamp (all)': Timestamp('2025-12-22 13:55:27'),
'Rows (all)': '5,940,085',
'Rows (vault)': 138}
Last 50 rows of cleaned price data:
| id | chain | address | block_number | share_price | total_assets | total_supply | performance_fee | management_fee | errors | name | event_count | protocol | raw_share_price | returns_1h | avg_assets_by_vault | dynamic_tvl_threshold | tvl_filtering_mask | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| timestamp | ||||||||||||||||||
| 2025-10-07 07:30:39 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 386945921 | 1.393886 | 3.241143e+06 | 2.325256e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 09:30:16 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 386974721 | 1.393886 | 3.189458e+06 | 2.288176e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 10:30:05 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 386989121 | 1.393886 | 3.214497e+06 | 2.306140e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 11:29:54 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387003521 | 1.393886 | 3.258839e+06 | 2.337951e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 12:29:45 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387017921 | 1.393886 | 3.265279e+06 | 2.342572e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 14:29:21 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387046721 | 1.393886 | 3.269012e+06 | 2.345250e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 15:29:13 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387061121 | 1.393886 | 3.403705e+06 | 2.441881e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-10-07 16:29:09 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 387075521 | 1.393886 | 3.541407e+06 | 2.540671e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.393886 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-10 06:28:56 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398696321 | 1.408808 | 3.559103e+06 | 2.526322e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.010705 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-10 08:28:45 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398725121 | 1.408808 | 3.553150e+06 | 2.522097e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-10 14:28:04 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398811521 | 1.408808 | 3.547086e+06 | 2.517792e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-10 18:27:36 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398869121 | 1.408808 | 3.523840e+06 | 2.501291e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-10 23:27:07 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 398941121 | 1.408808 | 3.514042e+06 | 2.494337e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-11 04:26:42 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399013121 | 1.408808 | 3.536854e+06 | 2.510529e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-11 05:26:40 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399027521 | 1.408808 | 3.568853e+06 | 2.533243e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-11 06:26:36 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399041921 | 1.408808 | 3.668854e+06 | 2.604225e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-11-11 10:26:15 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 399099521 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-07 14:50:41 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408157121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-07 23:49:31 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408286721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-08 19:46:15 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408574721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-09 11:44:24 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 408805121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-10 07:41:42 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409093121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-11 01:39:03 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409352321 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-12 02:35:12 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409712321 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-12 13:34:17 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 409870721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-13 02:33:16 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 410057921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-14 02:32:04 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 410403521 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-15 04:32:18 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 410777921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-16 02:29:37 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411094721 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-16 10:28:44 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411209921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-17 02:26:49 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411440321 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-17 06:26:37 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411497921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-17 09:26:24 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411541121 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 02:24:43 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411785921 | 1.408808 | 3.704155e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.408808 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 05:24:26 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411829121 | 1.419478 | 3.732210e+06 | 2.629283e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.007574 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 08:24:15 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411872321 | 1.419478 | 3.670448e+06 | 2.585772e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 09:24:08 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411886721 | 1.419478 | 3.663123e+06 | 2.580612e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 12:23:54 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411929921 | 1.419478 | 3.637933e+06 | 2.562866e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 13:23:45 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411944321 | 1.419478 | 3.628198e+06 | 2.556008e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 14:23:30 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411958721 | 1.419478 | 3.663035e+06 | 2.580550e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 15:23:18 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411973121 | 1.419478 | 3.623032e+06 | 2.552369e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 16:23:07 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 411987521 | 1.419478 | 3.730555e+06 | 2.628117e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 19:22:38 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412030721 | 1.419478 | 3.744273e+06 | 2.637781e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 20:22:29 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412045121 | 1.419478 | 3.748137e+06 | 2.640503e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-18 23:22:18 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412088321 | 1.419478 | 3.766870e+06 | 2.653700e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-19 02:22:14 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412131521 | 1.419478 | 3.803081e+06 | 2.679210e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-19 11:21:25 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412261121 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-20 01:21:15 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412462721 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-21 02:21:06 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 412822721 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False | |
| 2025-12-22 02:20:30 | 42161-0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 42161 | 0x75288264fdfea8ce68e6d852696ab1ce2f3e5004 | 413168321 | 1.419478 | 3.804730e+06 | 2.680372e+06 | NaN | NaN | HYPE++ | 1243 | D2 Finance | 1.419478 | 0.000000 | 2.158676e+06 | 43173.528257 | False |
[7]:
import logging
import os
import pickle
from pathlib import Path
from pprint import pprint
import pandas as pd
from IPython.display import display
from eth_defi.research.wrangle_vault_prices import assign_unique_names
try:
import hypersync
except ImportError as e:
raise ImportError("Install the library with optional HyperSync dependency to use this module") from e
logger = logging.getLogger(__name__)
def main():
setup_console_logging(
default_log_level=os.environ.get("LOG_LEVEL", "info"),
)
frequency = "1h"
output_folder = Path("~/.tradingstrategy/vaults").expanduser()
reader_state_db = output_folder / f"vault-reader-state-{frequency}.pickle"
vault_id = os.environ.get("VAULT_ID")
assert vault_id is not None, "Set VAULT_ID environment variable"
spec = VaultSpec.parse_string(vault_id)
print("All ok")
if __name__ == "__main__":
main()
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[7], line 41
37 print("All ok")
40 if __name__ == "__main__":
---> 41 main()
Cell In[7], line 32, in main()
29 reader_state_db = output_folder / f"vault-reader-state-{frequency}.pickle"
31 vault_id = os.environ.get("VAULT_ID")
---> 32 assert vault_id is not None, "Set VAULT_ID environment variable"
33 spec = VaultSpec.parse_string(vault_id)
37 print("All ok")
AssertionError: Set VAULT_ID environment variable