Wallet-behaviour forecast (monthly factors)
Progold_wallet_factors_1mo monthly scores, one row per (wallet, coin, month)
gold_wallet_factors_1mo is a monthly, address-level Hyperliquid forecast: for every wallet, a model scores next month's realized PnL, profit-per-volume, and taker toxicity (5-minute markout). Tens of thousands of wallets scored per coin per month — a smart-money signal you can't rebuild from public price data.
Three complementary reads on each wallet: whether it makes money at all, whether it makes money per unit of volume traded (skill, not just size), and whether its flow is toxic to be on the other side of.
What you'd use it for: Building smart-money cohorts, filtering toxic counterparties, or adding a wallet-behaviour feature orthogonal to price into your own model.
A non-linear, tree-based forecast: ship it as a feature into your own model, not as a standalone score. Each wallet gets a forecast-rank score and an in-cohort percentile for each target. Out-of-sample it adds ~0.11 IC on next-month PnL and ~0.04 on toxicity, replicated on unseen wallets and coins across a single market regime. It is orthogonal to price — it forecasts wallet behaviour, not coin returns.
Timing · forecast_month (1mo)
`month` is the behaviour window the forecast is built from; `forecast_month` (always month + 1) is the month being predicted. The factor_* scores are knowable at the start of `forecast_month`. There is no look-ahead — the track-record month strictly precedes the forecast month.
BTC wallets scored / month · BTC · sample
Data dictionary
Keys
key / provenance| Column | Type | What it means |
|---|---|---|
coin | string | Which market the wallet's behaviour was measured in. HIP-3 markets carry a deployer prefix. How it's computed: HL coin symbol (HIP-3 prefixed, e.g. xyz:NVDA). |
user | string | The on-chain wallet address being scored. How it's computed: On-chain wallet address. |
month | timestamp[us] | The month whose behaviour the forecast is built from (the wallet's track record window). How it's computed: Feature month (the wallet's behaviour month), UTC. |
forecast_month | timestamp[us] | The month the scores are predicting — always the month after the behaviour month. How it's computed: Month the scores forecast (= month + 1), UTC. |
Forecast scores & percentiles
window starting at timestamp| Column | Type | What it means |
|---|---|---|
factor_pnl_next | float64 | How likely this wallet is to make money next month, as a forecast rank. Higher means the model expects stronger realized PnL — a 'smart money' tilt you can weight toward. How it's computed: LightGBM predicted-rank score for next-month realized PnL (higher = larger forecast). |
factor_pnl_next_pct | float64 | The same PnL forecast expressed as a 0–1 percentile within its coin and month. Threshold it (e.g. top 20%) to define a smart-money cohort. How it's computed: Within-(coin, month) percentile [0,1] of the next-month realized PnL score. |
factor_pnl_per_vol_next | float64 | Forecast rank for next month's profit per unit of volume — skill relative to how much the wallet trades, not just raw size. How it's computed: LightGBM predicted-rank score for next-month PnL-per-volume (higher = larger forecast). |
factor_pnl_per_vol_next_pct | float64 | The PnL-per-volume forecast as a 0–1 in-cohort percentile. How it's computed: Within-(coin, month) percentile [0,1] of the next-month PnL-per-volume score. |
factor_markout_next | float64 | Forecast rank for next month's taker toxicity (5-minute markout): how much the market tends to move against you right after this wallet trades. High means informed, toxic flow — flow you'd rather not be on the other side of. How it's computed: LightGBM predicted-rank score for next-month 5m taker markout (higher = larger forecast). |
factor_markout_next_pct | float64 | The toxicity forecast as a 0–1 in-cohort percentile. How it's computed: Within-(coin, month) percentile [0,1] of the next-month 5m taker markout score. |
Provenance
key / provenance| Column | Type | What it means |
|---|---|---|
model_version | string | Which frozen model version produced this row, so results are reproducible as the model is refit over time. How it's computed: Version of the frozen LightGBM model that produced this row (fit cutoff month). |