A perpetual future never expires, so nothing forces it to converge on spot. Instead it pays funding — an hourly cash transfer between longs and shorts. These two charts are the price of bitcoin, and the price of holding bitcoin synthetically.
loading…
Both series are in basis points per hour — one axis, one unit. Positive premium means the perp trades above spot and longs are crowded.
The grey corridor is the part almost nobody draws, and it explains the shape of everything else. Hyperliquid sets funding as
funding = premium + clamp(baseline − premium, ±5bp)
Work the algebra. Whenever the premium sits within ±5bp of the baseline, the two premium terms cancel exactly and funding equals the baseline — — of all hours on record. Inside that corridor, funding is completely blind to the premium. There is no restoring force. The perp can drift away from spot and nothing pulls it back, because unlike a dated future there is no expiry to force convergence.
So the orange line is flat as a table until the blue line escapes the grey band — and then it moves. That is the entire mechanism, and it is why the premium wanders as freely as it does.
No. It is worth being blunt, because funding rates are sold as a signal constantly. Correlation of premium against log return, over — aligned hours:
| window | trailing return | forward return |
|---|
Premium tracks the integral of past returns over several days — positioning that accumulated while price ground in one direction. It carries essentially nothing about the future. It tells you where the crowd is, not where price is going.
Funding is often described as structurally positive, and over the full record it is: longs paid in — of hours, for — a year. But the average hides a total inversion of character.
| year | hours | mean premium | funding paid | annualised | premium > 0 |
|---|
2024 was a crowded-long market — the perp traded above spot nearly three quarters of the time and longs paid around a quarter of notional a year for the privilege. 2026 is its mirror: the perp sits below spot almost always, and carry has collapsed. Same instrument, same formula, opposite world.
| hour (UTC) | spot close | premium (bp) | funding (bp/hr) | annualised |
|---|
Two public endpoints, no API key, no account. Both send access-control-allow-origin: *, so this page
tops the static history up with a live tail straight from the browser.
| series | source | endpoint | cap per request |
|---|---|---|---|
| BTC-USD spot candles | Coinbase Exchange | /products/BTC-USD/candles | 300 candles |
| perp premium + funding | Hyperliquid | /info · fundingHistory | 500 hours |
Both caps are why scripts/backfill.mjs is mostly pagination. It runs incrementally — a
scheduled workflow refetches only the tail and merges. scripts/analyse.mjs derives every statistic quoted
above into data/stats.json, so the prose cannot drift from the data.
Spot is Coinbase's BTC-USD; Hyperliquid's own oracle is a composite of several venues, so
the premium here is not exactly markPx/oraclePx − 1 at the same instant. The published funding is computed
from a time-weighted average of premium samples taken through the hour, while the premium field is a single
figure — reproducing funding from it gives a median error of — but a tail out to
—. That gap has a visible signature, and it is the best evidence the corridor
story is right: the identity holds — of the time when the premium sits deep
inside the corridor and only — at its edge, because near the boundary the
hidden average crosses where the published figure did not. The clamp and baseline are Hyperliquid's parameters, not universal: other venues
use different widths and 8-hour intervals. And none of this is advice — it is a chart of what a thing has cost.