Skip to content
TradePerpetuals9 pages
What a perpetual future isFoundationA perpetual future is a contract on an asset's price that never expires, kept close to that price by an hourly payment between longs and shorts.Contract specificationsPractitionerEvery Hyperliquid perp is a linear contract on 1 unit of its asset, defined by size decimals, maximum leverage, a margin table and a margin mode.FundingPractitionerFunding is an hourly payment between longs and shorts, set by how far the perp trades from the oracle price, that ties a contract with no expiry to its index.Margin: cross, isolated and margin tiersPractitionerMargin is the collateral behind a perp: initial margin to open, maintenance margin to stay open, shared in cross mode or ring-fenced in isolated mode.Leverage and liquidationPractitionerBelow maintenance margin, positions go to the order book as market orders; below two thirds of it, the liquidator vault takes them over.Auto-deleveragingExpertWhen an account goes below zero, auto-deleveraging closes the most profitable, most leveraged opposing positions at the previous mark price, leaving no bad debt.Hyperps and index perpetualsPractitionerHyperps fund against a moving average of their own mark price until spot trading exists; index perps track a formula the validators publish.AMM-priced perpetualsExpertSome perps price off a Uniswap V2 or V3 pool instead of exchange spot prices, and are isolated only, with margin locked in until the position closes.DelistingPractitionerWhen validators vote to delist a perp, positions settle at the 1-hour time-weighted oracle price before the vote and no new orders are accepted.

Funding

Practitioner

Funding is an hourly payment between longs and shorts, set by how far the perp trades from the oracle price, that ties a contract with no expiry to its index.

A perp never settles, so for as long as you hold one, you pay or receive funding every hour. It’s peer to peer, with no protocol fee (what a perpetual future is). For consistency with centralised exchanges, a fixed interest component is added: per the docs, the cost of borrowing dollars minus that of the crypto asset.

The docs’ example: you hold 10 contracts long, the oracle price is 10,000 and the impact bid sits at 10,100 all hour.

premium = (10,100 - 10,000) / 10,000 = 0.01 (1%)
clamp(I - P) = clamp(-0.0099, -0.0005, 0.0005) = -0.0005
F (8-hour) = 0.01 - 0.0005 = 0.0095 (0.95%)
hourly rate = 0.0095 / 8 = 0.0011875 (0.11875%)
payment, 10 long = 10 * 10,000 * 0.0011875 = 118.75 USDC paid to shorts

The docs stop at F; the last two lines apply their own hourly and payment rules.

The formula gives an 8-hour rate, paid hourly at one eighth.

  1. Measure the premium every 5 seconds. The impact bid and ask are the average prices for selling and buying the impact notional (table below) against the book. The premium is the part of that spread outside the oracle price:

    impact_price_difference = max(impact_bid_px - oracle_px, 0) - max(oracle_px - impact_ask_px, 0)
    premium = impact_price_difference / oracle_px

    It’s 0 whenever the oracle price sits between impact bid and ask.

  2. Average the samples over the hour into P.

  3. Add the interest rate I (0.01 per cent per 8 hours), clamped:

    F = P + clamp(I - P, -0.0005, 0.0005)
  4. Pay F / 8 each hour, capped at 4 per cent an hour for every asset.

  5. Settle position_size * oracle_price * hourly_rate against each position, valued at the oracle price, not the mark price. A positive rate means longs pay shorts.

The dead band: most assets pay the interest rate alone

Section titled “The dead band: most assets pay the interest rate alone”

When P is within 0.05 per cent of I, the clamp cancels P and F = I exactly (the band in the table). Outside it, F is the premium less 0.05 per cent (above) or plus 0.05 per cent (below).

8-hour funding rate F average premium P F = P F = P + 0.05% F = P - 0.05% dead band: F = 0.01% -0.04% +0.06%
The 8-hour rate against the hour's average premium: inside the band it is the interest component alone. The hourly payment is F / 8.

Hence most assets show the same rate: in a mainnet read on 28 September 2026, 154 of 178 listed, non-delisted assets on the validator-operated dex had funding of exactly 0.0000125. The 4 per cent hourly cap is an 8-hour F of 32 per cent, needing an average premium above 32.05 per cent: a backstop on a vanilla perp, not an operating limit.

What this means for you:

  • At baseline a long pays shorts even with the perp on the oracle price.
  • Other venues paid every 4 or 8 hours in the predictedFundings read below: an hourly rate beside an 8-hour one understates it by a factor of 8.
  • Funding is booked hourly to your balance. In cross it changes account value, and so every cross position’s liquidation price (liquidation).

A HIP-3 dex uses a more responsive premium from the impact mid, with no zero region inside the spread:

premium = 0.5 * (impact_bid_px + impact_ask_px) / oracle_px - 1

The deployer can set three values per asset:

Setting Range Meaning
Funding multiplier 0 to 10 scales the funding rate
Interest rate -0.01 to 0.01, per 8 hours replaces the interest component
Funding clamp 0 to 0.01, per 8 hours; default 0.0003 bounds how far F can move from the average premium towards the interest rate

The default clamp (0.0003) is narrower than the validator-operated 0.0005, so the default HIP-3 dead band is the asset’s interest rate plus or minus 0.03 per cent.

A hyperp’s oracle price is an 8-hour moving average of its own mark price, and each premium sample is 1 per cent of the usual clamped interest and premium formula.

Parameter Value
Formula (8-hour) F = P + clamp(I - P, -0.0005, 0.0005)
Interest rate I 0.01% per 8 hours (0.00125% per hour)
Premium sampling every 5 s, averaged over the hour
Premium, validator-operated (max(impact_bid - oracle, 0) - max(oracle - impact_ask, 0)) / oracle
Premium, HIP-3 0.5 * (impact_bid + impact_ask) / oracle - 1
Impact notional 20,000 USDC for BTC and ETH; 6,000 USDC for all others
Payment interval 1 hour, at F / 8
Cap 4% per hour, independent of asset
Payment position_size * oracle_price * hourly_rate; positive rate, longs pay
Dead band average premium from -0.04% to +0.06% gives F = 0.01% exactly
Annualised, simple hourly rate x 24 x 365
Interest component, annualised 0.00125% x 24 x 365 = 10.95%
HIP-3 multiplier 0 to 10
HIP-3 interest rate -0.01 to 0.01 per 8 hours
HIP-3 clamp 0 to 0.01 per 8 hours, default 0.0003
Fee on funding none; peer to peer

The asset context carries the current rate as an hourly decimal fraction:

{
"funding": "0.0000125",
"premium": "0.00031774",
"impactPxs": ["14.3047", "14.3444"],
"oraclePx": "14.32",
"markPx": "14.3161"
}
Field or request What it gives
funding hourly rate; APR = funding x 24 x 365, in decimal arithmetic
impactPxs [impact_bid, impact_ask]
{"type":"fundingHistory","coin":"ETH","startTime":...} hourly coin, fundingRate, premium, time
userFunding a user’s payments, each a delta with type: "funding", coin, fundingRate, szi, usdc
userFundings (WebSocket) a snapshot, then payments on the hour
perpDexs HIP-3 settings: assetToFundingMultiplier (in the docs); also assetToFundingInterestRate and assetToFundingClamp (mainnet read, 28 September 2026)
setFundingMultipliers, setFundingInterestRates, setFundingClamps deployer actions that write them (operating a perp dex)

Reconcile a payment as usdc = -szi * oraclePx * fundingRate: both docs examples have the predicted signs (on a positive rate a long pays, negative usdc, and a short receives). In the same read, all 210 multiplier entries on 10 HIP-3 dexes were between 0 and 1: 130 at 0.5, 28 at 0 (funding scaled to zero).

Asset contexts carry no next-payment time, so estimate the hour boundary:

const nextFundingMs = Math.ceil(Date.now() / 3_600_000) * 3_600_000;
  • nextFundingTime is only in predictedFundings, per coin and venue beside fundingRate, first perp dex only. One production integration annualises each venue with its fundingIntervalHours, skipping nulls. The mainnet read on 28 September 2026:

    Field Value
    fundingIntervalHours, HlPerp 1, on all 234 coins
    fundingIntervalHours, BinPerp and BybitPerp 4 or 8 for most entries
    Null venue entries 69
    HlPerp nextFundingTime every one on an exact hour
  • premium and funding cover different windows. On 28 September 2026 BTC showed premium -0.00052 beside funding 0.0000125; that premium averaged over the hour would give a negative rate. The docs do not say which window each covers: do not rebuild funding from one premium read.

  • Multiplier and cap order is undocumented: a HIP-3 multiplier may apply before or after the 4 per cent hourly cap.

For how the oracle price is built, see Oracles and mark prices. To trade funding against spot and the borrow rate, see Carry.