Funding on one clock, in one unit.
Hyperliquid settles funding every hour. Many venues settle every eight hours, and some every four. We record every print as published, then add an hourly rate, an annualized rate and an as-of grid so funding and open interest from different venues line up row for row.
Eight venues, eight schedules, one grid.
Every venue publishes funding on its own schedule and in its own unit: a rate per hour, a rate per eight hours, a predicted rate that updates every few seconds. Comparing them raw means comparing different things.
Each funding row in our archive carries the venue's original rate and interval, plus rate_1h and rate_ann. On top of that, the hourly grid gives one row per venue per UTC hour, built only from prints we had captured by that hour.
From a venue rate to an annual rate.
We keep the raw number untouched and add two columns next to it. Annualization is simple, without compounding, so it can be reversed exactly.
# per funding print interval_h = interval_s / 3600 rate_1h = rate / interval_h rate_ann = rate_1h × 24 × 365 # = rate_1h × 8,760 # example: an 8h venue prints 0.0100% rate_1h = 0.0100% / 8 = 0.00125% rate_ann = 0.00125% × 8,760 = 10.95%
interval_s comes from the venue's contract specs as they stood at that print, versioned in instruments. Venues change intervals per symbol, sometimes moving a contract from 8h to 4h during volatile markets, and the normalized columns follow the change on the print where it happened.
Where a venue accrues perpetual funding continuously and quotes an 8h reference rate, we record the reference rate with interval_s = 28800, and predicted rows carry the funding accrued so far in the current 8h reference period in accrual.
| Venue | Interval | rate | rate_1h | rate_ann |
|---|---|---|---|---|
| Hyperliquid | 1h | 0.0013% | 0.00130% | 11.39% |
| Venue A | 8h | 0.0100% | 0.00125% | 10.95% |
| Venue B | 8h | 0.0093% | 0.00116% | 10.18% |
| Venue C | 8h | 0.0082% | 0.00103% | 8.98% |
| Venue D | 8h ref | 0.0061% | 0.00076% | 6.68% |
| Venue E | 8h | 0.0074% | 0.00093% | 8.10% |
| Venue F | 8h | 0.0118% | 0.00148% | 12.92% |
| Venue G | 1h | 0.00094% | 0.00094% | 8.23% |
How the hourly grid is built.
The grid is meant for backtests, so it never uses information that arrived after the grid time.
ts_exchange, ts_capture and the settlement time ts_funding. Predicted rates are kept at the venue's update cadence.rate_1h and rate_ann are computed per row from the interval in force at that moment.ts_capture before the hour. An 8h venue therefore shows the same settled rate for eight consecutive hours, and a predicted rate that moves within them.stale = true and the age of the last print in age_s. Nothing is interpolated.Funding and open interest columns.
Both tables carry the common columns. Rates are decimal fractions (0.0001 = 0.01%), stored as decimal128 like every other number.
FUNDING
| Column | Type | Meaning |
|---|---|---|
kind | string | "settled" or "predicted". |
rate | decimal | Rate per interval, as published. |
interval_s | int64 | Funding interval in seconds (3600, 14400, 28800). |
rate_1h | decimal | Rate per hour. |
rate_ann | decimal | rate_1h × 8,760. |
ts_funding | int64 | Settlement time the rate applies to, ns. |
accrual | decimal | On predicted rows, funding accrued so far in the interval, where published. On settled rows, equal to rate. |
mark_price index_price | decimal | Reference prices at the print, where published with it. |
OPEN_INTEREST
| Column | Type | Meaning |
|---|---|---|
oi_contracts | decimal | Open interest in contracts. |
oi_base | decimal | Open interest in base asset (contracts × contract size). |
oi_notional_usd | decimal | Base amount × index price. |
HOURLY GRID (ADDED COLUMNS)
| Column | Type | Meaning |
|---|---|---|
ts_grid | int64 | UTC hour boundary, ns. |
predicted_rate_1h | decimal | Last predicted rate per hour before ts_grid. |
stale | bool | True if a capture gap covered the hour. |
age_s | int64 | Seconds since the last print used. |
Eight funding venues planned.
Hyperliquid funding ships in Phase 1. Every other venue below is planned, subject to a data agreement with the exchange. For Kraken and Bitfinex perpetuals, trades and depth are planned and funding is not planned at launch.
Full coverage matrixA cross-venue carry table in one call.
Ask for the hourly grid and get one row per venue per hour, ready to pivot.
from fdc import Client
fdc = Client(api_key="fdc_live_...")
grid = fdc.funding(
venues=["hyperliquid", "binance", "bybit", "okx"],
symbol="BTC-PERP",
start="2027-07-01",
end="2027-10-01",
grid="1h", # omit for raw prints
).to_pandas()
carry = grid.pivot(index="ts_grid", columns="venue", values="rate_ann")
spread = carry["hyperliquid"] - carry["binance"] # annualized, same unitcurl -G https://api.financedatacloud.com/v1/funding \
-H "Authorization: Bearer fdc_live_..." \
-d venue=hyperliquid -d symbol=BTC-PERP \
-d start=2027-07-01 -d end=2027-07-02 -d grid=1h// predicted and settled rates as they print
{"op":"subscribe","channel":"funding","venue":"hyperliquid","symbol":"BTC-PERP"}Read next.
Carry data that lines up.
Pre-register for Hyperliquid funding history from November 2025, and further venues as they go live under data agreements.
EARLY ACCESS · PRE-SALE PRICINGPre-register for early access → DANIEL GARCIA · CEO & FOUNDERdaniel@financedatacloud.com →