Launch app →
fluxdex · docs

Perps that can't go insolvent.

FluxDEX is a perpetual futures exchange for BTC, ETH, SOL, HYPE, ZEC, NEAR, JUP and PUMP, with up to 50x leverage, running on a port of percolator, the open-source risk engine from toly's GitHub.

Most perp venues stay solvent by promise: an insurance fund, then auto-deleveraging when that runs out. Percolator makes solvency structural. Capital is senior, profit is junior, and nobody can withdraw more value than the vault holds.

Quickstart

  • Connect Phantom (or any Solana wallet) and sign the free session message. It moves no funds.
  • Pick a market on the left of the trade screen.
  • Choose Long or Short, a size in USD and your leverage. The ticket shows entry, margin required, estimated liquidation and fee before you confirm.
  • Close any time from Your positions. Profit is paid at the current haircut H.

Markets

MarketMax leveragePrice source
BTC-PERP50xCoinGecko · Jupiter fallback
ETH-PERP50xCoinGecko · Jupiter fallback
SOL-PERP50xCoinGecko · Jupiter fallback
HYPE-PERP25xCoinGecko
ZEC-PERP20xCoinGecko
NEAR-PERP20xCoinGecko
JUP-PERP20xCoinGecko · Jupiter fallback
PUMP-PERP15xCoinGecko · Jupiter fallback

Markets listed by users (see Listing) are priced by Jupiter, with leverage capped by pool depth.

Pricing

Marks refresh every 10 seconds. Majors are priced from CoinGecko's aggregated spot price. If a Solana major hasn't updated for 30 seconds, FluxDEX falls back to Jupiter's on-chain price for its mint. Every update passes through the bounded crank below before it can move a mark.

The percolator engine

Three invariants, applied every slot:

1 · Haircut H: capital is senior

The vault V holds every trader's capital C_tot plus the insurance fund I. Whatever is left is the residual, and only the residual can pay profit:

Residual = V − (C_tot + I)
H        = min(Residual, ΣPnL⁺) / ΣPnL⁺

When the residual covers all open profit, H = 100% and every exit is paid in full. If it ever didn't, every winner would be paid the same fraction H, and your collateral would still come back first. The live H is on the landing page and in the app.

2 · A/K/F indices: no queues, no ADL lottery

Each side of each market keeps three lazy indices. Marks and funding update the side once, and every account reads its share in O(1):

K_side += A_side · ΔP        (mark-to-market)
F_side ±= A_side · funding   (funding)
liquidation shrinks A_side; any deficit shifts K for the whole side

Losses are shared pro-rata across a side instead of picking unlucky counterparties.

3 · Bounded cranks

A single update can only move a mark by a bounded amount per slot:

|ΔP| · 1e4 ≤ max_move_bps (800) · Δt · P_last

A bad tick or a spiking oracle can't liquidate the book in one step.

Side recovery

If a side's A drops below 0.25 it enters DrainOnly (positions can close, none can open). When its open interest reaches zero it moves to ResetPending, increments its epoch and returns to Normal.

Margin & liquidation

ParameterValue
Maintenance margin0.5% of notional (min $1)
Liquidation fee0.5%
Profit warm-up25 slots before fresh profit counts as withdrawable

A position is liquidated when collateral plus PnL falls below maintenance. The estimated liquidation price is shown on the ticket and in Your positions.

Fees & funding

Taker fee: 0.06% of notional on open and close. Funding is shown per market, applied through the F index each slot, and bounded to ±0.08% per hour.

Listing a market

Paste any Solana token mint on the landing page. FluxDEX finds its deepest pool on DexScreener and lists it if liquidity is at least $50,000. Leverage is capped by depth:

Pool liquidityMax leverage
≥ $5M20x
≥ $1M15x
≥ $500K10x
≥ $150K5x
below3x

Wallet & sessions

FluxDEX uses Solana wallets. On connect you sign one session message (free, no transaction). Every open and close carries that signature, which the server verifies (ed25519) against your address, so nobody else can trade your account.

API

EndpointReturns
GET /api/marketsevery market: price, 24h change, funding, max leverage, side modes
GET /api/market/<SYM>one market with recent price history and side indices
GET /api/metricsopen interest, vault, insurance, residual, haircut H, leaderboard
POST /api/listlist a Solana mint as a market