ADL is expected to be rare. It is mainly a backstop for extreme or manipulated price conditions where normal orderbook liquidity, RFQ liquidity, and liquidator liquidity are not sufficient to take over liquidatable positions.
When ADL can happen
At a high level, ADL is considered when normal liquidation paths cannot reliably take over the position. That can include conditions where aggregate orderbook, RFQ, and liquidator liquidity is insufficient for the target market. The most profitable positions at the highest leverage will be prioritized. For isolated margin, the target position must have equity at or below maintenance margin. For cross-margin accounts, Injective checks the quote-denom pool instead of only one position. The exchange module receives a list of candidate subaccounts, processes those candidates in order, and uses as much size as needed to offset the liquidated position. Candidates without a position are skipped, same-direction candidates are rejected as not offsettable, and candidates with negative payout after funding is applied are skipped.Close price
The ADL settlement price is selected by the exchange module:- If the target position is liquidatable but not beyond bankruptcy, the offset settles at the current mark price.
- If the mark price has crossed the target position’s bankruptcy price, the offset settles at that bankruptcy price.
- Funding is applied before the positions are reduced or closed.
Chain implementation notes
The Injective exchange module handles ADL-style offsets through a position-offsetting mechanism:- The offset flow carries a valid target subaccount, market ID, and at least one distinct offsetting subaccount.
- The target position must pass Injective’s liquidation check before the offset runs.
- Cross-margin accounts are checked at the quote-denom pool level; the offset path can still target a specific position.
- Candidate offsetting subaccounts are processed in the order supplied to the message.
- A candidate must hold an opposite-side position in the same market. Same-direction positions are not offsettable.
- Funding is applied before the offsetting position is reduced or closed.
- The offset quantity is the smaller of the remaining target size and the candidate position size.
- Candidates with negative payout are skipped. If no candidate can offset any size, the message fails with no valid offsetting positions.
- Resting derivative limit orders for a used offsetting subaccount are canceled in that market.
- Open interest is reduced for both sides by the closed quantity.
- The chain emits derivative execution events with
execution_type = OffsettingPosition.
injective-core:
injective-chain/modules/exchange/keeper/derivative_liquidations.goinjective-chain/modules/exchange/types/v2/msgs.goproto/injective/exchange/v2/tx.proto
What you will see
ADL does not arrive through TrueCurrent’s MakerStream or TakerStream and does not ask makers to quote. It appears onchain as a derivative execution withexecution_type = OffsettingPosition.
If your position is selected:
- The affected size is reduced or closed immediately.
- Any remaining position continues normally.
- The close appears in normal derivative trade and position updates.
- Funding and position accounting are applied before the offset is emitted.
OffsettingPosition execution as a real close and update inventory and hedges immediately.
Reducing ADL exposure
You cannot remove all ADL exposure while holding leveraged positions, but you can reduce the amount that could be offset:- Lower leverage.
- Reduce position size.
- Take profit before extreme events.
- Keep hedge automation tied to onchain position updates, not only RFQ settlement updates.
Related pages
- Liquidation - liquidation triggers, bankruptcy price, and the insurance fund
- Index, mark, and quoted prices - the mark price used for liquidation checks
- MakerStream - RFQ stream behavior and maker monitoring notes

