Liquidation coverage · HyperEVM
Every liquidation
is a claim
nobody files.
Hyperliquid closes you, the loss is booked, nothing comes back. IRQ files the claim: premium in, payout when the engine closes you — read from L1, settled on-chain.
Vector 0
Bind a cover
Pick an isolated position on the main perp dex. The quote is read from Hyperliquid L1 in the same call that prices it.
Connect a wallet to read your position from L1.
- Mark
- ·
- Liquidation
- ·
- Distance
- ·
- Covered margin
- ·
- Premium
- Max payout
- ·
Premium is paid in USDC and is not refundable. A cover runs to liquidation, close, or expiry.
Vector 1
Your covers
Settlement is permissionless: anyone can settle, and the contract decides from L1 state. Settle a claim before the term ends.
Connect a wallet to list your covers.
Vector 2
Underwrite
Deposit USDC, earn premium flow, absorb claims. Yield is claimable at any time; principal carries a 24-hour notice and stays at risk throughout it.
- Deposited
- ·
- Shares
- Earned (claimable)
- ·
- Notice
- ·
The 10 % reserve is never lent to open covers, so a withdrawal can be partial while covers are live. The remainder stays a live notice.
Vector 3
Stake $IRQ
Stakers take 20 % of premium flow, paid in USDC. No emissions: the only thing a staker earns is money somebody paid for cover.
- Staked
- ·
- Wallet
- ·
- Earned (USDC)
- ·
- Total staked
- ·
No lockup on $IRQ. Rewards stream over a week, which is what makes a flash stake worth nothing rather than a cliff.
Vector 4
Govern
Stakers move the dials. The settlement logic is immutable and unreachable from here — so is the governor seat itself.
- Base premium
- ·
- Utilization bands
- ·
- Coverage ratios
- ·
- Max per position
- ·
- Max per market
- ·
- Reserve (fixed)
- 10.00 %
Nothing proposed yet.
Vector 5
How it settles
The whole protocol rests on one question: can a contract know, with no oracle, the price at which your position dies?
Isolated equity is rawUsd + szi·P. The engine closes the position when that
equity falls to the maintenance requirement |szi|·P·l, where
l = 1 / (2 · maxLeverage). Solving for the price:
liqPx = -rawUsd / ( szi · (1 - l·side) )
Every input is read from a Hyperliquid L1 precompile: szi and
rawUsd from 0x800, maxLeverage from
0x80a, the mark from 0x806.
Checked against eight live isolated positions on 2026-09-09 — BTC, SOL, LIT, PONS, CASHCAT, MEGA, CC — from $5.7k to $28.9M of notional. Eight exact matches against the liquidation price Hyperliquid itself publishes.
- Bind. The contract reads your position and freezes the covered margin, the liquidation price and the term.
- Price. Premium is a pure function of distance, term and pool utilization. No maker on the other side, only the curve.
- Settle. Liquidated, closed by you, or expired. The contract reads L1 and decides; anyone can trigger it.
Payout is a share of the loss, set by utilization at settlement:
| Utilization | Share paid |
|---|---|
| < 40 % | 70 % |
| 40 – 80 % | 50 % |
| > 80 % | 30 % |
When a cascade hits, utilization spikes and every payout scales down together. Everyone is paid less; everyone is paid.
Three limits, stated because the chain imposes them and a site that hid them would be selling something the contracts do not deliver.
- Isolated positions only. A cross position's liquidation price depends on the whole account — Hyperliquid's own API returns null for some of them. There is nothing well-defined to insure per position.
- Main perp dex only.
position()takes auint16asset id, and HIP-3 market ids start at 100 000. A HIP-3 market cannot even be named in the argument. - Settlement is permissionless, not automatic. Nothing pushes an L1 liquidation into a contract. Anyone can settle, including in the same block the engine closes you — but somebody has to call it, before the term ends.
Fixed supply, minted once, in the constructor. No owner — not an owner who
renounced, but no Ownable, no pause, no blacklist, no fee switch, no mint
path and no upgrade proxy. A scanner finds nothing to flag because there is nothing
there.