EVM Perp · サンドボックス合格
ADL trigger
強制的なオートデレバレッジ——保険基金が枯渇し、利益の出ている反対ポジションが (pnl × レバレッジ) 順に強制クローズされ、残る不足分を吸収。
オラクルが110→30へ下落、板は空。ロングは Underwater として清算され、メイカーのショートは ADL で強制決済される。
何が起きるか
ロング1件(10)がショートのメイカー1件(40)に対しエントリー110で建つ。ブロック1のスタブマーク(100)では両者とも健全。ブロック2でオラクル指数価格が30をプリント——73%の下落。ロングは深く水没(証拠金50に対し1枚あたり80の評価損)し、CLOB の板は空(メイカー注文は既に消化済み)のため、クローズループにはロングを吸収する流動性がない。Underwater クローズが残余を保険基金へ送り、ADL がメイカーの相手方をヘアカット価格で強制決済する。単一ポジション・流動性なしのオラクルショックで保険基金+ADL 経路が発火する——ADL が存在する教科書的な理由——を見るためのシナリオ。
宣言された結果
宣言した各結果は、実行時の実際の状態に対して ✓ 合格 / ✗ 不合格 で採点されます。
- ロング(10)とメイカーのショート(40)——チェーン履歴適用後、トレーディングアカウントはちょうど2件
- 73%のオラクル下落がロングを清算対象として検知
- クローズを吸収する待機買いがないため、ADL がメイカーのショートを強制決済
- アカウント10のロングは清算で全決済
- アカウント40のショートは ADL で全決済
5件中5件の結果を検証
実行を1ブロックずつ辿る
マーク100ソースstub-empty-book取引2約定1入金2清算0ADL—
検証レポート(原文)
ツールが出力する英語の原文レポート(5セクション)——毎回同一です。
─── scenario: adl-trigger ────────────────────────────────────
HEADLINE ✓: Oracle drop from 110 → 30 with an empty book: the long is liquidated Underwater and the maker short is force-closed via ADL.
DESCRIPTION:
One long (10) opens against one short maker (40) at entry 110; both stay healthy at block 1's stub mark (100). At block 2 the oracle index price prints 30 — a 73% drop. The long is now deeply underwater (collateral 50, mark-to-mark loss 80 per contract), and the CLOB book is empty (the maker order was already fully consumed), so the close-loop has no liquidity to absorb the long. The Underwater close kicks the residual into the insurance fund and ADL force-closes the maker counterparty at the haircut price. Use this scenario to see the insurance-fund + ADL path fire on a single-position, no-liquidity oracle shock — the textbook reason ADL exists.
TIMELINE (per-block):
height mark src trades fills deposits liqs adl fund
------ ------ --------------- ------ ----- -------- ---- --- ----
1 100 stub-empty-book 2 1 2 0 — —
2 30 oracle 0 0 0 1 yes —
3 30 oracle 0 0 0 0 — —
ACCOUNT DELTA (final − initial):
account collateral position avg_entry
------- ---------- -------- ---------
10 0 0 110
40 350 0 110
(initial account count: 0, final account count: 2)
OUTCOMES:
✓ Long (10) and maker short (40) — exactly two trading accounts after the chain history applies.
✓ The 73% oracle drop flags the long for liquidation.
✓ With no resting bids to absorb the close, ADL force-closes the maker short.
✓ Account 10's long is fully closed by the liquidation.
✓ Account 40's short is fully closed by ADL.
5 of 5 outcome(s) verified.
NOTE: v1 runs the scenario in-process against a unit-provider
`LiveRethEvmBridge<()>` (no Reth boot). For the production-shape
run (real Reth + Malachite + JSON-RPC), use:
openhl reth-devnet --chain-history scenarios/adl-trigger.json --rounds 3
NEXT:
• Adopt this engine : https://github.com/psyto/rdk
• Custom build : https://fabrknt.com/waitlist.html?product=evm-perp&intent=build
• Hosted access : https://fabrknt.com/waitlist.html?product=evm-perp&intent=hosted