For the complete documentation index, see llms.txt. This page is also available as Markdown.

Collateral & Margin System

Collateral management

Symmio runs two margin systems to manage risk and keep counterparties solvent.

1. Isolated margin

  • Used only for PartyA option purchases.

  • PartyA's funds go into an individual isolated balance, managed per user.

  • PartyB keeps enough collateral in its own isolated balance to cover the total unrealized PnL of all open positions across all PartyAs.

  • The required collateral is set by the loss coverage ratio, which defines what percentage of unrealized losses must be backed by actual funds.

  • Solvency checks for PartyB run only against its isolated balance, aggregated across all counterparties (not per PartyA).

  • If PartyB's available balance falls below the required threshold, liquidation is triggered.

  • The Scheduled Release Balance System governs how and when deposited funds become available, adding timed delays for security.

2. Cross margin

  • Available for both buying and selling by PartyA.

  • Each PartyA and PartyB keeps a dedicated cross balance per counterparty pair.

  • This model covers PartyA's maintenance margin (when selling options) and PartyB's loss coverage (when PartyA is the buyer).

  • Funds can be allocated from the isolated balance into a cross balance specific to a trading counterparty.

  • Solvency and liquidation are pair-specific: they apply only to the trades and margin balances between a particular PartyA and PartyB.

    • PartyA must keep enough maintenance margin in its cross balance with PartyB to support short positions.

    • PartyB must allocate enough funds in the cross balance with PartyA to cover the required unrealized PnL.

  • PartyB also gets a dedicated reserve balance: a fail-safe collateral source that can top up a cross balance and prevent liquidation when the account is at risk.

Scheduled Release Balance System

The Scheduled Release System is a contract-based balance manager that handles funds with time-delayed releases and multi-counterparty support. It works with both the isolated and cross-margin models and their locking mechanisms, and it:

  • Controls fund release and transfers between parties.

  • Adds security delays so funds aren't immediately available.

  • Reduces the risk of rapid fund movements.

  • Provides different behavior for isolated vs. cross margin.

Balance types

  1. Isolated balance: the user's main balance pool, used in isolated solvency checks.

  2. Cross balance: per-counterparty balance for cross-margin operations and solvency checks.

  3. Scheduled balance: time-locked funds awaiting first release.

  4. Transitioning balance: funds in the second phase of the release process.

Margin types

  • Isolated margin: uses the scheduled-release mechanism with time delays.

  • Cross margin: direct balance operations without delays.

Isolated balance functions

  • instantIsolatedAdd(): immediately adds funds to a party's isolated balance.

  • isolatedSub(): subtracts funds from the isolated balance.

  • isolatedLock() / isolatedUnlock(): lock or unlock portions of the isolated balance.

Cross balance functions

  • allocateBalance(): transfer funds from isolated to cross balance for a specific counterparty.

  • deallocateBalance(): transfer funds from cross balance back to isolated balance.

  • crossLock() / crossUnlock(): lock or unlock portions of the cross balance.

Scheduled release functions

  • scheduledAdd(): add funds with a time-delayed release (the delay is a security measure).

  • subForCounterParty(): subtract funds from balances for a counterparty, not just the isolated balance.

Release mechanism

The system uses two release intervals:

  1. Release Interval 1: Scheduled Balance to Transitioning Balance.

  2. Release Interval 2: Transitioning Balance to Isolated Balance.

The sync() function must be called to move funds through the intervals. It checks elapsed time for each balance bucket, moves funds from Scheduled to Transitioning when interval 1 expires, and from Transitioning to Isolated when interval 2 expires.

Last updated