Skip to main content

Deployment

Parquet runs on Solana mainnet: perpetual markets across US equities, crypto, commodities, forex, and trading cards (see Markets for the live list), fed by an off-chain price-relay service under the dual-feed oracle (an on-chain PriceUpdateV2 price account primary during RTH for the free-RTH equity markets; the relayer-written PriceFeed PDA off-hours and for relayed markets; synthetics such as SPCX priced solely from a third-party reference feed), the keeper stamping funding for every market, and the public indexer ingesting on-chain activity over webhooks. Devnet remains live for SDK testing. The six programs are deployed under deploy wallet PARQVsPSbsn1Pm7kdayZpicVu2pBRLYEnqijLP2QC3z. The same program IDs are used on localnet, devnet, and mainnet (the addresses below).
Explorer links below open on Orb (Solana mainnet — Orb’s default cluster) so they show the live deployment. The program IDs are the same on every cluster, so the same addresses also resolve on devnet; switch Orb’s cluster selector to devnet if you need the devnet view.

Programs

pool_program

Owns per-market vaults, manages the v4 payout queue and side_bucket, accrues fees, mints LP shares on deposits.
Acme8JzWrvVqGJz7nTKVsLYisN6MtP83nrs4fVAeXJsN
View on Orb

perp_engine

Position lifecycle (open/close/liquidate), order management (limit/stop), margin updates, funding-rate cranks. Calls pool_program via engine_auth CPIs.
6QrsMTMEu9rsLpyxQgRdvQsWoPgHGY9npNNiwTtXsbdc
View on Orb

oracle_adapter

Lightweight CPI surface for read-only price reads. Other programs CPI here rather than parsing PriceFeed bytes directly. Under the dual-feed oracle, the adapter reads the on-chain PriceUpdateV2 price account as primary during RTH and falls back to the relayer-written PriceFeed PDA (carrying the off-hours reference) when the primary feed ages out — so reads succeed 24/7.
6fsnWa9tcKcPiuQgdUbTMsiwUr43MNoxa1FECPFrvSpd
View on Orb Builds are gated in CI to ensure the production price-validation path is compiled in.

price_feed

Per-market PriceFeed PDA storage, written by the off-chain price-relay service. Decode the PriceFeed account via the SDK (PriceFeedClient / utils/priceMath); the binary layout is internal and not intended for hand parsing.
Dgorf5LPiMttdTxWcrsiA2j94kWKw55gJLRJm8P4E1Hn
View on Orb

fee_distributor

Two-stage fee routing: sweep non-LP fees from pool, distribute via configurable splits (staker_split_bps, treasury_split_bps; referral share is the remainder). Includes disburse_referral for affiliate payouts.
CHTpVtZQboxjM6N9xk1RR29jZyWqFNV77cmQNJ18RNNL
View on Orb

staking

Multi-pool staking. Two pool types via reward_source enum (BalanceBased / EmissionSchedule). Supports atomic claim_and_restake across pool types.
35HddZHf84u6DeyLoZL3Z3a8pZ59594xu1aizj7VrAGR
View on Orb

mock_usdc (devnet only)

Devnet collateral mint. The deploy wallet is the mint authority. Mainnet uses the canonical USDC SPL mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v — do not assume this devnet mock address on mainnet.
DA8DJqnj49QrNN6TSbZ13cMubdJ8agSeEohH5AGjkgYA
View on Orb

Protocol token (PARQ)

The Parquet protocol token — a Token-2022 mint (token program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb), 6 decimals, ~1B fixed supply, mint + freeze authority revoked, metadata-only (no transfer fee, transfer hook, or permanent delegate). It is the stake asset for the fee-fed staking pool. For supply, allocation, and how the token accrues value, see $PARQ token.
VtwGKv7dcpY7aFb8H7MvZfEtUAKwtsHcXSkejCAparq
View on Orb

Markets

perp_engine holds a per-symbol MarketState PDA for every listed market (initialized on both devnet and mainnet). Markets are backed by shared per-category liquidity pools in pool_program — equities by a single equity-us pool, with separate pools for crypto, commodities, forex, and trading cards (the trading-card pool is operator-seeded and excluded from the public LP farm). The venue spans US-equity, crypto, commodities, forex, and trading-card perpetuals; see Markets for the current, canonical list. Markets fall into a few feed classes:
  • RTH-primary equities — read an on-chain PriceUpdateV2 as primary during regular trading hours, falling back to the relayer-written PriceFeed PDA off-hours.
  • Relayed equities — read the PriceFeed PDA (relayer-written from an off-exchange reference feed) as primary in every session.
  • Synthetic / off-exchange-sourced markets (e.g. SPCX) — priced from an off-exchange reference feed with no on-chain primary oracle.
  • Crypto, commodities & forex — 24/7 markets on their own category pools.
  • Trading cards — 24/7 collectible-card markets on a dedicated tcg-usd category pool, priced from a card-market reference feed; tighter risk parameters (50× max) and excluded from the public LP farm.
A market with a stale or absent feed keeps its MarketState PDA initialized but reverts opens until a live feed is restored. All markets share a single wallet-notional-tiered leverage table applied in every session — **up to 200× on the smallest tier (≤100K),scalingdownbywalletnotionaltier(100K)**, scaling down by wallet-notional tier (≤200K / ≤250K/250K / ≤1M / >1M,to10×for>1M, to 10× for >1M). The 200× openable max follows from the 50 bps initial margin (a fresh max-tier open has ~0 economic cushion after the open fee). Maintenance margin is 40 bps venue-wide, liquidation fee = 20% of remaining equity at liquidation, funding cap = 300% APR (≈0.82%/day). OI cap = 5MpermarketduringRTHand5M per market during RTH and 500K off-hours (the one risk parameter that still tightens off-hours, alongside off-exchange reference pricing); five recently-added markets — ASML, COST, RIVN, IBM, DELL — carry a tighter $100K off-hours cap. An ADL tail-backstop (Tier-B queue-IOU socialization) is armed off-hours on all markets as a last-resort bound on the payout-queue tail — see Payout queue and Risks. Bad-data rejection happens in the off-chain aggregator. See Markets for the symbol list.

Fee distribution split

Effective on mainnet: LP 50% / stakers 31.25% / treasury 12.5% / referral 6.25% of total trading fees. The LP cut is taken first (lp_fee_bps = 5000 on each category pool’s fee settings); the remainder is split among stakers, the treasury, and the referral pool in those proportions.

See also

  • Developer docs — SDK and indexer API references, available to builders on request.
  • Markets — symbol list and per-market parameters.