Docs / Using Lethe
Dark pool

Private perps hide who is trading. The Lethe dark pool goes further and hides the trade itself. Orders are matched against each other inside Lethe at Hyperliquid's mid price, so most of the flow never reaches a public order book at all.
At a glance
- Price Hyperliquid mid
- Matching Inside Lethe, off the book
- Leftover Hedged on Hyperliquid in small pieces
- Status Beta, paper mode
Why a dark pool
On a public order book everyone sees every order. A large buy moves the price before it's done filling, bots step in front of it, and anyone watching can work out your size, your entry and where you'd be liquidated. Traditional markets solved this with dark pools: venues where orders meet without being shown first.
Hyperliquid has no hidden orders, so Lethe runs the dark pool itself and uses Hyperliquid only for the price and for whatever is left over.
How an order fills
Your trading wallet signs the order and sends it to Lethe, not to Hyperliquid. Nobody outside Lethe sees it.
If someone else in the pool wants the other side, the two orders are matched at Hyperliquid's mid price. No spread, no slippage and nothing on the public book.
Anything still unmatched after a short window fills against Lethe's house account at the mid, so you're never left waiting.
The house hedges its total exposure on Hyperliquid, cut into random-sized pieces across many unrelated wallets at different times. The market sees scattered small trades, not your order.
Buyers and sellers cancel each other out. If the pool has $10M of buys and $9M of sells in a coin, $9M is matched privately and only the $1M difference is ever hedged. That $1M is mixed with everyone else's flow and split up before it touches the book.
Dark pool vs private perps
| Private perps | Dark pool | |
|---|---|---|
| Who you are | Hidden | Hidden |
| Your order on the book | Public | Hidden |
| Your size | Public | Hidden |
| Fill price | Book price and slippage | Hyperliquid mid |
| Custody | You hold the key | Lethe holds the margin |
What you're trusting
Private perps never take custody: you hold the trading wallet's key. The dark pool is different. To match orders off the book, Lethe has to hold the margin and keep the ledger of positions, so you're trusting Lethe's matcher to be honest and stay solvent.
We're working to shrink that trust step by step:
- Open rules. Every fill is at the published Hyperliquid mid, first come first served. You can check any fill against Hyperliquid's price at that moment.
- Proof of hedge. The house's hedge positions sit on Hyperliquid, where anyone can check them against the pool's total exposure.
- Secure enclave. The matcher moves into a TEE, so not even Lethe's operators can see orders or change the rules.
- Provable on chain. Over time, matches settle with proofs on chain, so the ledger can't be faked.
Risk checks
Leverage is capped at 20x. Every order checks your margin before it's accepted, open orders reserve margin as if they'd filled, and positions are closed at the mid if your equity falls under half of the margin they need. You're never matched against yourself.
API
Every write is a JSON message signed by your trading wallet with personal_sign. It includes your address, a random nonce and the time. Each message works once and expires after five minutes.
const message = JSON.stringify({
action: "order", coin: "ETH", side: "buy", sz: 1, // limit: 2400 (optional)
address: account.address, nonce: crypto.randomUUID(), time: Date.now(),
});
await fetch("/api/dark/order", { method: "POST",
body: JSON.stringify({ message, signature: await account.signMessage({ message }) }) });
// Reads need no signature
await fetch("/api/dark/account?address=" + account.address);
await fetch("/api/dark/stats"); // internal match share, house exposure, hedge
Other actions are cancel (with id) and, in paper mode, faucet for 10,000 test USDC.
Independent project, not affiliated with Elysium or Kinetiq. · X · Telegram