← API docs

Most funding rate numbers are wrong by an order of magnitude

Perpetual funding is published by roughly two hundred venues per major coin. Average them the obvious way — one venue, one vote — and a handful of near-empty books printing 9% per eight hours drag the number somewhere it has never been. Below is the same arithmetic run three ways, on live data, recomputed every time this page loads.

The same market, measured three ways

Captured 2026-10-04 19:21:34 UTC from a feed of 25,873 contracts. Liquid venues we read directly: Binance, Bybit, OKX, Hyperliquid.

BTC — 182 contracts publish a funding rate; our number comes from 4 liquid venues

MethodPer 8hAnnualized
Simple average of every venue0.054722%59.92%
Weighted by open interest0.003081%3.37%
What this service returns0.006910%7.57%

The simple average is 7.9× our number. Our number is 2.24× the open-interest-weighted figure. We read the main perpetual on each liquid venue rather than weighting the whole feed, which is the more conservative of the two — and still nowhere near the simple average.

The venues doing the distorting
Venue / contractFunding / 8hOpen interest
Ostium9.5192%$543k
BigONE Futures0.0290%$1.4M
DeriW0.0200%$3k
LeveX (Futures)-0.0194%$24.9M
BigONE Futures0.0181%$827k

ETH — 184 contracts publish a funding rate; our number comes from 4 liquid venues

MethodPer 8hAnnualized
Simple average of every venue0.052127%57.08%
Weighted by open interest0.002901%3.18%
What this service returns0.005220%5.72%

The simple average is 10× our number. Our number lands in the same range as the open-interest-weighted figure — an independent method we do not use, which is the point: the filter is not validated by our own say-so.

The venues doing the distorting
Venue / contractFunding / 8hOpen interest
Ostium9.6449%$1.7M
Globe (Derivatives)-0.3333%$15.5M
PrimeXBT0.0401%$27
HashKey Global (Futures)-0.0398%$3.2M
Nado0.0300%$17.3M

SOL — 129 contracts publish a funding rate; our number comes from 4 liquid venues

MethodPer 8hAnnualized
Simple average of every venue0.082982%90.87%
Weighted by open interest0.007228%7.91%
What this service returns0.009537%10.44%

The simple average is 8.7× our number. Our number lands in the same range as the open-interest-weighted figure — an independent method we do not use, which is the point: the filter is not validated by our own say-so.

The venues doing the distorting
Venue / contractFunding / 8hOpen interest
Ostium10.0093%$101k
Nado0.0300%$4.3M
BloFin (Futures)0.0220%$57.5M
BigONE Futures0.0220%$7k
IO Trader0.0167%$4.6M

Why the naive number survives

Because it looks reasonable in isolation. Nobody reads “funding is 0.066% per 8h” and flinches. Annualize it and it becomes a claim that leveraged longs are paying 60% a year to hold BTC — which would be the trade of the decade, and is not happening. The error only becomes visible once the number is put in units a human can judge.

This is not a hypothetical. It is the same failure that made our own alerting fire constantly until we fixed it: a rate averaged across every venue that publishes one, including books with a few hundred thousand dollars in them.

Check it yourself

One call, no key, no account. The number in the table above is the number this returns — it comes from the same function, not from a copy kept in sync by hand.

curl -sX POST https://asistent-crypto.vercel.app/api/mcp \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_derivatives","arguments":{"symbol":"BTC"}}}'

Then compare it against any single venue’s own published funding rate. They will agree. That is the whole test.

What else this service does with the same discipline

Funding annualized rather than left as a decimal nobody can judge. Open interest summed across venues in dollars, not coins. Options-implied volatility with its percentile, because 35% means nothing on its own. Order book depth walked at your size, so you know what an entry actually costs. And a single call that turns all of it into a stance, with the conditions that would invalidate it.

It speaks the Model Context Protocol, so any MCP client can use it directly. The data tools are free and need no key. API docs and pricing →