Margining
Margin calculations closely mirror the formulas utilized by centralized derivatives exchanges.
Margin Mode
When opening a position, a margin mode must be selected. Cross margin (default) utilizes shared collateral across all cross-margin positions for maximum capital efficiency. Isolated margin restricts collateral allocation to the specific asset, ensuring liquidation:
In isolated positions, the margin doesn't affect cross/other isolated positions
In cross/other isolated positions, the margin doesn't affect this isolated position
Initial Margin and Leverage
Users may select leverage as any integer between 1 and the asset-specific maximum leverage. Position margin requirements are calculated as: Initial Margin = Position Size × Mark Price ÷ Leverage
Cross Margin:
Initial margin is locked and non-withdrawable
Unrealized PNL automatically serves as available margin for new positions
Isolated Margin:
Supports post-opening margin adjustments (add/remove)
Unrealized PNL applies as an additional margin to the open position
Unrealized PNL and transfer margin
Unrealized PNL withdrawal from isolated positions or cross accounts follows the following formulas:
initialMargin = entryPrice * positionSize / leverage
floatingMargin = isolatedMargin - initialMargin
floatingProfit = calculateFloatingProfitAndLoss(...)
availableSubtractMargin = max(0, min(floatingMargin, floatingMargin + floatingProfit))
'Transfer' encompasses any non-trading margin removal, including:
External withdrawals
Transfers to spot wallets
Isolated margin position transfers
Maintenance Margin & Liquidation Mechanics
Cross positions trigger liquidation when: Account Value (incl. unrealized PNL) < Maintenance Margin × Total Open Notional Position
Maintenance Margin = Position value * mainMarginRateThe value of mainMarginRate in various symbols is different. For example, when you open a position below maxNominalValue of 12,500,000 USDC under BTC_USDC, then the mainMarginRate is 0.004. The current Maintenance Margin Rate (mainMarginRate) on SoDEX Testnet for different symbols is consistent, as follows (Updated on 2025.08.01):
1
10,000,000
0.30%
0.50%
200x
1x
2
12,500,000
0.40%
0.80%
125x
1x
3
20,000,000
0.50%
1.00%
100x
1x
4
25,000,000
1.00%
2.00%
50x
1x
5
50,000,000
2.50%
5.00%
20x
1x
6
100,000,000
5.00%
10.00%
10x
1x
7
200,000,000
10.00%
20.00%
5x
1x
8
400,000,000
12.50%
25.00%
4x
1x
9
1,500,000,000
15.00%
33.30%
3x
1x
10
2,000,000,000
25.00%
50.00%
2x
1x
11
5,000,000,000
50.00%
100.00%
1x
1x
Isolated positions follow identical liquidation logic, with computation inputs solely comprising:
Isolated margin balance
The isolated position's notional value
Last updated