Core Operations

a) Deposits

  • User sends assets from an L1 or L2 chain into the ZK Pool bridge contract.

  • Assets are locked in a pool vault smart contract.

  • A commitment is created off-chain and inserted into the pool’s Merkle tree.

  • The user receives a note / commitment representing a private balance.

b) Private Actions Inside the pool, users can perform:

  • transfer – private balance transfer between commitments

  • swap – private trading between token pairs in the pool

  • stake / unstake – private staking and reward accrual

  • lend / repay – private lending positions

  • vote – private governance actions

Each action:

  1. Builds a witness using the user’s commitments.

  2. Generates a ZK proof that validates the rules (e.g. conservation of balances, rights to spend, no double-spend).

  3. Updates the pool’s state tree with new commitments / nullifiers.

c) Batching & Settlement

  • The Sequencer aggregates actions from multiple pools.

  • A batch is formed and sent to the Prover cluster.

  • The Prover generates a ZK proof for the entire batch.

  • The proof is submitted and verified on the settlement chain (L1).

  • Pool states are finalized.

d) Withdrawals

  • User submits a withdrawal request with a ZK proof that:

    • they own a valid commitment in the pool

    • they are not revealing linkable identity information

  • On success, funds are released to:

    • a public address on L1/L2, or

    • another private pool (private-to-private routing).

Last updated