---
title: "Get exchange"
method: GET
path: "/v1/view/exchange"
tags: ["Exchange"]
---

# Get exchange

`GET /v1/view/exchange`

Handles `GET /v1/view/exchange` via `get.v1.view.exchange`.

## Response `200`

Phoenix Eternal exchange configuration

- ExchangeView — Full exchange configuration response containing keys and market configs. Does NOT include live data like mark prices or current open interest.
  - `keys` ExchangeKeysView, required
    - `activeTraderBuffer` string[], required — Active trader buffer account public keys.
    - `canonicalMint` string, required — Canonical quote mint public key.
    - `currentAuthorities` AuthoritySetView, required — View for authority set containing all authority pubkeys
      - `adlAuthority` string, required — ADL authority public key.
      - `backstopAuthority` string, required — Backstop authority public key.
      - `cancelAuthority` string, required — Cancel authority public key.
      - `marketAuthority` string, required — Market authority public key.
      - `oracleAuthority` string, required — Oracle authority public key.
      - `riskAuthority` string, required — Risk authority public key.
      - `rootAuthority` string, required — Root authority public key.
    - `globalConfig` string, required — Global configuration account public key.
    - `globalTraderIndex` string[], required — Global trader index account public keys.
    - `globalVault` string, required — Global vault public key.
    - `pendingAuthorities` AuthoritySetView, required — View for authority set containing all authority pubkeys
      - `adlAuthority` string, required — ADL authority public key.
      - `backstopAuthority` string, required — Backstop authority public key.
      - `cancelAuthority` string, required — Cancel authority public key.
      - `marketAuthority` string, required — Market authority public key.
      - `oracleAuthority` string, required — Oracle authority public key.
      - `riskAuthority` string, required — Risk authority public key.
      - `rootAuthority` string, required — Root authority public key.
    - `perpAssetMap` string, required — Perp asset map public key.
    - `withdrawQueue` string, required — Withdraw queue account public key.
  - `markets` ExchangeMarketConfig[], required — Static per-market configuration entries.
    - `assetId` integer, required — Numeric asset identifier.
    - `baseLotsDecimals` integer, required — Base-lot decimal exponent.
    - `commodityMetadata` CommodityMetadata — Commodity-specific market metadata.
      - `afterHoursRadius` string, required — Commodity after-hours radius in price units.
      - `executionPriceBand` MarketPriceBand — Inclusive lower/upper price bounds for market-specific execution rules.
        - `max` string, required
        - `min` string, required
      - `isAfterHours` boolean, required — Parsed after-hours flag.
      - `isCommodity` boolean, required — Parsed commodity flag. Always true when this object is present.
      - `isReopen` boolean, required — Parsed reopen flag.
      - `lastIndexExpiryTimestamp` integer, nullable — Unix timestamp when the last known index price expires.
      - `lastKnownIndexPrice` string, nullable — Last index price used for commodity after-hours/reopen behavior.
      - `markPriceBand` MarketPriceBand — Inclusive lower/upper price bounds for market-specific execution rules.
        - `max` string, required
        - `min` string, required
      - `status` 'active' | 'afterHours' | 'reopen', required — Represents the state of a RWA market. This type is shared between on-chain and off-chain components
    - `fundingIntervalSeconds` integer, required — Funding interval length in seconds.
    - `fundingPeriodSeconds` integer, required — Funding period length in seconds.
    - `isolatedOnly` boolean, required — Whether this market only supports isolated margin positions
    - `leverageTiers` ExchangeLeverageTier[], required — Configured leverage tiers.
      - `limitOrderRiskFactor` number, double, required — The limit order risk factor as a percentage (e.g., 60.0 = 60%).
      - `limitOrderRiskFactorBps` integer, nullable — The limit order risk factor in basis points (e.g., 6000 = 60%).
      - `maxLeverage` number, double, required — Maximum leverage for this tier.
      - `maxSizeBaseLots` integer, required — Maximum size in base lots for this tier.
    - `makerFee` number, double, required — Maker fee (percent).
    - `marketPubkey` string, required — The orderbook account pubkey (base58 encoded)
    - `marketStatus` 'uninitialized' | 'active' | 'postOnly' | 'paused' | 'closed' | 'tombstoned', required
    - `maxFundingRatePerInterval` integer, required — Maximum absolute funding rate per interval.
    - `maxFundingRatePerIntervalPercentage` number, double — Maximum absolute funding rate per interval as a percentage of notional at the current mark price.
    - `maxLiquidationSizeBaseLots` integer, required — Wrapper for unsigned 64-bit values that must be JSON-safe for consumers written in JavaScript/TypeScript. Mirrors [`JsSafeI64`] but for unsigned Phoenix quantities such as base lots, quote lots, and slots.
    - `metadata` MarketPublicMetadata — Public off-chain metadata for a market.
      - `calendar` MarketCalendar — Public metadata for a market calendar associated with a market.
        - `calendarUri` string, required — URI where the full market calendar can be fetched.
        - `contentSha256` string, required — SHA-256 hash of the calendar content.
        - `description` string, required — Human-readable calendar description.
        - `id` string, required — Market calendar identifier configured off-chain.
        - `nextMarketTransitionUtc` string, date-time, nullable — Next UTC timestamp at which this calendar changes market state.
      - `coinGeckoId` string, nullable — CoinGecko asset identifier.
      - `coinMarketCapId` integer, nullable — CoinMarketCap numeric asset identifier.
      - `description` string, nullable — Human-readable market description.
      - `displayColor` string, nullable — Preferred display color for this market.
      - `logoUri` string, nullable — Logo URI for this market.
      - `name` string, nullable — Human-readable market name.
      - `tokensXyzAssetId` string, nullable — tokens.xyz asset identifier.
    - `openInterestCapBaseLots` integer, required — Wrapper for unsigned 64-bit values that must be JSON-safe for consumers written in JavaScript/TypeScript. Mirrors [`JsSafeI64`] but for unsigned Phoenix quantities such as base lots, quote lots, and slots.
    - `riskFactors` ExchangeRiskFactors, required — Risk factors as percentages. Used by the `/exchange` endpoint.
      - `backstop` number, double, required — Backstop liquidation risk factor as a percentage.
      - `backstopBps` integer, nullable — Backstop liquidation risk factor in basis points.
      - `cancelOrder` number, double, required — Cancel order risk factor as a percentage.
      - `cancelOrderBps` integer, nullable — Cancel order risk factor in basis points.
      - `highRisk` number, double, required — High risk threshold as a percentage.
      - `highRiskBps` integer, nullable — High risk threshold in basis points.
      - `maintenance` number, double, required — Maintenance margin risk factor as a percentage (e.g., 50.0 = 50%).
      - `maintenanceBps` integer, nullable — Maintenance margin risk factor in basis points (e.g., 5000 = 50%).
      - `upnl` number, double, required — Risk factor for positive unrealized PnL penalty as a percentage.
      - `upnlBps` integer, nullable — Risk factor for positive unrealized PnL penalty in basis points.
      - `upnlForWithdrawals` number, double, required — Risk factor for positive unrealized PnL penalty during withdrawals as a percentage.
      - `upnlForWithdrawalsBps` integer, nullable — Risk factor for positive unrealized PnL penalty during withdrawals in basis points.
    - `splinePubkey` string, required — The spline collection PDA (derived from market_pubkey)
    - `statsSnapshot` MarketStatsSnapshot — Live market stats captured alongside an exchange market config response.
      - `cumulativeFundingRate` integer, required — Wrapper for signed 64-bit values that need to survive JSON transport without tripping JavaScript's safe-integer limits. When `serde` is enabled, this can deserialize from a string or number to accommodate clients that stringify large values.
      - `fundingStartIntervalTimestamp` integer, required — Wrapper for unsigned 64-bit values that must be JSON-safe for consumers written in JavaScript/TypeScript. Mirrors [`JsSafeI64`] but for unsigned Phoenix quantities such as base lots, quote lots, and slots.
      - `openInterestBaseLots` integer, required — Wrapper for unsigned 64-bit values that must be JSON-safe for consumers written in JavaScript/TypeScript. Mirrors [`JsSafeI64`] but for unsigned Phoenix quantities such as base lots, quote lots, and slots.
      - `slot` integer, required — Solana slot of the state snapshot used to build these stats.
      - `slotIndex` integer, required — Intra-slot sequence index of the state snapshot used to build these stats.
    - `symbol` string, required — Market symbol (for example, "SOL-PERP").
    - `takerFee` number, double, required — Taker fee (percent).
    - `tickSize` integer, required — Tick size in quote lots per base lot per tick.

## Other responses

- `500` — Standard JSON error payload.

---

[API](https://skmtc.net/phoenix/apis/phoenix-eternal-api.md) · [All operations](https://skmtc.net/phoenix/apis/phoenix-eternal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phoenix/phoenix-eternal-api/versions/0f598402d680/schema)
