An MCP server that hands an agent a row of candles is a JSON wrapper with extra steps. The interesting question is whether the Hyperliquid cross-section — every coin's funding, positioning, open interest and order flow, on one completed bar — carries anything a machine can actually act on after the lag it takes to publish. We measured it two ways, and the answer splits into three clean classes. Only one of them survives a delay, and it is not the one that looks like "fast flow."
Three classes, not one
Cross-sectional rank IC, univariate, computed on the full Hyperliquid universe. "Retention" is how much of the forward IC is left after entry is moved one hour later — the question a client actually cares about: is the signal still there when I can trade it?
| Class | Examples | 1h IC | Retention | Read |
|---|---|---|---|---|
| No signal | net_taker_open_1h, taker_flip_net, pos_aggressor_delta_1h | −0.001 … −0.003 | — | Not a decay story — there is no edge to lose. The order-flow level hypothesis, as measured, is unsupported. |
| Same-bar microstructure | taker_imbalance, close_vwap_dev, close_in_range, oi_change_pct_1h, buysell_imbalance, d_cvd | −0.011 … −0.040 | 0.03–0.21 | Real 1h IC, but a large backward placebo — the bar's own move leaking into the label. Contemporaneous; after any entry delay it is gone. |
| Durable state | log_volume, log_open_interest, funding_rate (+ windowed funding_paid_7d / funding_rate_7d_avg), whale_long_account_share, whale_net_position, account_ls_ratio, d_open_interest | −0.059 … +0.040 (24h) | 0.89–1.01 | The product. IC strengthens with horizon and survives the delay — hourly grain, 24-hour horizon. |
The fast class doesn't "decay" like a slow alpha. It's contemporaneous: on the
13-month sample close_vwap_dev posts a forward IC of
−0.029 but a backward IC of +0.049 — the "edge" is the bar's own move, gone to
−0.0008 after a one-hour delay. buysell_imbalance and d_cvd are the same shape. A half-life curve fitted to
the forward IC flatters this signal, because the forward window overlaps the mechanism that
produced it. The delay test is the instrument that doesn't lie. The cross-section those
numbers are measured on is the one the playground ranks in your browser — one free key, no client to install.
One factor sits awkwardly in the middle: mom_1h (ret_1h)
is a real short-term reversal that survives delay — IC −0.013 at 24h with t −7.9 after the
entry is moved — but it's small and likely below round-trip cost. Real, durable, and not worth
the spread.
What actually survives
Here is the durable class at its proper horizon, from the 13-month sample. These are 24-hour forward ICs, and every one keeps essentially all of its edge after a one-hour entry delay.
| Factor | 24h forward IC | t | What it is |
|---|---|---|---|
log_volume | −0.059 | −27.8 | size / illiquidity |
cum_funding | +0.040 | 26.0 | funding carry (see note below) |
log_open_interest | −0.047 | −22.5 | size / illiquidity |
whale_long_account_share | +0.016 | 14.6 | positioning |
funding_rate | +0.014 | 12.2 | funding carry |
account_ls_ratio | +0.010 | 6.1 | positioning |
whale_net_position | +0.007 | 6.7 | positioning |
d_open_interest | +0.005 | 6.3 | the small OI build |
Two honest caveats on that table, before anyone over-reads it. log_volume and log_open_interest have the largest IC but are a size/illiquidity bias, not a harvestable edge — the trade that collects them
pays for it in costs and liquidity risk. And cum_funding, the strongest carry number in the table,
is a muddled size+carry mix, not clean carry: its rank correlation with the
funding rate is only +0.16 (daily) / +0.25 (hourly), while its correlation with open-interest
size is +0.325 — it's partly a size/listing-age proxy. Use the windowed fields (funding_paid_7d, funding_rate_7d_avg) for a carry signal instead.
Every field the intelligence layer can rank, screen or query — name, unit, grain and signal class — is defined in the field dictionary.
The lag is the whole story
Here's the part that usually gets glossed over. The published hourly cross-section is not "the last hour." The raw trade tape is readable within minutes of the hour closing — but the cross-section is built from the settled funding and position snapshots, which the venue only finalises about an hour after the hour, and assembling those snapshots into the per-hour cross-section adds roughly another hour and a half on top. So a 1h row is roughly 1.5–2.5 hours behind the bar it describes, and the query tools return the last completed hour, one behind by design. The study's delay test moves entry only one hour, which is the optimistic case. For the microstructure class that's fatal: 79–97% of the IC is already gone at one hour, and at two-plus it's effectively zero. For the state class it's irrelevant, because retention is ~1 over 24h. Same grain, opposite verdict — which is exactly why the hourly feed should be read as state, not timing.
What I actually run on it
This isn't a thought experiment — I run a small beta-neutral book over this cross-section as my own dogfood. It rebalances once per completed daily bar, long and short the durable factors, kept dollar-neutral, beta-neutral and cluster-neutral. The mechanics are deliberately boring and honest:
- Rank, don't level. Scores are rank-normalised, so a saturated factor (a wall of ties) collapses to one coefficient instead of a fabricated gradient.
- Neutrality is a projection, not a hope. The weights are the minimum-norm projection of the signal onto dollar + beta + cluster neutrality, so the book holds as much of the signal as the constraints allow.
- The vol target only ever scales down. It's the risk dial, never a way to force bigger legs.
- Refuse rather than paper over. Fewer than three legs (a two-leg book can't be dollar- and beta-neutral at once — it's a geometric fact, not a policy), or a hedge that forces a leg against its own signal, both produce an explicit refusal. A refusal is a valid output.
- The one hourly input is a ±1 state flag at weight 0.03.
pnl_imbalancebreaks ties; it cannot create a view, and a continuous factor always carries the ordering.
And two findings I'd want you to have if you build the same thing. First, the funding sign is easy to get backwards: mild elevation is a continuation signal — you get paid to be long the side that's paying — and only the extreme tail (funding past ~25% annualised) starts to look like a fade candidate. "Funding up = fade" is wrong. Second, I tested a mean-reversion leg and closed it: over 13 months it didn't clear the bar, so the book is continuation-only. There is no fade mode, and I'm not hiding one behind a "regime" switch.
It's profitable right now. I want to be precise about what that means: it's a first-person observation over a single market regime, not a validated strategy, and it says nothing about what you would make. I'm telling you what I run and what I've found, not selling you a signal — there isn't one to sell.
The caveats, stated plainly
- Every IC here is gross. No fees, funding, slippage or borrow. The best 1h spreads are inside round-trip cost; the 24h state factors survive better on turnover, but the number you'd actually keep is lower than the number printed.
- One regime. The hourly study is 484 hours (18 days, 293 coins, one regime,
Sep–Oct 2026). The 13-month sample is 9,057 hours and 207 coins, but its positioning
features are computed on only 5 of 7 months (schema drift), and its t-statistics are the
naive
ICIR·√n, not block-bootstrap. - Survivorship. The universe is currently-listed coins; delisted markets are not in the sample.
- Coins move together. Cross-sectional dependence means the effective sample is closer to the number of hours than the number of rows.
What an agent can and cannot do with it
| An agent can | An agent cannot |
|---|---|
| Rank and screen the daily cross-section on durable state — carry, positioning, size/liquidity — with percentiles and z-scores computed where the data lives. | Time entries off the hourly grain. The fast class is gone by the time it's published. |
| Measure funding divergence, pull per-coin series, read the live market, and feed a daily-rebalanced neutral book — the thing I run. | Get a forecast, a "buy this" signal, or a get-rich-quick edge. None of those ship, because the data doesn't support them. |
| Separate state from timing — treat the hourly feed as a state and disconfirmation feed, and the daily feed as the tradeable ordering. | Harvest the size/illiquidity bias as an edge — costs and liquidity risk eat it. |
That split — durable state, not fast flow — is the whole design of the intelligence layer. It ranks the cross-section, screens on the durable factors, and names the completed grain every answer covers, so an agent can't quietly mistake the newest published bar for a real-time one. Get a key and ask it yourself — a free key ranks every market over the trailing week.