The CROPS Guide looks a great initiative to help highlight projects that are building trustlessly.
Project name: Tacit
What does it do?Tacit is a family of immutable privacy pools. Shield ETH, then pay, swap and withdraw privately, on Ethereum, Base and Robinhood Chain.
Which chain(s) is it deployed on, and at which contract address(es)? Ethereum, Base, Robinhood (same addresses). Pool: 0x000000c2A20657CE25f2Ba99737933D031AFBEE9, Router: 0x0000006C96Afa6f1cD4DF8FE19bc0d8B6A6Cd7B5, Groth16 verifier: 0x000000b1c0e84CEc8AdF8278B90c4d6400DfB153, PoseidonT5: 0x555333f3f677Ca3930Bf7c56ffc75144c51D9767, Zap: 0x0000008EbBF2323f95c4fBc18254f3D65C53998c
Permissionless access: Can anyone use it without needing permission? Yes - zero permission. No upgradeability. Immutable code.
Exit without the team: If the team, the frontend and every operator disappeared, could users still withdraw their funds? Absolutely. The frontend for this protocol is hosted on ethereum itself. See the UI contract: 0x0000000d42137547140b0812e1178f025e08bc49
License: Which license is the code released under? MIT
Verified contracts: Are all deployed contracts verified against the published source code? If not, please verify them before you submit. Yes.
Self-hosting: Can anyone build and run the interface locally? Yes - they can fetch it from the aforementioned UI contracts by calling the html() function onchain.
Privacy: Does the project make any privacy claims? If so:
What exactly is hidden? The pools hide which deposit pays a withdrawal, and who pays whom (and how much) in a private transfer.
Can anyone deanonymize a user? No. No owner or admin or special viewing. Users should practice standard opsec around withdrawal size and timing.
Is privacy on by default, or opt-in? Default.
Audits: Which audits have been done? For each one, please link to the report. N/A - substantial ETH has passed without incident and frontier AI reviews have been applied, and a bug bounty is available for security reports.
Anything else: Is there anything else you’d like us to know? Tacit supports two major types of privacy pool. A bridge pool with Bitcoin that has shielded internal defi ops, and pay pools. The pay pools are ethereum-focused so they are mentioned here. You can access them via the gateway anon.wei.limo, and https://0x0000000d42137547140b0812e1178f025e08bc49.w3eth.io/
we scouted tacit protocols 2 weeks ago for our privacy page and to make sense of the many different parts : D the pay pool seems like a good candidate indeed. activity so far is not very high and the current ossification score would be around 50, which would just make the threshold into CROPS. So these two are just borderline, not blocking, but the trusted setup is (would be red):
we did not find a public announcement nor identifiers for the contributors, and repeat-contributions with the same key were allowed. as a consequence, the 171 ‘anonymous’ contributions are difficult to trust.
Greatly appreciate the thorough feedback and fair review :~)
Two updates, and a question at the end.
Control of the app (2026-11-12).
The privacy review’s Permissions section listed several powers under one account: appending page versions, pointing anon.wei at a contract, and replacing the endpoint and RPC registry URLs. All of them now sit with the Z DAO (0x5E58BA0e06ED0F5558f83bE732a4b899a674053E). The two registries and the UI contract’s steward role moved through a DAO proposal (tx). The anon.wei name moved in a separate tx and still resolves to the same page.
Exit window: the pool contracts are immutable, so funds can always be withdrawn from the contract directly or with the pinned standalone wallet. A new page version now needs a DAO proposal that sits queued on chain for at least 24 hours before it can execute.
The DAO acts without the founder wallet’s vote: its rebrand proposal (30–31 Aug) passed with 11 voting addresses, all for and none against. The founder’s wallet proposed and queued it but did not vote (executed in this tx).
We’d welcome a re-score of ossification with this in view.
Trusted setup (the pay pool’s key was made in tandem with the Bitcoin-side shielded pool, as the “Secret Sats EVM pool” circuit).
Announcement. It was announced on X while contributions were open (2026-09-26 to 27). One example, reshared by 0xAsta on X: post. Contributors posted their own result screenshots; they can be found with this X search.
Identifiers, opt-in. The ceremony records a public key and a contribution hash for every contribution (176 contributions, 120 distinct keys), and the success screen shows both to the contributor. Contributors who chose to identify themselves posted them. For example, contribution #114: the post above shows hash c13459c3…93a2 and key 03252d29…57bb2, which match the record exactly, and it was posted about four minutes after the contribution was recorded. The five Tacit test entries (#4, #6, #8, #9, #11) are labelled as ours. We deliberately didn’t require names: participants could stay anonymous, and a privacy project shouldn’t ask for more than the security argument needs.
Open, with proven keys. The ceremony was open: no TAC holding or other eligibility proof. Each recorded key is the contributor’s Tacit wallet key (or a key kept in the browser if there’s no wallet), and each signed its queue join (a BIP-340 Schnorr signature). The upload had to come from the key holding the queue head.
Repeat keys. An open ceremony accepts repeat contributions from a key by design, since each one mixes in fresh randomness. The key lives in the browser, so someone who returns reuses it (#114 and #121 are one key). That doesn’t change the assumption that one honest contributor suffices.
Open source. The coordinator (worker/src/index.js), the browser client (dapp/tacit.js), the tooling and the test are public, at the commit that closed the ceremony: ed2ffbf. The verify script is here.
Records. All 176 contribution keys are on IPFS, each linked to the one before it, and the attestation list records every contribution. The sealed bundle is bafybeia4yvn2zoggvgpjwg5vpwpt6aivjbcm6tgzxoxsukao2nm5yyypfy.
A question. Would a ceremony where participants can opt in to a public handle, and the rest stay anonymous, meet condition 5 of the framework? If the intent is that every contribution is attributable, could you say what that adds beyond checking independence?
founder wallet has ~20% of supply over a 10% quorum, was sole voter in 16/19 proposals and executed 18. imo it is borderline to call this a DAO
ossification does not include the DAO, so no re-score here
ty for the 24h frontend-pin (we will be showing a nice pin tag soon), and looking forward to 7d : )
trusted setup: the linked post is one contributor quoting an empty post, which quotes a suspended account. i cannot find an official announcement or other public contribs?
on condition 5: opt-in handles are fine, and anonymous contributions are welcome. we count the ones a public account attests to, since a key only shows that someone held a key. we could verify one (#114). the keys live in your API, not the sealed bundle, and sign the queue slot, not the contribution right?