Core release

Symmio Core v0.8.6

A technical guide to faster withdrawals, gas-sponsored operations, delegated AccountLayer ownership, safer liquidation settlement, reconstructible allocated-balance events, and tighter operational controls.

Start with the role-based overview. Express operators should then use the bot operations runbook alongside the numbered design chapter.

15 chapters

Main changes

01 Express Withdrawal Express Withdrawal System Design SYMMIO's configurable cooldown protects withdrawals but slows exits. ExpressProvider fronts pool and credit-backed funds, then reconciles when the underlying withdrawal finalizes. 02 AccountLayer AccountLayer Delegated Creation & Ownership Transfer Account creation and ownership handoff were tied too closely to the caller-owner model. v0.8.6 adds role-gated creation for a target owner and direct owner-initiated SubAccount transfer. 03 Liquidation PartyA Liquidation Snapshot Flow Funding at the liquidation timestamp could become unreconstructable after funding state moved. Snapshot liquidation stores the signed PartyB-symbol funding state before positions are closed. 04 Liquidation Single-Step PartyA Liquidation After the v0.8.5 AccountLayer changes, many accounts carry one market or one position. This wrapper completes those small snapshot liquidations in one all-or-revert transaction. 05 Clearing House Affiliate Shutdown Flow Deregistration stopped new affiliate relationships, but it did not give existing positions a clean exit path. v0.8.6 adds scheduled close-only shutdown, a solver window, and a Clearing House backstop. 06 Muon Muon UPNL Validity Overrides One global UPNL freshness window forced every Muon flow to share the same tolerance. v0.8.6 adds optional per-function overrides that fall back to the global value when unset. 07 Fees Solver Fees Tagged solver-fee lists ride open and close execution, draw from PartyA allocated balance within user-approved quote caps, and route each amount through PartyB-configured tags. 08 Fees Operational Fees Payers approve separate budgets for flat fees charged by solvers or registered relayers. Budget increases are immediate, reductions are delayed, and an optional multiplier can guide off-chain scheduling. 09 Events & Indexing Allocated Balance Event Ledger Every PartyA and PartyB allocated-balance mutation now emits an exact storage-backed delta. Dedicated reimbursement and liquidation settlement events preserve lifecycle context without corrupting the allocated ledger. 10 Symbols Symbol Corporate-Action Adjustment Venue stock splits and rebases change the price unit while on-chain positions keep the old one. v0.8.6 adds an adjustment registry that freezes the symbol through the transition and a value-neutral restatement that rebases open positions. 11 Accounts Strict Deallocation PartyA and opted-in PartyBs cannot deallocate collateral that still protects their positions. Safe APIs enforce the Muon-attested protected amount, and public views expose the maximum removable amount. 12 Performance InstantOpen Gas Optimization Two additive entrypoints reduce the four-operation InstantOpen template to two, while EIP-1153 transient storage removes persistent writes for temporary batch authority. 13 Trading & Liquidation Close-to-Liquidation Execution Explains why a close can make PartyA insolvent, how the protocol sizes a boundary fill, why MARKET_BEST_EFFORT cancels the remainder, and how overshoot makes the later liquidation handoff less sensitive to a small favorable market move. 14 Gasless Operations Gasless Layer Approved relayers pay chain gas for signed InstantLayer and wallet operations, native-gas top-ups, and settlement of bridged collateral into wallet-owned SYMMIO accounts. 15 AccountLayer AccountLayer Timelocks Configure selector timelocks, approve or schedule individual calls, and handle batches and policy changes through the AccountLayer.

22 chapters

Other changes

16 Clearing House Explicit Clearing House Settlements Declares final realized PnL, funding, and platform fees per account and market, with typed balance deltas. 17 Liquidation Liquidation Funding Observability Adds quote-level funding and PnL events plus final aggregate settlement events for liquidation indexers. 18 Liquidation PartyA Liquidation Fee Recipient Cleanup Records the liquidation starter as the unambiguous recipient for capped PartyA liquidation fees. 19 PartyB PartyB Allocation Suspension Gates Suspended PartyBs can no longer allocate or transfer allocation between PartyA buckets. 20 Liquidation Cross-PartyB Liquidation Reserve Enforcement Pending cross-PartyB liquidation settlement reserves now reduce shared quote, solvency, and liquidation availability. 21 AccountLayer Delegation Account Scope A delegation was enforced against the account owner, so it reached every SubAccount that owner held. It is now confined to the account family it was granted over. 22 InstantLayer InstantLayer Authorization Scope The helpers treated a global "inside an InstantLayer batch" flag as authorization. v0.8.6 removes MultiAccount's bypass and makes SymmioPartyB check the direct caller's role. 23 Fees Market Open Fee on Execution Price Market open fees are charged on the executed open price, not the request-time market price. A bound PartyA could previously supply zero for that unverified input and open the position for no fee. 24 PartyB PartyB Funding Update Nonces Stale or expired funding updates from a solver engine are skipped per symbol and reported, instead of overwriting newer rates or failing the batch they travelled in. 25 Settlement Bound-Mode Unified Settlement When a bindable solver settles its own book against partyAs bound to it, settleUpnlUnified now skips Muon verification and the payload-based solvency checks, matching the other oracle-less bound flows. 26 Views Diamond Owner Getter The owner() getter on the core and AccountLayer ViewFacets is renamed to getOwner() on both diamonds. 27 AccountLayer Express Deposit Removal The v0.8.5 express deposit split is removed from the AccountLayer. Its two affiliate storage slots are kept as dead fields so the struct layout does not move. 28 AccountLayer AccountLayer Behavior Changes A new aggregate affiliate read API, a reordered sub-account emptiness check that changes which error callers see, and an open-position hook that handles partial-fill child quotes according to account isolation. 29 AccountLayer Position Isolation Partial Fill Remainder A POSITION-isolated virtual account holds exactly one position, so the remainder quote of a partial fill is cancelled in the same transaction and its reserves are refunded to the account. 30 Funding Lazy Accumulated Funding Quote flows no longer roll the symbol/PartyB funding state. Funding settles lazily from persisted state, which now changes only during explicit configuration or a symbol-restatement funding transition. 31 Force Close Force-Close Request Binding A multi-step force-close snapshot is now bound to the close request that initialized it, preventing a canceled or expired request's price from being applied to a replacement request. 32 Liquidation Notional Liquidation Fee Floor Adds a configurable LF minimum against position notional, with symbol 0 as the default and optional per-symbol overrides. 33 Settlement Per-Quote Close Settlement Netting Funding and realized PnL now settle against each quote's bilateral difference while batch closes preserve sequential fills, repeated IDs, and gradual hook visibility. 34 AccountLayer AccountLayer Force-Close and Liquidation Fix Force-closing a position or finishing a PartyA liquidation through AccountLayer no longer fails when core calls back to clean up the account. 35 InstantLayer Batch Delegation Grant Operations A delegation grant can travel as a regular signed operation inside executeBatch or executeTemplate, so one owner signature bootstraps a session key that signs the rest of the batch. 36 Access Control Consistent Diamond Role Management Core, AccountLayer, and ExpressProvider now share one role-management interface while retaining the legacy AccountLayer and ExpressProvider entry points used by existing integrations. 36 Liquidation & Funding Liquidation Rounding and Funding Aggregate Repair Accepts only a governed, position-count-scaled rounding difference and keeps partial-close funding totals exact, with a repair path for older groups.