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.

Hyperliquidity for traders

Practitioner

Hyperliquidity is a protocol-run ladder of post-only orders 0.3 per cent apart, refreshed at most every 3 seconds, that gives a new token two-sided liquidity without a market maker.

A new token has no outside price to quote from. HLP quotes perps off centralised exchange prices; HIP-2 gives spot tokens a ladder that needs none.

The ladder runs in HyperCore’s block logic under the same consensus as the order book, with no operator. Modelled on an automated market maker’s price range, it quotes on the ordinary book, where anyone can quote alongside, inside or ahead of it.

Say the lowest ask sits at 1.000 USDC and each level holds 1,000 tokens. You buy 3,000:

  • You fill 1,000 at 1.000, 1,000 at 1.003 and 1,000 at about 1.006, for about 3,009 USDC.
  • At the next update, 3 seconds or more later, those levels flip to bids at the same prices: if the price falls, Hyperliquidity buys back down the ladder.

The deployer sets them at launch: the spot pair, startPx, nOrders, a size per order orderSz, and nSeededLevels.

Price grid. Each level is 0.3 per cent above the one below:

px_0 = startPx
px_i = round(px_(i-1) * 1.003)

Inventory. The token’s Hyperliquidity allocation sits as asks; the lowest nSeededLevels levels start as deployer-funded bids instead (sizes in the table below).

Update. On the first block at least 3 seconds after the last update, every completely filled level is reposted at full size on the other side, restoring a one-level spread of 0.3 per cent. The spread holds only where there is inventory on both sides.

AT LAUNCH: TWO SEEDED BIDS, ASKS ABOVE px0 bid px1 bid px2 ask px3 ask px4 ask px5 ask px6 ask px7 ask A BUYER TAKES PX2 AND PX3; NEXT UPDATE, 3 S OR MORE LATER px0 bid px1 bid px2 bid, flipped px3 bid, flipped px4 ask px5 ask px6 ask px7 ask Each level is 0.3% above the one below it. After the update the best bid is px3 and the best ask px4: one level apart.
Filled levels flip side at the next update, so the ladder quotes both ways where it holds inventory.

Post-only. A placement that would cross a resting order is rejected, leaving that level empty for the update; the docs guarantee the orders only “to the extent that ALO orders are not rejected”.

Finite range. The ladder runs from px_0 to px_(nOrders - 1): no asks above, no bids below, and depth inside set by how much inventory has changed hands.

Parameter Value
Quote asset USDC only
Level spacing 0.3% (px_i = round(px_(i-1) * 1.003))
Refresh first block at least 3 s after the previous update
Size per level orderSz, set by the deployer; one partial level for the remainder
Seeded bid levels nSeededLevels, each funded with px * sz USDC by the deployer
Price after walking k levels px * 1.003^k, before rounding
100 levels about 35%
Doubling about 232 levels
100 times the start price about 1,538 levels

Official frontend checks, client-side and not necessarily protocol rules:

Frontend check Limit
Number of orders at least 10
Hyperliquidity share of total supply more than 1%
Market cap at the start price under 10M USDC
Market cap at the top of the ladder between 1B and 100B USDC
First order at least 1 USDC

Together they force a ladder spanning at least 100 times in price, about 1,538 levels.

  • A market buy walks up level by level, so size it against the ladder (order types).
  • Quote inside the 0.3 per cent gap to sit ahead of Hyperliquidity; its post-only orders won’t cross yours.
  • It moves only on trades, so a gap to another venue lasts until someone arbitrages it.
  • Check the seeded bids, the only protocol bids at launch: seededUsdc in tokenDetails (native tokens).

One action registers it:

{
"type": "spotDeploy",
"registerHyperliquidity": { "spot": 1, "startPx": "0.05", "orderSz": "10000", "nOrders": 1600, "nSeededLevels": 2 }
}
  • spot is the pair index, not the token index; orderSz is in tokens, not wei.
  • A token deployed with noHyperliquidity must send nOrders: 0.
  • spotDeployState reports hyperliquidityGenesisBalance during deployment; tokenDetails reports seededUsdc afterwards.
  • In l2Book the ladder’s levels carry px, sz and an order count n, with no owner.
  • Rounding makes levels not exactly 1.003 apart: compute them with the recursion, not a power.
  • Only completely filled levels flip; a partly filled level stays on its side.
  • Bridged assets usually launch without Hyperliquidity, so their books depend on other traders.

For the standard, see HIP-2; for choosing parameters, see Deploying a spot token.