OriginDOCS

Markets

Asset Classes & Roadmap

Launch Coverage

At launch, Origin lists perpetual futures across three asset classes:

  • Crypto perps. BTC, ETH, SOL, and major altcoins.
  • Equity perps. Major single-name equities and equity indices.
  • Commodity perps. Precious metals, energy, and agricultural benchmarks.

All contracts are quoted in USD and settled in stablecoins.

Roadmap

Options, spot, and FX perpetuals are scheduled to follow.

  • Options. Will share the same margin account as perps, allowing portfolio-margined risk offsets.
  • Spot. Will leverage the same orderbook and settlement infrastructure.
  • FX perps. Will reference rates derived from Circle StableFX liquidity, giving traders 24/7 access to currency pairs natively settled in stablecoins.

Listing Process

Listings are permissioned. New markets are reviewed for liquidity, oracle availability, regulatory considerations, and risk-parameter feasibility before being activated. Each listing publishes a complete parameter set at the time of activation:

  • Initial margin, maintenance margin, and leverage tier ladder
  • Position limits
  • Tick size and lot size
  • Oracle source binding (Pyth feed identifier and CEX price source set)
  • Funding configuration
  • Fat-finger band

Contract Specifications

Quote and Settlement Currency

Every contract is USD-denominated. PnL is calculated in USD and credited or debited in the user's collateral assets. If a user holds non-USD collateral, realized PnL settles against that collateral at the prevailing oracle exchange rate, with haircuts applied (Section 4.3).

Tick Size and Lot Size

Tick size and lot size are set per market based on liquidity profile and price magnitude. High-liquidity, high-price markets (e.g., BTC) use finer ticks expressed in absolute USD; lower-price markets use ticks expressed as a percentage of price to avoid quoting noise. The full table is published on the markets reference page.

Position Limits

Each market enforces a per-account maximum position size. Limits scale with the user's effective margin tier and are designed to prevent any single account from accumulating risk that would be difficult to liquidate without market impact.

Market States

A market can be in one of the following per-market states at any time. These are distinct from system-wide operational states (Section 10), which act as a global envelope over all markets.

StateBehavior
LIVEFull trading.
POST_ONLYOnly post-only limit orders accepted; takers rejected. Used during volatility spikes or oracle anomalies.
REDUCE_ONLYOnly orders that reduce existing positions accepted. Used during planned market windowing or risk events.
HALTEDNo order activity. Existing positions continue marking; liquidations paused if halt is triggered by oracle staleness.
DELISTEDMarket removed from listing; users notified to close before final settlement.

Transitions between states are logged on-chain and announced via the WebSocket market-state channel.

Virtual Cross-Currency Markets

Core Concept

Origin exposes markets like GOOGL/KRW, BTC/EUR, and XAU/JPY without maintaining separate orderbook liquidity for every quote currency. Instead, each virtual cross-currency market is a composition of a canonical USD-denominated perp book and an FX overlay:

GOOGL/KRW  =  GOOGL/USD-PERP  +  USD/KRW FX layer
BTC/EUR    =  BTC/USD-PERP    +  USD/EUR FX layer
XAU/JPY    =  XAU/USD-PERP    +  USD/JPY FX layer

This gives users a native local-currency trading experience while all orderbook liquidity, funding, risk, and market-maker hedging remain unified around canonical USD books.

User Experience vs. Protocol Reality

From the user's perspective:

  • Deposit KRW1, see margin in KRW, trade GOOGL/KRW, see PnL in KRW, withdraw KRW1.

From the protocol's perspective:

  • Collateral is valued in USD. The order routes to the canonical GOOGL/USD book. The FX overlay prices USD/KRW. The Risk Engine computes everything in USD. Settlement converts through StableFX only when needed (withdrawal or liquidation), not on every trade.

The user's actual economic exposure is to a USD-denominated GOOGL/USD perp. The KRW display is a presentation layer over that canonical position. PnL is USD-denominated at source; KRW figures are display conversions. Users who hold KRW1 collateral and trade GOOGL/USD perps carry FX risk on their collateral, not on their perp position itself. Origin makes this distinction explicit in account statements and the order preview.

Virtual Market Definition

Each virtual market is registered as:

FieldExample
virtual_market_idGOOGL-KRW-PERP
canonical_market_idGOOGL-USD-PERP
display_quote_currencyKRW
settlement_stablecoinKRW1
fx_pairUSD/KRW
max_fx_drift_bps25
fx_quote_ttl_ms3000

The virtual market is a routing and display configuration; it is not a separate orderbook. Risk, funding, open interest, and position records are all maintained on the canonical USD market.

Price Construction

The virtual index and mark prices are composed from the canonical USD price and the FX overlay:

virtual_index_price  =  asset/USD index  ×  USD/local TWAP
virtual_mark_price   =  asset/USD mark   ×  USD/local conservative mid

The virtual mark is used for display, liquidation price estimates shown to users, and SL/TP trigger conditions expressed in local currency. The canonical USD mark remains the source of truth for all actual risk and margin calculations.

The displayed bid/ask spread for a virtual market reflects both the asset perp spread and the FX spread:

virtual bid  =  asset/USD impact bid  ×  USD/local executable bid
virtual ask  =  asset/USD impact ask  ×  USD/local executable ask

Order Routing and Limit Translation

When a user places a local-currency limit order (e.g., Buy GOOGL/KRW limit ₩250,000), the system translates the limit into a canonical USD price at placement time:

# Buy side: user pays local currency for USD exposure
canonical_limit_usd = local_limit / USD_local_execution_ask

# Sell side: user receives local currency from USD exposure
canonical_limit_usd = local_limit / USD_local_execution_bid

Origin uses dynamic FX-bound limits: the original local-currency limit price and FX reference rate are stored alongside the translated USD limit. If FX moves beyond max_fx_drift_bps while the order rests on the book, the order is cancelled by default (configurable to pause or reprice). This protects the user from having their KRW-denominated price intent silently become a different economic outcome after an FX move.

Funding

Funding remains canonical. A single GOOGL/USD funding rate applies regardless of the user's display currency. There are no separate funding rates for GOOGL/KRW, GOOGL/EUR, or GOOGL/JPY. This eliminates liquidity fragmentation and cross-currency funding arbitrage. Funding payments are denominated in USD and reflected in KRW only as a display conversion.

Market-Maker Model

Virtual cross-currency markets are powered by two specialized liquidity roles:

ParticipantProvides
Perp market makerQuotes on canonical Asset/USD books
FX liquidity providerQuotes on stablecoin FX pairs (e.g., USDC/KRW1) via StableFX
Origin virtual layerSynthesizes Asset/local-currency markets from both

Market makers do not need to quote every synthetic pair directly. A market maker quoting GOOGL/USD and an FX LP quoting USDC/KRW1 together enable GOOGL/KRW for users, without requiring any participant to hold or hedge cross-currency perp inventory.