Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Margin

Parcl V4 supports two margin modes. Cross margin is the default, and all positions share one collateral pool. Isolated margin gives each position a dedicated collateral bucket. Its losses are limited to that bucket.

Cross margin

Your account has one collateral balance in USDC. Every cross position draws from and contributes to that single pool. If one position is up and another is down, the profit offsets the loss before any liquidation check runs.

This is more capital-efficient than isolated. A $10,000 balance backs every cross position you have open, and unrealized gains on one can keep another out of liquidation.

account_value = collateral + sum(unrealized PnL across all cross positions)

Your account is healthy as long as account_value >= maintenance_margin_required. The requirement is the sum of each cross position's tier-adjusted maintenance requirement.

Isolated margin

An isolated position has its own collateral bucket, separate from your cross collateral. The engine sizes the bucket at fill time:

bucket = notional / leverage

If you open a $10,000 isolated position at 10x leverage, the bucket starts at $1,000. The other $9,000 of your collateral stays in the cross pool. Nothing that happens to the isolated position affects it.

If the position loses money, the loss comes out of the bucket. If the loss exceeds the bucket, the engine liquidates the position. You lose only what was in the bucket. An isolated position's losses never touch your cross collateral.

The trade is that the bucket is all you've got for that position. A 2% adverse move at 10x leverage burns through 20% of the bucket, with no help from the rest of your account.

Selecting leverage

Cross orders also have a leverage parameter, but it works as a sizing guardrail. The validator caps order size so a fresh position at that leverage would fit your free collateral. It doesn't change anything once the order fills.

Isolated orders use leverage to size the bucket. A 10x isolated order on $10,000 of notional puts $1,000 into the bucket. A 5x isolated order on the same notional puts $2,000 in.

Each market has its own leverage and margin limits. Read the current values in Margin tiers before sizing an order.

Add and remove margin

You can move collateral into or out of an isolated bucket while the position is open. Send an AdjustIsolatedMargin transaction:

positive delta → cross collateral moves into the bucket (lowers effective leverage)
negative delta → bucket collateral moves back to cross (raises effective leverage)

Removing margin has a floor. The bucket has to stay at or above the position's initial-margin requirement at the selected leverage. The validator rejects a remove that would drop below that floor.

Mode is locked while a position is open

A market holds at most one position per account. The position's mode stays fixed for its life. If you have an open isolated long on NYC, you can't switch that position to cross. Any new order on NYC has to be on the same isolated position, which adds to it, or a reduce-only order to close it.

If you want to flip a position from isolated to cross, you have to close it first and open a fresh one.

Margin requirements

Each market has two thresholds. See margin in finance for general background on initial and maintenance margin.

ThresholdWhat it means
Initial marginRequired to open or increase a position
Maintenance marginBelow this, the position is liquidated

Initial margin and maintenance margin serve different purposes. Maximum leverage determines initial margin: 10x leverage requires at least 10% initial margin. Maintenance margin must be lower than initial margin so a position is not liquidatable as soon as it opens.

Margin tiers

The position's resulting notional selects its tier. The following schedule applies to each listed market.

Position notionalMaximum leverageInitial marginMaintenance calculation
Less than $500,00010x10%notional × 5%
$500,000 or more5x20%notional × 10% − $25,000

The $25,000 deduction keeps maintenance margin continuous at the tier boundary. For example, maintenance margin is $25,000 at $500,000 notional and $75,000 at $1,000,000 notional.

Read marginTiers from GET /v1/markets before placing an order. The API is authoritative for the selected environment.

Liquidation by mode

Cross liquidation is account-level. When account_value < maintenance_margin_required across the whole cross pool, every cross position is at risk. The exact close path depends on what the account holds. See Liquidations and ADL.

Isolated liquidation is per-position. The check runs against the bucket alone:

bucket + unrealized_pnl_at_trigger < maintenance_margin(position)  →  liquidate this one position

The liquidation does not touch other isolated positions on the account. It does not touch the cross pool. It consumes only the bucket.

Isolated liquidations follow the same waterfall as cross, scoped to the bucket. The position closes on the orderbook first. If the book can't absorb it, the same block it escalates to the backstop (the Liquidator Vault) and then to auto-deleveraging. The protocol absorbs any loss beyond the bucket, never your cross collateral or your other positions.

Rejected voluntary closes

The validator rejects a voluntary close if its worst-case fill would push the isolated bucket below zero. Set a tighter limit or wait for liquidation processing.

In practice you'll see this if you try a pure market close (no slippage cap) on an isolated position. You'll also see it if your limit price is below the bucket-survival point. Set a tighter limit, or let the liquidation handle it.

Liquidation price

The liquidation price depends on your entry, size, and the margin behind the position. For an isolated long:

liq_price = entry - (bucket - maintenance_margin(position)) / size

The formula is an approximation for intuition. The exact trigger price comes from an iterative check, because the maintenance requirement itself moves with price. Expect the app's displayed liquidation price to differ by a small amount.

Liquidation fills charge the account's ordinary taker fee, folded into the bankruptcy-price bound. The fee changes only which fill prices are acceptable once liquidation starts. It is not part of this formula and does not move your liquidation price.

For cross positions, the calculation uses the same formula and the cross pool's contribution to that position's margin. Other positions' PnL can move the trigger.

Liquidation triggers use the oracle price. See Mark price.

Adding and removing collateral (account level)

Independent of margin mode, you can move collateral into and out of the account.

Adding: deposit supported Solana USDC through the bridge. On devnet, the onboarding flow supplies test USDC. The account credits after Solana finalization and bridge confirmation.

Removing: submit RequestWithdrawal. The validator rejects the withdrawal if the remaining collateral would put any cross position below its initial-margin requirement or fail to cover any open isolated position's reserved margin.

Unrealized PnL as margin

Unrealized PnL on cross positions counts toward your account value and can back new cross orders. You don't need to close a winning position to use those gains as margin somewhere else.

Isolated PnL stays in the bucket. A winning isolated position's profit isn't available as cross margin until you either close the position or remove margin from the bucket via AdjustIsolatedMargin.