Skip to content
@nixprotocol

NixProtocol

Privacy infrastructure for EVM chains powered by zero-knowledge proofs.

NixProtocol

Website | Twitter/X | Contact


NixProtocol

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.

Cosmos SDK modules

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.

Cryptography libraries

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

Research

Repository Description
pqe-hawk Pure-Rust port of the HAWK-512 post-quantum signature scheme, byte-exact against the reference C

How it fits together

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.

Status

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.

Pinned Loading

  1. poseidon2-go poseidon2-go Public

    Pure-Go Poseidon2 hash over BN254. First standalone Go implementation. Matches Noir stdlib, Barretenberg, and poseidon2-evm.

    Go

  2. ultrahonk-go ultrahonk-go Public

    Pure-Go UltraHonk proof verifier for BN254. Verify Noir circuit proofs natively in Go without Barretenberg.

    Go

Repositories

Showing 10 of 10 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…