Last updated:
Nullmask is a zero-knowledge (ZK) privacy protocol that lets users make transactions on Ethereum Virtual Machine (EVM) blockchains private by shielding assets into a pool and transacting inside it without leaving an on-chain link between deposits and withdrawals.[1][2] Introduced on 17 March 2026 as a protocol designed and authored by cryptographer Tomas Krnak, its cryptographic architecture and technical documentation are published under his name rather than a named corporate entity.[8] The protocol is distinguished by installing as a "virtual network" inside a user's existing wallet rather than requiring a separate application, dedicated wallet, or new seed phrase.[1] Its central design claim is that spending authority never leaves the user's wallet, because shielded actions are authorized with standard Ethereum transactions.[3] The project summarizes its own purpose with the phrase "Make any wallet and any transaction private — in one click."[4]
Nullmask is a privacy layer for EVM-compatible blockchains. Users deposit, or "shield," assets into a zero-knowledge pool, conduct transfers and swaps privately within it, and later "unshield" funds to any address, with the protocol designed so that no observable on-chain relationship exists between the original deposit and the eventual withdrawal.[1][2] The protocol supports four private operations: shielded deposits, shielded transfers, shielded withdrawals, and shielded swaps.[6]
The protocol does not run its own blockchain. Instead it builds on existing layer 2 (L2) infrastructure to attach a shielded account to a user's wallet, and it treats actions on its own network as "intents for shielded actions" that are ultimately executed on the underlying EVM chains.[3] The project is tagged by third-party trackers under the "zk" and "Privacy" categories.[1][5]
Funds shielded into Nullmask are held in a UTXO-based privacy pool, a model in which balances are represented as discrete unspent outputs rather than a single mutable account balance. The pool is secured using Poseidon2 commitments and Merkle membership proofs, cryptographic structures that let the protocol confirm a deposit belongs to the pool without revealing which specific deposit it is.[6] When a user initiates an action, the protocol intercepts the transaction, generates a zero-knowledge proof on the client side, and submits it through a relayer, an intermediary that broadcasts the transaction so the original sender's identity is not exposed on-chain.[6]
Shielded Transfers allow tokens to be sent without revealing the sender, recipient, or amount on-chain. Shielded Swaps execute Uniswap V2 trades without exposing the user's identity, and private deposits and withdrawals are each validated by zero-knowledge proofs.[6] Private transfer amounts are hidden by design, which the project's analytics methodology notes means they are not included in reported volume figures.[2]
Rather than operating as a standalone application, Nullmask installs into a user's wallet as a virtual network, a one-time setup the project describes as taking about 20 seconds.[3] The virtual network uses Nullmask RPC middleware to decrypt shielded balances and to translate outgoing transactions into their shielded equivalents. This middleware can run remotely for faster onboarding or locally for what the project describes as maximum privacy.[3] Once installed, the protocol states that users can send, withdraw, and interact with decentralized applications directly from their existing web3 wallet without a separate app.[3]
The protocol is designed to work with MetaMask and any wallet compatible with EIP-1559, the Ethereum transaction fee standard, and it preserves a standard wallet user experience.[6] Nullmask uses standard 0x addresses and Ethereum Name Service (ENS) names rather than a separate shielded address scheme, and because it is backed by a wallet's existing seed, the project states no additional seed phrase must be stored.[3] It also supports hardware wallets, and the project states it provides full security without extracting spending authority from the device.[6]
A recurring theme in Nullmask's self-published design documentation is its handling of spending authority. The project contrasts its approach with other privacy solutions it names directly — Railgun, 0xbow, Hinkal, zERC20, and Zcash — which it claims rely on extracting spending authority from the wallet.[3] According to the documentation, extracting spending authority makes those approaches prone to phishing attacks and violates what it calls the fundamental principle of hardware wallets, that spending authority never leaves the device.[3]
The documentation states that Railgun and Zcash addressed this by requiring an additional signature over the shielded transaction, but that both rely on custom hash functions — it names Zcash Orchard's Sinsemilla and Railgun's "various-rate Poseidon" — which it claims require large precomputed lookup tables that are impractical for the constrained environment of a hardware wallet.[3] Nullmask instead authorizes shielded transactions with standard EIP-1559 transactions, which it states are already implemented in every hardware wallet, allowing shielded transactions from a hardware wallet with no change to the wallet's code. The project summarizes its position with the statement that "privacy wins when it stops feeling like a tradeoff."[3]
Nullmask includes built-in compliance tooling intended to limit abuse of the privacy pool. The protocol performs deposit screening and offers retrospective taint recovery through revocation keys, a mechanism the documentation presents as allowing previously accepted deposits to be traced back if they are later found to be illicit.[6] The project's analytics methodology notes that funds pending screening are excluded from reported total value locked.[2]
The MASK token is issued on the Solana blockchain and is tracked by data aggregators under the Solana ecosystem.[5][2] Supply figures reported by data providers differ slightly: CoinMarketCap lists a total and maximum supply of 990,994,347 MASK, which the project self-reports as a fully circulating supply, while CoinGecko lists a total supply of about 986.3 million against a maximum supply of 1 billion.[7][5] The token trades on both decentralized exchanges, including Meteora, Raydium, and Manifest, and centralized exchanges such as LBank, MEXC, and KCEX, with liquidity pools priced against SOL, USDC, and USDT.[5][7]
The token is linked to the protocol's economics through a rewards and buyback system tied to Zcash (ZEC). According to the project's dashboard, ZEC is distributed to MASK holders by StonkFun, with cumulative holder rewards of about $1.01 million recorded in early October 2026.[2] Separately, ZEC earned by the development wallet — about $514,000 in total, valued at the daily ZEC price — is used to buy back MASK, and the dashboard reports that MASK burned on-chain amounted to roughly 1.22% of the token's 1 billion initial supply.[2]
As of October 2026, available protocol documentation and smart-contract references do not describe any on-chain governance rights for MASK over the Nullmask pool contracts, where upgrade authority instead resides with the EVM-side upgrade controller contracts.[9] Public materials characterize MASK's economic role primarily through its linkage to ZEC-denominated rewards for holders and ZEC-funded buybacks that permanently burn tokens, rather than through fee-sharing mechanisms or staking-based governance over protocol parameters.[2]
Nullmask's documentation lists deployments on Ethereum, Arbitrum, MegaETH, Base, and BSC (BNB Smart Chain), and the protocol supports native ETH alongside any supported ERC-20 token.[6] The project's analytics dashboard, which reflects live operation, records the privacy pools as active on two chains: Ethereum, supporting ETH and USDT and live since 1 October 2026, and Base, supporting ETH and USDC and live since 7 October 2026.[2] The pool contract is deployed at the same address on both chains, with activity viewable through the Etherscan and Basescan block explorers.[2]