Skip to main content
Alongside crypto, Arcus offers perps on real-world assets (RWAs) — equities, commodity ETFs, and index ETFs. They work like crypto perps (a CLOB, margin, funding, and liquidations), but they reference assets that trade on a schedule and whose returns come from more than just price. Arcus is designed so an RWA perp tracks the total return of its underlying, around the clock.
This page is educational and conceptual. The exact risk parameters (margin multipliers, price-band widths, funding intervals) are part of each market’s configuration and are read from the API, not documented here.

Why RWA perps

  • 24/7 exposure. The underlying stock or commodity market is open only part of the week; the perp lets you take or adjust a position any time — overnight, weekends, holidays.
  • Leverage and shorting. Go long or short with leverage, from the same USDG collateral you use for crypto.
  • One account, many asset classes. Crypto, equities, commodities, and indices share a single balance and margin system.

Tracking total return

Holding a stock or commodity in the traditional world earns (or costs) more than the change in its quoted price — dividends, corporate actions, and the shape of the futures curve all matter. Arcus passes these through so the perp reflects what a holder of the underlying would actually experience, rather than drifting away from it. The adjustments flow through funding and the oracle price.

Dividends

When a stock goes ex-dividend, its market price drops by roughly the dividend. On its own that would show up as a loss for a long. Arcus offsets it with a funding payment to longs, so the dividend isn’t lost — it’s reflected in the position’s return.
Illustrative: a stock priced at $100 pays a $2 dividend and opens at $98. A long sees -$2 from the price move and +$2 from funding — net flat from the dividend itself, exactly as a holder of the stock would experience.

Splits

On a stock split or reverse split, open orders and a position’s price reference are adjusted by the split factor so the economics are unchanged.
Illustrative: in a 2:1 split, a position of 100 units at $10 becomes 200 units at $5 — same exposure, same value.

Futures rolls

For markets built on futures, the contract being referenced changes on a roll schedule. Arcus accounts for the price difference between the contract rolled out of and the one rolled into and passes it through funding (“roll payment”), so your exposure stays continuous instead of jumping on roll dates.

Trading when the underlying is closed

Outside the underlying’s regular hours, liquidity is thin and there’s no reliable external price to anchor to. Arcus keeps the market open but adds guardrails so off-hours trading stays orderly — without forcing liquidations on positions that were healthy at the close:

How price bands widen

When a market leaves its regular-hours window, the engine seals a settlement anchorcurrentSettlementPrice, a VWAP of the closing session — and centers the band on it. The band starts narrow and can only widen in fixed steps, a 0.5x1x2x4x multiplier ladder, under sustained one-directional pressure. Each edge sits at:
Because the width scales with initialMarginFraction, how far price can travel inside the band scales inversely with leverage — a lower-leverage (better-collateralized) market is allowed a wider move. At the 4x ceiling, for example: The anchor is per session: a fresh anchor seals at each weekday RTH close (20:00 ET, Monday–Friday), where the previous band is discarded and both sides reset to the 0.5x rung around it. There is no weekend re-seal — Friday’s 20:00 ET close carries the whole weekend, until regular hours reopen Monday at 04:00 ET. Within a session the ladder is one-way — an expanded side never contracts, even if price fully recovers; it only resets when the next session’s anchor seals. The upper and lower sides expand independently — each carries its own multiplier and its own clock, so in a one-sided run one edge can reach 4x while the other is still at 0.5x. Each step up is gated by a 1-hour sustained-pressure clock. A side enters its expansion zone when the 1-hour EWMA of that side’s impact price reaches or passes 90% of the distance from the anchor to the edge — including prices beyond the edge itself. It is a one-sided threshold, not a bounded strip: the zone is everything at or past the 90% mark, with no upper limit (a price already trading through the edge is still in-zone, driving the clock toward expansion). On a 10x market at the first rung, for example, the upper zone starts at anchor × 1.045 — 90% of the way to the anchor × 1.05 edge — and extends through the edge and beyond. The zone edges are not separate API fields, but derive directly from the formula: anchor × (1 ± 0.9 × initialMarginFraction × bandMultiplier). Entering the zone starts the clock; if the EWMA stays in the zone for a continuous hour (with resting depth still present), that side widens one rung. If it eases out of the zone first, the clock resets and no expansion happens. There is no halt state — the market never stops, and trading inside the band is never restricted. The bound is enforced per order: a crossing order fills as far as the boundary allows, and only the portion that would execute at or beyond it is rejected (FILL_WILL_EXCEED_TRADING_BOUND) — so a run can’t blow through every level at once. Here is one full off-hours session on a 10x market (anchor 65.71, first rung ±5%), showing a single lower-side expansion:
Price chart of one off-hours session: settlement anchor at 65.71 with trading bounds at ±5% and next bounds at ±10%; price drops into the lower expansion zone (at or past 90% of the way to the lower edge), holds for an hour, and the lower bound steps from −5% to −10% while the next lower bound steps to −20%; price then recovers but the widened bounds remain; the upper side is untouched throughout.

The lower side enters its zone, holds for an hour, and widens one rung. The upper side never moves, and the widened bounds stay for the rest of the session — even after price recovers.

The same lifecycle as a state machine — note the two very different ways back from the zone: easing out resets only the clock, never the band; rungs are permanent for the session:
The diagram shows one side. The upper and lower sides run this state machine independently and can be on different rungs at the same time. The whole machine restarts — new anchor, both sides back at 0.5× — only when the next session’s anchor seals.
Crypto perps have no off-hours regime — their markets never close.

Reading the band from the API

The band is fully observable. The markets fields below are read from GET /v1/markets (and the same values ship on the streaming markets channel). Off-hours band state and every off-hours transition stream on the dedicated marketAttributes channel — a per-market snapshot on subscribe, then that market’s full updated block on each event: RTH⇄off-hours crossings (isOutsideRth; band fields populate on the off-hours exit and return to null on the next open), VWAP seals, and the finer bound events (a side entering or leaving its zone, or a bound expanding — boundEvent: expansionZoneEntered, expansionZoneExited, tradingBoundExpanded). It supersedes the older per-market marketAttributes entries on the exchangeAttributeUpdates channel.
These fields carry a value only while the underlying is closed. The keys are always present on every RWA market; each holds a real value only when the market is outside RTH with a sealed anchor (isOutsideRth is true), and reads null otherwise — during regular trading hours, and for 24/7 crypto markets, which have no settlement anchor and no band. Decide whether the band applies by checking isOutsideRth (or a non-null currentSettlementPrice) — do not test for the field’s absence, as the key is always there. The four zone-timing fields are null unless their own side’s is…InExpansionZone is true.Bound values are also per session: at every weekday 20:00 ET re-seal, all of them recompute against the fresh anchor. Compare the is…InExpansionZone flags only against bounds read in the same snapshot — against bounds cached from an earlier session they will look wrong, and a flag can legitimately flip true at the boundary itself if price is already inside the new, narrower band’s zone.
There is no single combined currentTradingBound / nextTradingBound in the API: because the two sides move independently, the “current” and “next” bound are reported per side as the upper… / lower… pairs above.

Funding

How dividends, splits, rolls, and off-hours rates are applied.

Prices

The mark price that drives risk, and how the oracle is sourced open vs. closed.

Margin & leverage

Collateral, leverage, and the off-hours margin regime.

Liquidations

What triggers a liquidation and how off-hours bands help.