Private transfers on public blockchains, using zero-knowledge proofs and homomorphic encryption.
There are two implementations. On EVM chains, a UTXO-based privacy pool: deposit ERC-20 tokens, then transfer and withdraw privately with Noir circuits and UltraHonk proving. On Cosmos, two SDK modules that any chain can adopt — a confidential-transfer module where balances are ElGamal ciphertexts, and a shielded pool in the same UTXO style as the EVM version.
The cryptography underneath is written in pure Go, published separately, and usable on its own.
| Repository | Description |
|---|---|
| confidential-module | Confidential token transfers. Balances are ElGamal ciphertexts; Bulletproofs and Sigma protocols enforce solvency without revealing amounts. Drops into any Cosmos SDK chain. |
| cosmos-nixpool | Shielded UTXO pool. Poseidon2 note commitments with nullifier-based spends, verifying Noir/UltraHonk proofs natively in Go. |
Pure Go, no CGo, no Barretenberg dependency. Each is independently useful.
| Repository | Description |
|---|---|
| elgamal-bn254 | Additively homomorphic ElGamal over BN254, with the Sigma protocols needed to use it on-chain |
| bulletproofs-bn254 | Bulletproofs range proofs, including aggregated proofs over multiple commitments |
| ultrahonk-go | UltraHonk proof verifier — verify Noir circuit proofs natively in Go |
| poseidon2-go | Poseidon2 hash over BN254, matching the Noir stdlib and Barretenberg |
| poseidon2-merkle-go | Incremental Poseidon2 Merkle tree, matching the Noir circuit convention |
| grumpkin-go | Grumpkin key types and ECIES — BN254's embedded curve, so keys work inside circuits |
| Repository | Description |
|---|---|
| pqe-hawk | Pure-Rust port of the HAWK-512 post-quantum signature scheme, byte-exact against the reference C |
Noir circuits ──> proofs ──> ultrahonk-go ──> cosmos-nixpool (shielded UTXO pool)
poseidon2-go, poseidon2-merkle-go, grumpkin-go
elgamal-bn254 + bulletproofs-bn254 ──────────> confidential-module (encrypted balances)
The two Cosmos modules solve different problems. confidential-module hides
amounts while keeping sender and receiver public, and is cheap enough for
everyday transfers. cosmos-nixpool hides the link between sender and
receiver, at the cost of proof generation.
Pre-1.0. The Go libraries are tagged and importable. The EVM pool runs on Base Sepolia and Avalanche Fuji testnets.
These libraries implement cryptography that protects funds. They have had internal review but no third-party audit — treat them accordingly, and please report anything you find to contact@nixprotocol.com.
