/ components / delta / D005-perpetuals.component.cspec
D005-perpetuals.component.cspec
 1  # D005-perpetuals.component.cspec
 2  
 3  metadata:
 4    id: D005
 5    name: perpetuals
 6    version: 1.0.0
 7    domain: delta
 8    stability: high_change
 9    updated: 2026-01-07
10    cascade_priority: 30
11    roles:
12      primary: [Dev, Arch]
13      review: [Security]
14    expertise:
15      required: [trading, derivatives]
16      helpful: [risk_management]
17    context_tags: [perpetuals, futures, leverage, liquidation, funding]
18  
19  dependencies:
20    upstream: [D004, D006]
21    downstream: []
22  
23  interface:
24    types_ref: _registry/types.cspec
25    types:
26      sAX: synthetic_ax, decimals:4, backing:1:1_locked_AX, lifetime:ephemeral, chain:DELTA
27    functions:
28      open_position: collateral:sAX, leverage:max_20x
29      close_position: settle_pnl
30      liquidate: margin < maintenance_margin
31      funding_payment: 8h_interval
32    events:
33      - position_opened
34      - position_closed
35      - position_liquidated
36      - funding_paid
37  
38  spec:
39    # === D005: PERPETUAL FUTURES [PHASE 2] ===
40    perpetuals:
41      collateral: sAX
42      leverage: max_20x (governance_adjustable)
43  
44      funding_mechanism:
45        interval: 8h
46        formula: (mark_price - index_price) / index_price * position_value
47        payment: longs_pay_shorts_or_reverse
48  
49      liquidation:
50        trigger: margin < maintenance_margin
51        maintenance_margin: 5%
52        liquidation_fee: 1% (to_insurance_fund)
53        process: position_closed_at_mark_price
54  
55      insurance_fund:
56        target: 3%_of_open_interest
57        source: liquidation_fees + revenue_allocation
58        purpose: backstop_for_adl
59  
60      adl: # Auto-Deleveraging
61        trigger: insurance_fund_depleted
62        process: profitable_positions_reduced
63  
64  changelog:
65    - version: 1.0.0
66      date: 2026-01-07
67      type: initial
68      description: "Migrated from delta_chain.cspec"
69      breaking: false