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 commitmentsswap– private trading between token pairs in the poolstake / unstake– private staking and reward accruallend / repay– private lending positionsvote– private governance actions
Each action:
Builds a witness using the user’s commitments.
Generates a ZK proof that validates the rules (e.g. conservation of balances, rights to spend, no double-spend).
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