Privacy Pools
Zero-knowledge privacy pools on Ethereum and other chains that break the on-chain link between a deposit and a withdrawal, but only for deposits a screening provider has approved.
LiveShielded pool
Version 1 pools are live on Ethereum, Arbitrum, Optimism and BNB Chain, with a separate Starknet implementation of the same design, and version 2 has run on Ethereum, BNB Chain and Citrea since 1 Sep 2026, with further version 2 deployments on Arbitrum, Optimism, Base and Robinhood Chain since 14 Oct 2026 that had no association set as of 16 Oct 2026.
- TVL
- $9.4MDefiLlama, 18 Oct 2026
- Launched
- 31 Mar 2025
- Token
- None
- Chains
- Ethereum, Arbitrum, Optimism, BNB Chain, Starknet and Citrea
How it works
Privacy Pools is a non-custodial privacy protocol built by 0xbow on a design first set out in a 2023 research paper co-written by Vitalik Buterin. A user deposits ETH or a supported token into a pool contract from an ordinary public address. Later, the user can withdraw all or part of that deposit to a different address by submitting a zero-knowledge proof, a piece of cryptography that shows the user owns one of the deposits in the pool without revealing which one. Withdrawals can be sent through a relayer, which takes a fee from the withdrawn amount and pays the network fee, so the receiving address needs no funds of its own.
What sets it apart from earlier mixers is the association set. An association set provider (ASP) reviews each deposit, keeps the list of approved deposits off-chain and publishes a short cryptographic summary of it, a Merkle root, on-chain, and a private withdrawal must prove that its deposit is in that approved set. The stated aim is to let people transact privately without their funds being mixed with those of illicit actors. The main ASP is run by 0xbow, and its app says approval can take up to seven days; on BNB Chain the set also includes deposits approved by Brevis. If a deposit is never approved, or its approval is later revoked, the original depositor can still recover the funds through ragequit, a public withdrawal back to the depositing address that gives no privacy.
The protocol hides only the connection between a deposit and a withdrawal. Deposits are public, including the depositing address and the amount, and so are withdrawals, including the receiving address and the amount, along with the time of each. In version 1 each asset on each chain has its own pool, so a user hides only among people using the same asset on the same chain. A relayer can also see request metadata such as the user's IP address.
Version 2, live since 1 Sep 2026 on Ethereum, BNB Chain and Citrea, replaces the per-asset pools with one multi-asset pool per chain and adds private transfers inside the pool, in which the sender, recipient and amount are not shown on-chain. ASP approval now gates transfers as well as withdrawals, and ragequit returns a note's value to whoever currently holds it. On Ethereum, USDC, USDT and WETH, and on BNB Chain USDT, enter version 2 as shares in Aave v3 lending positions, so they earn interest while shielded, less a fee of 20% of that interest. Users can give an auditor a receipt for a single payment, or a viewing key for their incoming history, without giving up the ability to spend. Deposits and withdrawals to public addresses stay visible, as in version 1.
TVL over time
- $9.4M TVL now
- +4.4% in 30 days
- $9.5M highest daily TVL, 4 Oct 2026
Daily total value locked (TVL) from DefiLlama since 31 Mar 2025, with the current value refreshed every hour. The latest value is from 18 Oct 2026, 04:12 UTC. The series is in protocol-privacy-pools.json, listed on the Data page.
What it hides and what it does not
What it hides
- Which deposit a private withdrawal comes from: the proof shows that the user owns one of the deposits in the pool, and that it is in the approved association set, without revealing which one.
- In version 2, the sender, recipient and amount of private transfers inside the pool.
What it does not hide
- Deposits: the depositing address, the amount and the time.
- Withdrawals: the receiving address, the amount and the time.
- Ragequit exits, which are public withdrawals that give no privacy.
- In version 1, the asset and chain chosen: each has its own pool, so a user hides only among people using the same asset on the same chain.
- Request metadata such as the user's IP address, to a relayer.
Drawn from how it works, above; the sources are listed at the end of the page. Where privacy still leaks explains the patterns, such as timing and amounts, that can give users of any design away.
Audits
Four security reviews, oldest first, with what each covered and found. Dates are when each report was issued, unless the entry says otherwise.
| Date | Firm | Scope and findings |
|---|---|---|
| Oxorio | Version 1 zero-knowledge circuits (commitment, Merkle tree and withdrawal), reviewed from 31 Jan 2025; 10 findings, none critical or major, of which five were fixed, four acknowledged and one judged not an issue. |
|
| Oxorio | Version 1 smart contracts (Entrypoint, the PrivacyPool base contract and its native-asset and ERC-20 versions, State and two libraries), reviewed from 25 Feb 2025; 18 findings with no critical and two major, of which six were fixed, six acknowledged without a code change and six judged not to be issues. |
|
| Not dated | Auditware | The same seven version 1 contract files; six findings (three medium, three low), of which three were mitigated, one partly mitigated, one acknowledged and one judged no risk by design. The report carries no date and was added to 0xbow's repository on 19 Mar 2025. Sources: Privacy Pools smart contracts audit report ; upload contract audits (#49), commit bc3ba13 |
| Oxorio | An upgrade to the version 1 Entrypoint that rejects reused deposit precommitments, to prevent stuck funds; one warning and one informational finding, both acknowledged without a code change. Source: Privacy Pools Entrypoint upgrade security audit report |
Incidents
One incident that affected the project or its users.
-
0xbow fixed a flaw in its version 1 SDK that converted key material to a standard JavaScript number, which had left newly generated account keys with less than the intended 256 bits of entropy, and released a migration flow so that existing users could move their accounts to stronger keys.
Sources: Privacy Pools website changelog (version 2.12.0, entropy upgrade) ; fix: replace bytesToNumber with bytesToBigInt and add circuits artifact integrity verification (#123) ; feat: entropy upgrade (pull request #186) ; Privacy Pools SDK changelog
Milestones
13 milestones, oldest first.
-
Vitalik Buterin, Jacob Illum, Matthias Nadler, Fabian Schär and Ameen Soleimani posted the paper 'Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium' on SSRN, proposing privacy pools built around association sets.
Sources: Great resonance of the new publication: Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium ; Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium (SSRN 4563364), DOI metadata
-
A peer-reviewed version of the paper appeared in the journal Blockchain: Research and Applications, volume 5, issue 1, as article 100176.
Sources: Blockchain privacy and regulatory compliance: Towards a practical equilibrium, Blockchain: Research and Applications 5(1), 100176, DOI metadata ; Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium
-
0xbow concluded the trusted setup ceremony for the version 1 circuits, with more than 500 contributors.
Source: Celebrating the conclusion of the trusted setup ceremony
-
Privacy Pools launched on Ethereum mainnet with a single ETH pool: its Entrypoint and ETH pool contracts were deployed on 29 Mar 2025 and the first deposit was made on 31 Mar 2025.
Sources: 0xbow unveils 'Privacy Pools,' a new blockchain privacy tool drawing from Vitalik Buterin's research ; Creation transaction of the Privacy Pools Entrypoint proxy on Ethereum ; Creation transaction of the Privacy Pools ETH pool on Ethereum ; Event logs of the Ethereum ETH pool from its deployment (first Deposited event at block 22167294) ; First deposit transaction into the Ethereum ETH pool ; Privacy Pools website chain and pool configuration (src/config/chainData.ts) ; Deployments
-
0xbow began adding ERC-20 pools on Ethereum with USDS, and by 28 Aug 2025 had added pools for sUSDS, DAI, USDT, USDC, wstETH, wBTC, USDe, USD1, frxUSD and WOETH, followed by fxUSD on 11 Dec 2025 and BOLD on 11 Feb 2026.
Sources: Privacy Pools website chain and pool configuration (src/config/chainData.ts) ; Ethereum block 22917987 (USDS pool deployment block) ; Ethereum block 22988421 (USDT pool deployment block) ; Ethereum block 23239091 (WOETH pool deployment block) ; Ethereum block 23988640 (fxUSD pool deployment block) ; Ethereum block 24433029 (BOLD pool deployment block)
-
The Ethereum Foundation integrated Privacy Pools into its Kohaku wallet tooling, which was demonstrated at the Cypherpunk Congress during Devconnect in Buenos Aires.
Sources: 0xbow Closes $3.5M Round for Compliant Crypto Privacy Technology Following Ethereum Foundation Integration ; Kohaku: privacy-first tooling for the Ethereum ecosystem (README)
-
0xbow reported that Privacy Pools had processed USD 6 million in transaction volume for more than 1,500 users, with 1,186 withdrawals, since its launch.
-
Version 1 pools were deployed on Arbitrum, Optimism and BNB Chain, starting with ETH and BNB, USDC pools followed on Arbitrum and Optimism on 16 Dec 2025, and the app added these chains between 17 Dec 2025 and 12 Feb 2026.
Sources: Privacy Pools website chain and pool configuration (src/config/chainData.ts) ; Optimism block 144288142 (ETH pool deployment block) ; Arbitrum block 404391809 (ETH pool deployment block) ; BNB Smart Chain block 69568985 (BNB pool deployment block) ; Optimism block 145160973 (USDC pool deployment block) ; Arbitrum block 411197154 (USDC pool deployment block) ; Privacy Pools website changelog (versions 2.4.0, 2.5.0 and 2.9.0)
-
Pools for STRK and ETH were deployed on Starknet, where Privacy Pools runs as separate contracts with its own app at starknet.privacypools.com, and a USDC pool followed on 22 Jan 2026, the day the main app added Starknet support.
Sources: Privacy Pools Starknet website chain and pool configuration (src/config/chainData.ts) ; Privacy Pools on Starknet ; Privacy Pools website changelog (version 2.7.0, Starknet chain support)
-
A USDT pool was deployed on BNB Chain whose association set combines approvals from 0xbow and from Brevis, a design BNB Chain describes as a joint venture between Brevis and 0xbow launched in early 2026, and the app added the BNB Chain pools on 12 Feb 2026.
Sources: Privacy Pools website chain and pool configuration (src/config/chainData.ts) ; BNB Smart Chain block 76430320 (USDT pool deployment block) ; BNB Chain Privacy at Scale: ZKP and FHE for Institutions ; Privacy Pools website changelog (version 2.9.0, BNB and BSC-USD pools)
-
The trusted setup ceremony for the 27 version 2 circuits, opened on 8 Jul 2026, was finalised with a public randomness beacon after 13,500 contributions, 500 for each circuit.
Sources: Privacy Pools V2 trusted setup ceremony status ; Privacy Pools V2 trusted setup ceremony (README)
-
Privacy Pools v2 went live on Ethereum, BNB Chain and Citrea, with one multi-asset pool per chain, private transfers inside the pool and Aave v3 yield shares for USDC, USDT and WETH on Ethereum and for USDT on BNB Chain.
Sources: Ethereum mainnet (Privacy Pools v2 deployment) ; BNB Chain (Privacy Pools v2 deployment) ; Citrea (Privacy Pools v2 deployment) ; Creation transaction of the Privacy Pools v2 PoolVault proxy on Ethereum ; What is Privacy Pools v2?
-
The version 2 contracts were deployed on Arbitrum, Optimism, Base and Robinhood Chain, which 0xbow's production relayer lists alongside the first three chains, but no association set had been published on them as of 16 Oct 2026.
Sources: Creation transaction of the Privacy Pools v2 PoolVault proxy on Optimism ; Creation transaction of the Privacy Pools v2 PoolVault proxy on Base ; Creation transaction of the Privacy Pools v2 PoolVault proxy on Arbitrum ; Creation transaction of the Privacy Pools v2 PoolVault proxy on Robinhood Chain ; Privacy Pools v2 production relayer details (chains and contracts) ; Event logs of the Privacy Pools v2 ASPRegistry on Optimism (no root published)
Funding
Two sources of funding, oldest first. Amounts are in US dollars; a dash means the sources give no US dollar figure.
| Date | Round | Amount | Investors |
|---|---|---|---|
Pre-seed Sources: 0xbow Closes $3.5M Round for Compliant Crypto Privacy Technology Following Ethereum Foundation Integration ; 0xbow raises $3.5 million seed round for Ethereum Foundation-backed Privacy Pools project |
– | Vitalik Buterin | |
Seed Sources: 0xbow Closes $3.5M Round for Compliant Crypto Privacy Technology Following Ethereum Foundation Integration ; 0xbow raises $3.5 million seed round for Ethereum Foundation-backed Privacy Pools project |
$3.5M | Starbloom Capital (lead), Coinbase Ventures, BOOST VC, Plutos Capital, Balaji Srinivasan, Sam Kazemian, Dan Finlay |
Risks
Privacy depends on how busy each pool is, and the pools are modest: DefiLlama, which covers Ethereum, Arbitrum and Optimism, put total value locked at about USD 9.4 million on 16 Oct 2026, mostly in USDT; the Ethereum ETH pool held about 778 ETH that day, and the version 2 vault on Ethereum held less than USD 3,000. Because deposit and withdrawal amounts and times are public, an unusual amount or a quick withdrawal after a deposit can link the two without any weakness in the cryptography. Use of the private exit depends on 0xbow's screening policy: the ASP can delay, decline or revoke approval, leaving only the public ragequit exit, and on the four chains where version 2 was deployed on 14 Oct 2026 no association set had been published as of 16 Oct 2026, so only ragequit would work there. The version 1 Entrypoint and the version 2 contracts are upgradeable, and admin role holders can change fees, add or wind down pools and, in version 2, pause deposits and transfers or swap the proof verifiers, so users rely on those key holders. Both versions rest on Groth16 trusted setup ceremonies, which are sound only if at least one contributor was honest. Client software matters too: until March 2026 the version 1 SDK generated account keys with less entropy than intended. Version 1 was audited by Oxorio and Auditware in 2025, but as of 16 Oct 2026 no version 2 audit report had been published (its documentation calls only the ERC-20 yield router flow audited and names no auditor), the version 2 SDK was not yet public, no audit report for the Starknet contracts was found in 0xbow's repositories, and version 2 yield shares also carry Aave v3 risk.
Sources
The documents this profile rests on. Each audit, incident, milestone and funding round above also links its own sources.
- Privacy Pools
- What is Privacy Pools?
- Deployments
- privacy-pools-core repository
- Deposit (protocol documentation)
- Withdrawal (protocol documentation)
- ASP layer (protocol documentation)
- Ragequit (protocol documentation)
- Entrypoint.sol (version 1 contract source)
- Privacy Pools website chain and pool configuration (src/config/chainData.ts)
- Privacy Pools website constants (src/config/constants.ts)
- Privacy Pools website changelog
- Privacy Pools SDK changelog
- fix: replace bytesToNumber with bytesToBigInt and add circuits artifact integrity verification (#123)
- feat: entropy upgrade (pull request #186)
- Privacy Pools Starknet website chain and pool configuration (src/config/chainData.ts)
- Privacy Pools on Starknet
- 0xbow
- What is Privacy Pools v2?
- v1 vs v2: what changed
- Threat model
- Quickstart (SDK access)
- Ragequit (version 2)
- AccessRouter and roles
- PPRouter contract
- Yield shares
- Receipts and viewing keys
- Why the app warns you about withdrawing everything
- Deployments (version 2)
- Privacy Pools v2 documentation index (llms.txt)
- Ethereum mainnet (Privacy Pools v2 deployment)
- BNB Chain (Privacy Pools v2 deployment)
- Citrea (Privacy Pools v2 deployment)
- Privacy Pools v2 production relayer details (chains and contracts)
- Transactions of the Privacy Pools v2 ASPRegistry on Citrea (first root published 2026-09-22)
- Event logs of the Privacy Pools v2 ASPRegistry on Base (no root published)
- Event logs of the Privacy Pools v2 ASPRegistry on Robinhood Chain (no root published)
- Privacy Pools V2 trusted setup ceremony status
- Privacy Pools V2 trusted setup ceremony (README)
- Celebrating the conclusion of the trusted setup ceremony
- Privacy Pools circuits security audit report
- Privacy Pools smart contracts security audit report
- Privacy Pools smart contracts audit report
- upload contract audits (#49), commit bc3ba13
- Privacy Pools Entrypoint upgrade security audit report
- Security advisories for 0xbow-io/privacy-pools-core (none published)
- Great resonance of the new publication: Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium
- Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium (SSRN 4563364), DOI metadata
- Blockchain privacy and regulatory compliance: Towards a practical equilibrium, Blockchain: Research and Applications 5(1), 100176, DOI metadata
- 0xbow Closes $3.5M Round for Compliant Crypto Privacy Technology Following Ethereum Foundation Integration
- 0xbow raises $3.5 million seed round for Ethereum Foundation-backed Privacy Pools project
- 0xbow unveils 'Privacy Pools,' a new blockchain privacy tool drawing from Vitalik Buterin's research
- Kohaku: privacy-first tooling for the Ethereum ecosystem (README)
- BNB Chain Privacy at Scale: ZKP and FHE for Institutions
- PrivacyPoolSimple (ETH pool) contract on Ethereum, balance read
- Privacy Pools Entrypoint proxy on Ethereum, current implementation
- Privacy Pools v2 PoolVault on Ethereum, token balances
- Privacy Pools v2 PoolVault on Ethereum, native balance
- Privacy Pools v2 PoolVault implementation on Ethereum (verified source)
- Ethereum network statistics (ETH price)
- Privacy Pools TVL (protocol data)