Skip to main content
ADL forces profitable positions to close when liquidations cannot be filled through normal mechanisms.

When ADL Triggers

All conditions must be met:
  1. Liquidation cannot complete within 60s
  2. Backstop liquidity (DLPs) is insufficient
  3. Insurance fund reserves are insufficient
ADL is strictly a fallback for extreme scenarios.

Who Gets ADL’d

Opposing side positions are targeted (opposite sign to liquidated position).

ADL Score

ADLScore = Leverage * max(0, UnrealizedPnL%)
Higher score = higher priority for ADL. Rationale:
  • High leverage positions are riskier
  • High profit positions can afford closure
  • Losing positions are protected

ADL Queue

Real-time sorted queue by ADL Score (descending), updated when:
  • Positions open/close
  • Mark Price changes
  • Equity changes

Execution

  1. Determine size: ADL_Size = RemainingLiquidation - InsuranceFundAvailable
  2. Select targets: Iterate queue until cumulative size ≥ ADL_Size
  3. Execute: Close positions at Mark Price, deduct ADL fee (0.1–0.2%)
  4. Notify: Immediate notification to affected users

ADL Risk Indicator

{
  "adl_score": 8.5,
  "adl_rank_percentile": 95,
  "adl_indicator": "HIGH"
}
IndicatorPercentileRisk
LOWBottom 80%Unlikely
MEDIUM80–95%Moderate
HIGHTop 5%High risk

By Session

SessionADL Likelihood
Reference OpenExtremely rare
Weekday OvernightModerately rare
WeekendMore likely (thin liquidity)

Minimizing ADL

  • Strong liquidation engine
  • Backstop liquidity (DLPs)
  • Well-funded insurance fund
  • Conservative leverage limits during Market Close
If ADL happens frequently, system parameters need adjustment.

Parameters

ParameterDefault
ADL timeout60s
ADL fee0.1–0.2%
Insurance threshold30% of target

API Event

{
  "event": "adl_executed",
  "instrument": "NVDA-PERP",
  "position_closed": -500,
  "close_price": 190.50,
  "pnl_realized": 2500.00,
  "adl_fee": 25.00
}