Hyperliquid Funding Rates: How They Work and its History

Learn how Hyperliquid funding rates work: hourly payments, who pays whom, the 4% cap, and how to check live rates and pull funding rate history by API.

HydromancerTeam
Hyperliquid Funding Rates: How They Work and its History

Hyperliquid settles funding every hour, where many exchanges settle it every eight hours. Hold a perp position for a day and that's 24 small payments, each one either taken from your account or paid into it. Funding is the payment between longs and shorts that keeps a perp's price close to the spot price, and over days it can add up to more than your trading fees.

How funding rate works on Hyperliquid

If you've traded perps on a centralized exchange (CEX), funding works on the same idea. The details on Hyperliquid change how you trade and build around it:

Funding on Hyperliquid Funding on many CEXs
How often it's paidEvery hourOften every 8 hours
How it's setA public formula: premium
plus a fixed interest rate
Each exchange's own method
Cap4% an hour, for
every asset
Varies by exchange
and market
Who can see the paymentsEvery payment is
on-chain and public
Usually only your
own account's

Hourly funding means smaller, more frequent payments for the same total rate.

Below, we start with how the rate is set, including why so many markets show 0.00125%, then check the current rate, pull its history and find your own payments.

Hyperliquid funding rate at a glance

These figures describe Hyperliquid's main markets. HIP-3 deployers can change some of them for their own markets (see below).

How oftenEvery hour
Who paysPositive rate: longs pay shorts. Negative rate: shorts pay longs
Usual rate0.00125% an hour (0.01% per 8 hours)
Maximum4% an hour, for every asset
What you payPosition size × oracle price × hourly rate
Fees on fundingNone. It goes straight between traders

Source: Hyperliquid docs: Funding.

How Hyperliquid funding rate is calculated

The rate has two parts:

  • Premium: how far the perp trades above or below its oracle price. It's sampled every 5 seconds and averaged over the hour. The oracle price is a weighted median of spot prices on major exchanges.
  • Interest: a fixed 0.01% per 8 hours.

Together they make an 8-hour rate, and one eighth of it is charged each hour:

code
8-hour rate    = premium + clamp(0.01% − premium, −0.05%, +0.05%)
hourly rate    = 8-hour rate ÷ 8, capped at ±4%
payment (USDC) = position size × oracle price × hourly rate

Here's the docs' example. When the impact bid is 1% above the oracle price, the premium is 1%. The clamp term hits its limit of −0.05%, so the 8-hour rate is 0.95%.

Why so many markets show 0.00125%

While the hour's average premium stays between −0.04% and +0.06%, the clamp cancels it out. Only the interest part is left: 0.01% per 8 hours, or 0.00125% an hour. So a funding table full of 0.0013% is normal. The rate only moves when a market leans hard one way.

HIP-3 markets can differ

Markets listed by outside deployers under HIP-3 can set their own funding multiplier, interest rate and clamp for each asset. Their rates can sit well away from the main markets'. In the API, you name them with the deployer's prefix, such as xyz:GOLD.

Every snippet is short, read-only Python that needs only requests; the Hydromancer one also needs HYDROMANCER_API_KEY set. Rates shown are from our test runs.

Step 1: Check the current funding rate

In the Hyperliquid app, each market shows Funding / Countdown above the chart: the current hourly rate and the time to the next payment. The Funding tab next to the chart plots its history.

To read every market at once, one API request returns the current rate for every perp on Hyperliquid's main DEX (add "dex" for a HIP-3 DEX). No key is needed:

code
import requests

meta, ctxs = requests.post(
    "https://api.hyperliquid.xyz/info",
    json={"type": "metaAndAssetCtxs"},
).json()

for asset, ctx in zip(meta["universe"], ctxs):
    if asset["name"] in ("BTC", "ETH", "HYPE"):
        rate = float(ctx["funding"])
        yearly = rate * 24 * 365
        print(f"{asset['name']:4} {rate * 100:+.5f}% per hour"
              f"  (about {yearly * 100:+.1f}% a year)")
code
BTC  +0.00125% per hour  (about +11.0% a year)
ETH  +0.00125% per hour  (about +11.0% a year)
HYPE +0.00125% per hour  (about +11.0% a year)

The funding field is the estimate for the next payment, and it updates during the hour. The yearly figure is the hourly rate × 24 × 365, a quick way to compare, not a return.

Step 2: Get Hyperliquid funding rate history

To see how a market's funding has behaved, fundingHistory returns one coin's hourly rates, oldest first. How far back it goes depends on the coin; BTC's goes back to May 2023. A week of BTC takes one call:

code
import time
import requests

# one week ago, in milliseconds
start = int(time.time() * 1000) - 7 * 86_400_000

rows = requests.post(
    "https://api.hyperliquid.xyz/info",
    json={"type": "fundingHistory", "coin": "BTC", "startTime": start},
).json()
print(len(rows), "hourly rates. Latest:", rows[-1])
code
168 hourly rates. Latest: {'coin': 'BTC', 'fundingRate': '0.0000125', 'premium': '-0.0003637475', 'time': 1792940400022}

Each call returns up to 500 rows. For a longer window, call again from the last row's time plus 1 millisecond. Here are 90 days of BTC, pulled that way:

BTC hourly funding rate on Hyperliquid over 90 days. Most hours sit at the 0.00125% base rate, with short spikes up to about 0.009% and dips just below zero.

The flat line at 0.00125% is the base rate from the formula above. BTC sat there in most hours, and longs paid shorts in 91% of them. Each row also carries the hour's average premium, which shows which way the market leaned.

What to know when you pull history:

  • 500 rows is about 21 days of one coin. Ask for more in one call and you get the first 500 hours of your window, so page forward.
  • Mind the rate limit. A full page costs 45 of the 1,200 request weight each IP gets per minute. That's still about 26 pages a minute. See Hyperliquid rate limits.
  • Older rows used older rules. Treat 2023 rows as what was paid, not something to recalculate with the current formula.

Step 3: See your own funding payments

Your payments live on your account, and two requests cover them. Their signs are opposite, which catches people out:

Request What it gives you Positive means
userFundingYour funding payments:
coin, USDC amount,
position size, rate
You received funding
clearinghouseStatecumFunding for each
open position: since
open, and all time
The position paid funding

userFunding returns up to 500 rows per call, and older payments can come back grouped by day. All of an account's payments for one hour share a timestamp, so restart each page at the last row's time and skip rows you already have. Our Hyperliquid API guide covers info requests in general.

Funding payments across all of Hyperliquid

Steps 1 to 3 use Hyperliquid's own API, and that's enough for a trader checking their own positions. Dashboards, risk tools and apps that report net PnL need funding across many accounts or every market:

What you need Without Hydromancer (Hyperliquid's API only) With Hydromancer's API
Every market's rate when funding is appliedmetaAndAssetCtxs
per DEX, or
activeAssetCtx
per coin
fundingRates :
every market,
HIP-3 included,
pushed once an
hour
Every funding payment on the exchangeuserFunding or
the userFundings
subscription,
one account at a
time
fundingPayments
: every payment
of the latest
hour, for every
account and
market
Funding for your app's usersuserFunding
for each user
builderApprovedFundingByTime
: funding for
users while they
had your builder
code approved
One coin's rate historyfundingHistory ,
free (BTC back
to May 2023)
The same: use
Hyperliquid's
fundingHistory

Example: funding across the whole exchange

Without Hydromancer: one request per account. One busy account alone had 177 payments in an hour:

code
import time
import requests

start = int(time.time() * 1000) - 3_600_000  # the last hour

rows = requests.post(
    "https://api.hyperliquid.xyz/info",
    json={"type": "userFunding", "user": ACCOUNT, "startTime": start},
).json()
print(len(rows), "funding payments in the last hour, for one account")
code
177 funding payments in the last hour, for one account

With Hydromancer: one request tells you how many payments the whole exchange made in the latest hour, and fundingPayments then returns them all in one snapshot:

code
import os
import requests

latest = requests.post(
    "https://api.hydromancer.xyz/info",
    json={"type": "fundingPaymentTimestamp"},
    headers={"Authorization": f"Bearer {os.environ['HYDROMANCER_API_KEY']}"},
).json()
print("Funding payments in the latest hour, across every account and market:",
      f"{latest['count']:,}")
code
Funding payments in the latest hour, across every account and market: 424,763

ACCOUNT here is one of HLP's strategy vaults, 0x010461c14e146ac35fe42271bdc1134ee31c703a. To build the second picture on Hyperliquid's API alone, you'd poll userFunding for every account, every hour.

For one coin's history or your own payments, Hyperliquid's free API is all you need. Hydromancer is for when you need funding for many accounts or markets, as soon as it's applied.

Funding rate arbitrage: what to know first

Funding moves money from one side of a market to the other. A trader who is short the perp and long the same asset collects a positive rate while staying roughly flat on price. On Hyperliquid, the long side can be a spot market where one exists, such as HYPE.

The usual rate works out at about 11% a year on the perp's notional value, before costs. Before building on that:

  • The rate changes every hour and can flip sign. Past hours aren't a promise.
  • The 4% cap is a ceiling, not a guard. In a squeeze, the perp leg can pay up to 4% of its notional in one hour.
  • Fees come off both legs, on the way in and out. See Hyperliquid fees.
  • The perp leg can still be liquidated. The spot leg hedges the price, not the margin.

This explains how the mechanism works. It isn't financial advice.

FAQ

What is the current funding rate on Hyperliquid?

Each market shows it as Funding / Countdown above the chart in the app. By API, metaAndAssetCtxs returns the current hourly rate for every perp on a DEX. Many main markets sit at the 0.00125% base rate.

How much is the funding rate on Hyperliquid?

The base rate is 0.00125% an hour, about 11% a year on a position's notional. It moves when a market's premium leaves a narrow band, and it can never exceed 4% an hour.

Which coin has the highest funding rate on Hyperliquid?

It changes every hour. Sort the funding field from metaAndAssetCtxs to rank a DEX's perps by their current rate, and repeat for each DEX to cover all of Hyperliquid.

Is the Hyperliquid funding rate per hour or per 8 hours?

Both. The formula gives an 8-hour rate, and one eighth of it is paid every hour. The rate in the app's market header and in the API is hourly.

What are the fees for Hyperliquid?

Funding itself carries no fee; it goes straight between traders. Trading fees are separate and depend on your volume tier. Our Hyperliquid fees guide covers them.

Who receives Hyperliquid funding payments?

Traders on the other side. When the rate is positive, shorts receive it from longs. When it's negative, longs receive it from shorts.

Next steps