Supported Networks
Deployments
Hardhat (local development)
43613
0xF9884b1ceF2AadFcFec536191679ee4240a8C6c9
localhost
Arbitrum One
43617
0x8888888838DFf5A522118E461a2B926bB8Bfb4A2
Coming soon
Virtual Chain IDs
Nullmask uses virtual chain IDs to distinguish its network from the underlying chain. These IDs are used in:
The wallet's network configuration
Transaction nullifier computation
The ZK circuit's public inputs
The virtual chain ID is set as an immutable in the Nullmask contract constructor and verified during proof validation.
Deploying to a New Network
To deploy Nullmask on a new EVM chain:
The deployment script deploys in order:
ZKTranscriptLib (shared library)
ShieldedTransferVerifier, ShieldedWithdrawalVerifier, ShieldedSwapVerifier (with library linking)
AdminUpgradeController (admin = deployer)
Poseidon2T4Unrolled (hash library)
Nullmask implementation (with Poseidon2T4Unrolled library linking)
NullmaskProxy (ERC1967Proxy pointing to implementation)
Call
initialize()on proxy
The proxy address is the canonical Nullmask address for all interactions.
Last updated