Skip to content

Papersol ​

Papersol is a perpetual futures exchange that runs as a single program on Solana. You post USDC as margin and open isolated long or short positions, up to 1000x, on crypto prices from the Pyth oracle. Your counterparty is the house, a pool funded only by traders' realized losses. Winning trades are paid from the house after a win haircut and a 2% payout fee. If the house can't cover a win, the win goes into a first-in, first-out payout queue. Losing trades pay the house. Closing a trade mints $NOTE to the trader in proportion to its realized PnL, whether it won or lost. $NOTE is an SPL token: stake it for a share of protocol fees in USDC, or withdraw it to your wallet. There is no order book, spread, funding rate or opening fee. Every order fills at one specific oracle update chosen by a pin time set after the order lands, so neither the trader nor the filler picks the price. Whether that price was still unpublished when the order was placed depends on the Solana clock and on recent oracle observations (details).

Status: the program has not been independently audited. At the time of writing it runs on Solana devnet with test USDC. Values marked "mainnet: TBD" are not final.

Key facts ​

Settlement chainSolana. All balances, positions and orders are on-chain accounts of one program.
CollateralUSDC (classic SPL Token, 6 decimals). Devnet uses a test USDC mint. On mainnet the runbook specifies the canonical USDC mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.
MarketsBTC-USD (market 0) and ETH-USD (market 1). Governance can add markets.
Position typeIsolated margin, one position per open order, full close only. notional = margin × leverage.
Max leverage1000x (the program-wide maximum, also the current per-market setting). Whole numbers only.
Order typeMarket orders only, filled in two steps at a pinned oracle price (see How trading works). Fills take at least 6 seconds.
Trading costsNo opening fee, no funding and no spread. Wins are haircut: the base haircut is 7.7%, it is larger on small moves, and a 0.31 bp deadband applies. A 2% fee is taken from win payouts, and from realized losses (out of the loss, not on top of it) while the payout queue is empty. The loss fee is waived while the queue is active. Each request also pays an execution fee of 0.0005 SOL.
LiquidationA hard bust: the whole margin is lost. A permissionless liquidation needs a fresh price at which the position is past its bust price (5 bps before zero equity) after allowing for Pyth's confidence band, or at zero equity at the midpoint.
OraclePyth pull oracle. The program accepts only fully Wormhole-verified PriceUpdateV2 accounts from the hard-coded receiver rec2HHDDnjLfj4kE7VyEtFA1HPGQLK33259532cRyHp.
CounterpartyThe house (LP), funded only by losses. While the payout queue is empty, treasury above $5,000,000 is swept to $NOTE stakers whenever a settling instruction runs. The cap doesn't apply to cash in the side bucket.
CustodyAll USDC sits in one program-owned vault. Your balance is recorded in your own on-chain trading account. Withdrawals need your wallet's signature and enough available balance (plus valid token accounts and a successful SPL Token transfer). No pause, oracle or governance-parameter gate applies to them. No admin instruction can move user balances, but the program's upgrade authority can replace the program.
Token$NOTE: minted at close on realized PnL, wins (on raw PnL) and losses alike, net of a 2% fee; liquidations mint on the full margin. An SPL token you can withdraw to a wallet; instant stake and unstake, rewards paid in USDC.
GovernanceAfter launch, economics, execution, market and role changes go through a timelocked proposal. The delay is 60 s on devnet; mainnet: TBD, the runbook requires at least 48 h. The program allows up to 30 days, refuses to launch production builds with less than 24 h, and never lets a proposal set the delay below the lesser of the current delay and 24 h. Pause, OI brake and trailing OI limits change instantly through their role keys.
ExecutionPermissionless. Anyone can fill orders, liquidate, post oracle heartbeats and pay out the queue. In practice the Papersol keeper does all of this.
Program ID9zA7Ctc39vg8tbUezeiVHfNotnt4SLAgY8oX9VXkciCw (current deployment; mainnet: TBD)

Pages ​

Papersol is experimental software. Trading with leverage can lose your whole margin.