
Dark Percolator
Sealed intents, batch-crossed at the mark inside a Private Ephemeral Rollup. Hedge hints for Phoenix come out the other side.
Private perps on Solana. Traders submit sealed intents inside a MagicBlock Private Ephemeral Rollup on Intel TDX. A keeper batch-crosses them at the mark. Only the hedge comes back to the light.
One of the first private perps engines built on a Solana Private Ephemeral Rollup. It's an upgradeable program on the BPF loader, not finalized, so it can still evolve.
declare_id!, IDL address and TS ABI all match the keypairPer-trader positions, collateral and intents live in a Private Ephemeral Rollup. Only the trader, the market keeper and up to two auditors the trader names can read them. A no_std Rust risk core (hybrid fee, EWMA mark, mark envelope, margin, liquidation, sealed batch cross) is mirrored bit-for-bit in TypeScript.
Markets, vaults, deposits and delegation.
initMarketfundopenPortfoliodepositwithdrawdelegateMarketdelegatePortfolioPrivacy, marks, intents, crossing and commits.
initPermissionsetPrivacypushMarksubmitIntentcancelIntentcrossBatchliquidatecommitMarketundelegatePortfolioundelegateMarketinit_market creates the market, a lamport vault and a hedge ticket. Traders open a portfolio, deposit and delegate it to the market's TEE validator.
set_privacy seals the portfolio. Trader, keeper and named auditors are the only readers.
The oracle pushes the mark. When the Pyth legs go stale, an EWMA drifts toward the indicative price and the fee charges for the drift.
submit_intent is refused unless the portfolio is private. It stores the intent and its SHA-256 commitment.
cross_batch fills up to 16 portfolios at the mark. Buys cross sells, the pool absorbs the imbalance up to its cap and the heavy side fills pro rata. Margin is checked before any intent enters.
commit_market schedules record_hedge, which writes pool inventory to the hedge ticket. An operator reads it and places the offsetting Phoenix order.
Dark Percolator is the only piece deployed. Dark x402, Dark Swaps, Dark Pools and Dark Perps are concepts on the roadmap. Nothing about them is built or deployed yet.

Sealed intents, batch-crossed at the mark inside a Private Ephemeral Rollup. Hedge hints for Phoenix come out the other side.

HTTP 402 payments for agents, where the payer, the amount and the endpoint stay sealed and only settlement comes back out.

Swap intents matched inside the enclave, so the order isn't visible to anyone before it fills.

Deep, still liquidity where size rests without being seen, crossed at the mark in batches.

The Dark Percolator core grown into a full venue with more markets, LP shares for the pool and keepers that can be swapped out.
Next: authenticate to MagicBlock's devnet PER, measure real rollup slot timing, then call init_market with timing parameters based on that measurement.