Margin
Parcl V4 supports two margin modes. Cross is the default and still works the way it always has. Isolated is new: each position gets its own dedicated collateral bucket, so a position that blows up can only lose what's in its bucket. The rest of your account stays intact.
You choose the mode (and the leverage) when you place the order.
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, where the requirement is the sum of notional * MMR across cross positions.
Isolated margin
An isolated position has its own collateral bucket, separate from your cross collateral. The bucket is sized at fill time:
bucket = notional / leverageIf 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 and is unaffected by anything that happens to the isolated position.
If the position loses money, the loss comes out of the bucket. If the loss exceeds the bucket, the position is liquidated and you lose only what was in the bucket. Your cross collateral is never touched by an isolated position's losses.
That's the headline. 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.
Leverage is capped per market at floor(10000 / IMR_bps). A market with a 2% IMR (real estate) caps at 50x. A 5% IMR market (commodities) caps at 20x.
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 is bounded. 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 is fixed for its life. If you have an open isolated long on NYC, you can't switch that position to cross, and 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.
| Threshold | Real estate | Commodities | What it means |
|---|---|---|---|
| Initial margin | 2% (200 bps) | 5% (500 bps) | Required to open or increase a position |
| Maintenance margin | 1% (100 bps) | 2.5% (250 bps) | Below this, the position is liquidated |
Margin requirements are a percentage of position notional. A $50,000 notional position on a real estate market needs $1,000 to open and $500 to stay alive.
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 < notional * MMR → liquidate this one positionOther isolated positions on the account are untouched. The cross pool is untouched. Only the bucket is consumed.
Isolated liquidations close through the orderbook (not the backstop). If there's no resting liquidity on the close side, the liquidation waits for the next block.
Why a voluntary close can be rejected
If your isolated position is far enough underwater that closing at the current book price would lose more than the bucket holds, the validator rejects the close. Two reasons:
- A close that wipes the bucket and then keeps going would dip into your cross collateral, which would silently break the isolated promise.
- A position that deep underwater should ride the liquidation sweep, which routes the deficit through the system's backstop instead.
In practice you'll see this if you try a pure market close (no slippage cap) on an isolated position, or 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 - notional * MMR) / sizeA $10,000 long at $100/unit with a $1,000 bucket (10x leverage) and 1% MMR liquidates at roughly $90.10.
For cross positions, the calculation is the same formula but uses the cross pool's contribution to that position's margin instead of a dedicated bucket, and other positions' PnL can move the trigger.
The liquidation trigger uses the oracle price on real-estate markets and the median-of-3 mark on every other asset class. See Mark price for why.
Adding and removing collateral (account level)
Independent of margin mode, you can move collateral into and out of the account.
Adding: send an AddCollateral transaction with the USDC amount (6 decimal places — 5000000000 is $5,000). No upper limit.
Removing: send a RemoveCollateral transaction. The withdrawal is rejected if the remaining collateral would put any cross position below its initial-margin requirement or fail to cover the buckets of any open isolated positions.
Unrealized PnL as margin
Unrealized PnL on cross positions counts toward your account value and can be used to 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.