
Shield it. Withdraw anywhere.
The first privacy protocol on Elysium. Shield HYPE or USDC, send inside the pool, withdraw to a fresh wallet.
A withdrawal is a proof, never a signature. The wallet that paid in never signs the way out. The relayer pays the gas, so the fresh wallet starts at zero.
Shield HYPE or USDC. Your wallet pays once. The amount becomes a note only your shielded key can spend, sealed into a Merkle tree of every note in the pool.

Your shielded key comes from one wallet signature, derived in the browser. The wallet that shields never signs the way out.
5 HYPE and 500 USDC per shield, 500 HYPE and 50,000 USDC per pool. The contracts are unaudited at launch.
Send without leaving the pool. The chain records two nullifiers and two commitments. It never records an amount or who received it.

It cannot spend or read anything. Notes sent to it are sealed to its encryption key and locked to its public key.
Every note carries 64 bytes for a message. It is sealed with the amount and padded, so a note with one looks like any other.
Pay anyone with a link. The secret sits in the URL fragment, so it never reaches a server. Whoever opens it withdraws to any address, no wallet needed.

Withdraw to a fresh wallet. A withdrawal is a zero-knowledge proof that you own a note, never a signature from the wallet that deposited. The relayer sends it and pays the gas.

A withdrawal from the pool is an in-chain transfer. Bridging out of Elysium to HyperEVM is a separate step that takes about 6 days through the rollup.
The relayer pays the gas and forwards a little HYPE with USDC withdrawals, so a new wallet can use what it received.
Ask for money without showing a wallet. A request link and a QR carry your shielded address and an amount. The payer sends inside the pool.

The chain only checks the math. The proof is built on your machine, so the note and the key never leave it.

The pool is only as private as its crowd.
Every note is a hash in a Poseidon tree of depth 20. Nothing about its owner.
Spending a note reveals a tag derived from its key. Nobody can match it to the note.
Groth16 over BN254, checked by the pool contract on every transaction.
Amounts and blindings are sealed to your key and found by your browser.
It submits and pays gas. Fee and recipient are bound in the proof, so it cannot change them.
Wait for more deposits. The pool starts with an empty anonymity set: a shield followed by a withdrawal of the same amount can be matched by anyone looking. The more wallets deposit after you, the harder that gets. Leave a different amount than you put in.

Two assets, one pool each. HYPE sits in the pool natively. USDC is the bridged USDC on Elysium, backed 1:1 on HyperEVM, pulled with a plain approve.
Verify it yourself. The pools have no upgrade path. Read the root, check a nullifier, and hash the proving key you are served.
# the current root of the pool cast call <hype pool> "getLastRoot()(uint256)" # has this note been spent? cast call <hype pool> "nullifierHashes(uint256)(bool)" <nullifier>
Cash in an envelope, instead of a bank transfer with your name on it.
The pools open small. Caps stay low until the contracts are audited.
Public wallets are public portfolios. Lethe gives you an address the rest of the chain has never seen.
Stop broadcasting your positions.
A public wallet is a public portfolio. Withdraw to an address with no history and trade from there, while the wallet that paid in stays where it was.

One fee, when money leaves. Moving inside the pool only costs gas.
You pay the gas of one transaction, about a cent. No Lethe fee to shield.
A small relayer fee covers the gas, paid from the note. Nothing else leaves the pool.
Same as a send. The exit fee is paid when the link is claimed and the coins leave.
0.3% of what leaves the pool, in the pool asset, plus the relayer fee. Both come out of the note.
Read the whole design before you shield. What it hides, what it does not, and how to verify a proof.
Open the docs