> ## Documentation Index
> Fetch the complete documentation index at: https://docs.continuum.markets/llms.txt
> Use this file to discover all available pages before exploring further.

# Markets

> A market is one synthetic asset - a pair of SPL mints, two native bin books, a collateral vault, and a CLP vault. Here's how they're shaped and listed.

A **market** in Continuum is one synthetic asset. Each market has:

* A `Market` PDA (mint-redeem program) holding initial prices, fees, supply, TWAP, risk state, buffer target, and the keeper authority.
* Two SPL mints - long (`L`) and short (`S`) - both with the market PDA as mint authority.
* One collateral vault (cUSDC token account) holding the collateral backing outstanding L+S supply.
* Two native bin-book `Pool` PDAs (clp program) - one book per side.
* A `Clp` PDA and per-market CLP vault tracking trading inventory and capital allocation.

Markets are not interchangeable - a QQQL token is a different mint from an SPYL token, even though both are "long" tokens.

## PDA derivation

```
Market: seeds = [b"market", asset_symbol_bytes]        (mint-redeem program)
Pool:   seeds = [b"pool", market_pda, side_byte]       (clp program; side 0 = long, 1 = short)
```

Symbol is the asset ticker as ASCII (e.g. `"QQQ"`).

## What's stored on the Market account

Public fields you'll likely read:

| Field | Type | Meaning |
| - | - | - |
| `asset_symbol` | string | Market ticker. |
| `long_mint` / `short_mint` | Pubkey | L and S SPL mints. |
| `collateral_mint` | Pubkey | cUSDC mint. |
| `collateral_vault` | Pubkey | Token account holding backing cUSDC. |
| `mint_fee_bps` / `redeem_fee_bps` | u16 | Base fees (10 = 0.10%); scaled up with vol by the keeper, capped at 100. |
| `initial_l_price` / `initial_s_price` | u64 | 6-dec prices fixed at init; their product is the constant `K`. |
| `total_l_supply` / `total_s_supply` | u64 | Outstanding supply on each side. |
| `total_collateral` | u64 | Vault balance. |
| `buffer_target_bps` | u16 | Dynamic overcollateralization target, posted by the keeper. |
| `is_active` | bool | If false, all mint/redeem reject. |
| `risk_state` | enum | `Normal` / `ProxyMode` / `Stress` / `Recovery`. |
| `user_twap_price` / `twap_updated_at` | u64 / i64 | Source of `L_NAV` and its freshness (300 s gate). |
| `oracle_confidence` | u64 | Hermes confidence, pushed with each TWAP update. |
| `keeper_authority` | Pubkey | Privileged signer for oracle/book/vault operations. |
| `dev_tax_pct` | u8 | Slice of fees routed to fee\_recipient (10%); the rest stays in the vault. |

Full schema in [mint-redeem reference](/programs/mint-redeem#market-account).

## Reading market state

```typescript theme={null}
import { Program, web3 } from "@coral-xyz/anchor";
import idl from "./mint_redeem.json";

const program = new Program(idl, provider);
const [marketPDA] = web3.PublicKey.findProgramAddressSync(
  [Buffer.from("market"), Buffer.from("QQQ")],
  program.programId,
);
const market = await program.account.market.fetch(marketPDA);

console.log("Symbol:", market.assetSymbol);
console.log("L mint:", market.longMint.toBase58());
console.log("Vault:", market.collateralVault.toBase58());
console.log("Buffer target (bps):", market.bufferTargetBps);
```

For all live markets at once, batch via `getMultipleAccounts`. See [Reading state](/flows/read-state).

## Live markets

Eight markets - sixteen books - are active on devnet (\~\$11.5M TVL):

| Symbol | Asset | Book geometry (core / wing × core bins) | Reposition gate |
| - | - | - | - |
| `QQQ` | Nasdaq-100 ETF | 20 bps / 300 bps × 3, 12 bins | 20 bps |
| `SPY` | SPDR S\&P 500 ETF | 15 bps / 250 bps × 3 | 20 bps |
| `XAU` | Gold spot | 20 bps / 300 bps × 3 | 20 bps |
| `XAG` | Silver | 20 bps / 300 bps × 3 | 20 bps |
| `NVDA` | NVIDIA | 30 bps / 450 bps × 3 | 30 bps |
| `AAPL` | Apple | 25 bps / 400 bps × 3 | 25 bps |
| `OIL` | WTI crude oil | 25 bps / 400 bps × 3 | 25 bps |
| `EUR` | EUR/USD | 10 bps / 200 bps × 3 | 10 bps |

Fine core steps quote tight near NAV; wide wings hold the float for off-hours drift. The reposition gate is calibrated just below each market's toxic-arb line. Books converge to \~\$5k of bids and ≤\$7.5k of asks per side; committed orders take any size at NAV ± 10 bps.

→ [Live markets table with all pubkeys](/markets/live)

## How a market gets listed

The full operator flow lives in the protocol's operations runbook. At a high level:

<Steps>
  <Step title="Create the market">
    Pick symbol, initial prices, base fees; set the keeper authority. Creates the Market PDA, L and S SPL mints (mint authority = market PDA), and the collateral vault.
  </Step>

  <Step title="Initialize the CLP slot and vault">
    Per-market `Clp` PDA plus the CLP vault and the CLP PDA's L/S/cUSDC ATAs for inventory.
  </Step>

  <Step title="Initialize the books">
    `init_pool` per side, then `configure_pool_geom(wing_step_bps, core_bins)` with steep-wing geometry sized to the asset's vol class.
  </Step>

  <Step title="Configure the keeper">
    Add the market to the keeper config JSON: `min_bps` ≥ \~2× the asset's 5-minute σ, `floor_mult`, `fee_mult` (\~1.0-1.5 for high-vol single names), and the spread window. No model training - the spread floors plus the realized-vol ratchet carry both safety and competitiveness.
  </Step>

  <Step title="Fund the vault and start the keeper">
    Deposit cUSDC into the per-market CLP vault. The keeper mints paired inventory (`vault_mint_pairs`), stocks both books (`set_pool_shape`), and starts the oracle push. The vol state seeds itself from 60 days of Pyth Benchmarks history, so spreads are warm from the first tick.
  </Step>
</Steps>

→ [Listing a market](/markets/listing)

## Asset roadmap

Continuum's targeted launch coverage is **TradFi-only**:

Live today: QQQ, SPY, XAU, XAG, NVDA, AAPL, OIL (WTI), EUR/USD. Still planned:

* **Indices**: SPX, NDX (raw indices), FTSE 100, DAX
* **Equities**: TSLA, GME, AMC, META, AMZN, GOOGL
* **Commodities**: BRENT, HG (Copper)
* **Forex**: USD/JPY, GBP/USD

No crypto markets - the constant-product invariant gives no edge over an actual perp DEX for crypto pairs. High-growth single names ship only with the full solvency stack (vol-informed fees, depth-capped books, re-anchoring) - see [Solvency](/concepts/solvency).

→ [Roadmap](/markets/roadmap)

## Trading hours

Continuum follows the underlying's session for NAV-priced operations, while the books trade around the clock:

* **During the underlying's trading hours**: NAV tracks the live oracle; mint, redeem, committed orders, and books all operate.
* **When the underlying closes** (nights, weekends for equities): the keeper withholds oracle pushes, the on-chain TWAP ages past 300 s, and **mint/redeem self-freezes**. Committed orders can't settle (cancel refunds after 180 s).
* **The bin books float** at their standing band off-hours - you can still trade either leg, with price discovery happening inside the band. At reopen, the first fresh print re-anchors NAV and the keeper re-pins the books.

See [Oracle - the staleness chain](/concepts/oracle#the-staleness-chain-what-happens-when-the-market-closes).

## Read more

<CardGroup cols={2}>
  <Card title="Live market addresses" icon="address-book" href="/markets/live">
    All 8 markets - every pubkey.
  </Card>

  <Card title="How to read market state" icon="magnifying-glass" href="/flows/read-state">
    Batch fetch markets, derive NAV, query book depth.
  </Card>
</CardGroup>
