Nullmask

Privacy-preserving DeFi protocol powered by zero-knowledge proofs

Nullmask enables shielded deposits, transfers, withdrawals, and swaps on EVM chains. Users interact with a standard wallet — the protocol intercepts transactions, generates zero-knowledge proofs client-side, and submits them through a relayer to hide the sender's identity.

Funds are held in a UTXO-based privacy pool secured by Poseidon2 commitments and Merkle membership proofs.

Section
Description

High-level introduction to the protocol

End-to-end architecture walkthrough

Cryptographic details, algorithms, and proofs

Solidity API for deposits, transfers, and swaps

JSON-RPC methods exposed by the proxy

Build and run locally

Step-by-step instructions for end users

Key Features

  • Shielded Transfers — Send tokens privately without revealing sender, recipient, or amount on-chain

  • Shielded Swaps — Execute Uniswap V2 swaps without exposing trading activity

  • Private Deposits & Withdrawals — Move funds in and out of the shielded pool with ZK-verified proofs

  • Multi-Chain — Deployed on Ethereum, Arbitrum, MegaETH, Base, and BSC

  • Standard Wallet UX — No special wallet needed; works with MetaMask and any EIP-1559 compatible wallet

  • Hardware Wallet Support — Full security without extracting spending authority from the device

  • ERC-20 Support — Shield any supported ERC-20 token alongside native ETH

  • Built-in Compliance — Deposit screening with retrospective taint recovery via revocation keys

Tech Stack

Layer
Technology

Smart Contracts

Solidity 0.8.28, Hardhat v3, OpenZeppelin v5

Frontend

Next.js 15, React 19, TailwindCSS 4

Backend Services

Fastify 5, Node.js 24

Web3

Viem, Wagmi, tRPC

Monorepo

Turborepo, pnpm

Storage

LMDB (persistent state)

Code Quality

Biome, TypeScript 5.9, knip

Last updated