docs_
trading the bounty-4 market as a regular user
what is this
perpapp.fun is a community frontend over the Percolator bounty-4 mainnet perp market. The smart contract is 4ToDRrQW5j3oeQm8uTAwV9Rp6NhYfH5E5hMKcXkqfwfz; the slab is GSAT5fTCUgB9sMMTBsVzhvALbkSv6p9CifWmShHf92hj. We don't own either of them — we just talk to them. The instrument is the composite STOXX 50 ETF / SOL perpetual at 20× max leverage.
the 3-leg oracle
Mark price is the composition of three Pyth pull-oracle feeds:
- · STOXX50_EUR / EUR — the European-equity leg (sponsored shard 0)
- · EUR / USD — FX leg, 24/5
- · SOL / USD — crypto leg, 24/7
The composition is STOXX50_EUR × EUR/USD ÷ SOL/USD which gives a STOXX-per-SOL price. Because collateral is wSOL and the market is inverted, going long = long the index in SOL terms.
hybrid fees
When all 3 legs are fresh — typically EU equity hours (Mon–Fri ~07:00–15:30 UTC) — the trading fee is a flat 1bp. Outside those hours the equity leg goes stale, the wrapper falls back to an EWMA-tracked mark, and the trade fee scales with the bps of EWMA mark movement since the last update. The design deliberately makes stale-window arbitrage uneconomical: you pay the move you'd extract.
how to trade
- Connect a wallet on the trade page (Phantom or Solflare).
- Deposit some SOL. The frontend wraps it to wSOL and calls
InitUserthe first time (which pays a one-time ~0.006 SOL fee to the insurance fund), thenDepositCollateral. - Pick a side, set margin and leverage. Click [ OPEN LONG ] or [ OPEN SHORT ]. This signs a
TradeNoCpiwith passive LP routing. - Watch PnL on the position card. [ FLATTEN POSITION ] sends an opposite-sign trade equal to your basis quantity.
- Withdraw, or close the account entirely once flat. Either path unwraps wSOL back to native SOL.
cranks & liquidations
The keeper crank is permissionless. A cron job (Anatoly's, our backup, anyone's) calls KeeperCrank on a 4-second cadence to advance funding accrual. LiquidateAtOracle became permissionless in v12.21 — anyone can liquidate underwater accounts and collect the 5bp liquidation fee, capped at $50K per call.
risk
The underlying program is an unaudited bounty target. Anatoly published the market specifically so people would try to drain it. See the risk page before depositing anything you'd miss.