NixProtocol is a UTXO-based privacy pool for EVM chains. Users deposit ERC-20 tokens into a shared pool, then transfer and withdraw privately using zero-knowledge proofs. Built with Noir circuits, UltraHonk proving, and Solidity smart contracts.
| Repository | Description |
|---|---|
| nixprotocol | Core monorepo - Noir circuits, Solidity contracts, SDK, relayer, and web app |
| poseidon2-go | Pure-Go Poseidon2 hash over BN254 |
| ultrahonk-go | Pure-Go UltraHonk proof verifier for BN254 |
- Private transfers and withdrawals using zero-knowledge proofs (Noir + UltraHonk)
- Client-side proving - proofs generated entirely in the browser via WASM
- UTXO model - 2-input/2-output transaction model for flexible private transfers
- Gas abstraction - optional relayer submits transactions on behalf of users
- EVM compatible - deploy on any EVM chain (currently live on Base Sepolia and Avalanche Fuji)
Noir Circuits (ZK proofs) --> Solidity Contracts (on-chain pool)
^
TypeScript SDK (client) -------------|
|
Express Relayer (gas abstraction) ----|
|
Next.js Web App (browser proving) ----|
NixProtocol is deployed on Base Sepolia and Avalanche Fuji testnets. The web app supports in-browser proof generation, deposits, private transfers, and withdrawals.
