Skip to main content
This page is for traders who want to understand why a position was liquidated. The short and honest answer is that liquidation is almost always the mechanical outcome of maintenance margin rules applied against the mark price, and the “unfair liquidation” narrative usually dissolves once the trader inspects the exact inputs. Read through the sections below before opening a ticket.

What triggers a liquidation

A position is liquidated when the account’s equity drops below the maintenance margin required for its current size, evaluated against the current mark price. The Liquidations page describes the precise condition. Two things are worth emphasizing:
  • The trigger uses the mark price, not the last trade price. See Mark price for why. This matters because a single wick on the order book can look dramatic on the chart without actually moving the mark enough to breach anyone’s margin.
  • The maintenance margin depends on the size tier of the position. Larger positions require more margin, and the tier ladder is documented on the Leverage page. A position that was safely collateralized at one size can become undercollateralized after you add to it, even without a price move.

How liquidation runs

Liquidation is not a bot reacting after the fact. It is a protocol state machine that runs atomically with matching, inside the same block production loop. The Risk and netting subsystem page describes the mechanism. The consequence for users: there is no “race” to liquidate you, and no external keeper is getting paid a bounty that the protocol itself could have captured. Everything happens inside IntentionKernel deterministically. When a margin breach is detected, the engine attempts to close the position against the book. If the book is too thin to absorb the close at an acceptable price, the insurance fund steps in. If the situation is severe enough that the insurance fund would be depleted, auto-deleveraging kicks in — see ADL — and counterparty positions are assigned at a defined price.

Reading the liquidation event

Every liquidation emits a structured event that contains, at minimum:
  • The account and position that breached margin.
  • The mark price at the moment of the breach.
  • The margin tier that applied, which determines the maintenance requirement.
  • The size closed and the execution price of the close, including whether it went through the book, the insurance fund, or ADL.
  • The insurance fund delta, if any.
If you believe a liquidation was incorrect, the first thing to look at is these five fields. In the great majority of cases, the mark price at the listed height matches what the aggregated oracle was reporting, and the margin requirement at your position’s size was exactly what the tier ladder says. At that point the liquidation is not a bug and is not a support issue — it is a consequence of the risk parameters you accepted when you opened the position.

When it actually is a support issue

There are a few situations where a ticket is warranted:
  • The UI shows a different mark price than the event. This can indicate a UI lag rather than an engine bug, but it is worth confirming.
  • The liquidation fired at a mark price that was not reached by the aggregate oracle at that block.
  • The reported margin tier does not match the tier ladder published in the docs.
  • The insurance fund delta is inconsistent with the execution price of the close.
In any of those cases, email support@intention.xyz with the position address, the block height of the event, the event’s own fields, and a screenshot showing the discrepancy.

When it is not a support issue

If your position was liquidated because the mark moved and your maintenance margin was breached, the answer is not “support can reverse it.” No support team, anywhere, can reverse a finalized on-chain state transition. What they can do is walk you through the math and confirm that the protocol did what it was supposed to — which, often, turns out to be the uncomfortable answer.