Overview
Lethenymous is a Solana constant-product AMM with public liquidity and shielded note ownership for private swaps.
Lethenymous is a privacy-preserving Solana AMM architecture. Its pools, reserves, custody accounts and transactions remain public. Zero-knowledge proofs let a trader authorize a spend from a shielded note without publishing the note's owner secret or Merkle path.
The design is captured by Public Pools, Private Swaps. Lethenymous does not make the pool, transaction, or swap amounts invisible. It obscures the direct path between a wallet and an individual private position.
The privacy boundary
Liquidity providers use ordinary public pool vaults. A wallet enters shielded custody through a public Shield transaction, which creates a committed note. A private operation then proves that a note is spendable and settles through the same public CPMM. The chain sees the swap direction, amounts, pool reserve changes, fee payer, nullifier and output commitments; it does not see the note's spend secret or membership path.
Protocol components
| Component | Role |
|---|---|
| CPMM program | Manages pool accounts, LP vaults, fees, Shield, Private Swap and Unshield settlement. |
| Shielded Note | Commits to pool, asset, amount, owner commitment and randomness. |
| Poseidon Merkle tree | Records note commitments and supports membership proofs. |
| Groth16 circuits | Verify note ownership, membership, nullifier derivation and operation constraints. |
| SDK | Reconstructs witnesses, keeps encrypted note state, invokes the prover and builds transactions. |
| Optional relayer | Pays fees for the supported private transaction while remaining distinct from the note owner. |
Current release
The public frozen release is Core 0.1.0 and @lethenymous/[email protected] on Solana Devnet. Classic SPL Token is in scope. The production Groth16 parameters use a single-party trusted setup, and organic Devnet Gen0-to-Gen1 rollover was not exercised. Review Current release, Security and Validation evidence before integrating.
Start here
- Learn the high-level lifecycle.
- Read the privacy model before interpreting on-chain data.
- Install the SDK to build a client.
- Check deployments for canonical program and relayer values.