Skip to content
ZVOID logo
Public AMMShielded vault

Docs

How the public pools and the shielded vault work, what each one reveals, and what is not built yet.

Live today: swaps route through Jupiter, and the private vault for SOL runs on the Privacy Cash protocol. Perps, launches and pool creation are not live. The sections below describe the target design.

Overview

ZVOID is a liquidity protocol with two lanes. The public lane runs DLMM (discrete bins) and DAMM (dynamic-fee constant product) pools: swaps, liquidity and fees are fully visible onchain, like any AMM. The shielded lane is a vault where a deposit becomes a private note, and a later withdrawal proves ownership of an unspent note without revealing which deposit it was.

The two lanes are kept apart on purpose. A zero-knowledge verifier on its own does not make a public token transfer, a swap amount or an LP bin private, so the app never shows a privacy badge on a public action.

Shielded availability follows the active network's vault, approved denomination and verified prover configuration. Experimental deployments are labeled explicitly. The interface does not display synthetic protocol values.

DLMM pools

Liquidity sits in discrete price bins. Each bin has a fixed price; only the active bin holds both tokens. Bins to the left of the active bin hold the quote token and bins to the right hold the base token.

  • Bin step sets the price gap between neighbouring bins, in basis points.
  • Spot spreads liquidity evenly, Curve concentrates it near the active bin, Bid-Ask weights the edges.
  • A position only earns fees while the active bin is inside its range.

DAMM pools

Full-range constant-product pools with a fee that widens during volatility. Good for long-tail pairs and passive liquidity.

Swaps and slippage

Swaps are quoted by Jupiter across Solana venues, including Meteora DLMM and DAMM pools, and show the route, price impact, minimum received and the fee. Your slippage tolerance sets the minimum received; the transaction reverts if the price moves past it.

Dynamic bonding curve launches

Launch uses governance-approved templates. A template fixes the quote asset, token inventory, curve, trade fee, graduation threshold, DAMM fee tier, terminal-price tolerance and LP allocation policy before a token is created.

  • Create Launch guides you through the template, token metadata, recipient and final wallet confirmation.
  • Buy and sell quotes come from the active virtual pool. Refresh a quote whenever its deadline or market context changes.
  • The progress bar is calculated from real net quote reserves against the onchain graduation threshold.
  • Recorded OHLCV contains validated curve swaps only; an empty period has no manufactured volume.

Graduation and LP allocation

At the exact threshold, curve trading freezes. Any account may trigger the configured migration, but the caller cannot change its DAMM pair, fee tier, price tolerance, minimum shares or asset recipients.

Destination LP shares are recorded in escrow. Creator and protocol allocations can only be claimed by their configured recipients, and creator claims respect the onchain unlock time.

A graduation or claim button prepares the canonical program instruction. Your wallet simulation remains authoritative; verify the network, amounts and destination before signing.

Notes and commitments

When you deposit, your browser creates a secret and a nonce. The commitment, a hash of cluster, vault, asset, amount, secret and nonce with domain separation, is inserted into an onchain Merkle tree. The note (the secret material) never leaves your device unless you export an encrypted backup.

If you lose the note, the deposit cannot be recovered by anyone.

Withdrawing

To withdraw, your browser proves that the note's commitment is in the tree under an accepted root and reveals a nullifier derived from the secret. The program checks the root, rejects reused nullifiers, checks asset, amount, recipient, cluster and deadline, marks the nullifier spent, then transfers.

Privacy guarantees

What the MVP hides: the link between a specific deposit and a specific withdrawal, as long as the anonymity set is large and your timing and amount do not single you out.

  • Still public: asset, denomination, deposit sender, withdrawal recipient, timing, fee payer.
  • Still public: the vault's aggregate LP position and its changes.
  • Not offered: private swaps. These sit behind a separate research gate.

Threat model

  • Stolen or leaked notes
  • Malicious prover, relayer or compromised frontend
  • Replay across clusters or vaults
  • Incorrect Merkle roots and slot rollbacks
  • Toxic SPL or Token-2022 behaviour, account confusion, rounding
  • Proof malleability and oracle manipulation
  • Governance or admin key compromise

Invariants under test: vault liabilities never exceed vault assets, no note redeems twice, and every accepted proof maps to a registered circuit version and public-input schema.

Deployments

The program directory is published here once the protocol programs are deployed on Solana. Public market data currently comes from Meteora pools.

  • Use the program ID for integrations and transactions.
  • Upgrade authority is shown next to each upgradeable program.
  • Immutable programs have no upgrade authority.
  • Always confirm the network name before copying an address or signing a transaction.

A full address is intentionally shown without truncation. Copy it with the adjacent button, then verify it against the linked block explorer before use.

No programs published yet.

Architecture

Web app
 ├─ Public pools · DLMM · DAMM · Swap ──► Jupiter router ──► AMM programs
 ├─ Shielded vault · notes · proof status
 │    └─ Client-side prover ── proof + public inputs ──► Vault / Verifier
 └─ Read API / indexer ──► pool state, events, Merkle roots (never note secrets)

Solana
 ├─ AMM programs
 ├─ Shielded vault
 ├─ CommitmentTree + NullifierRegistry
 ├─ Verifier
 └─ ShieldedLPManager (later)