TESTNET

๐Ÿ“œ Smart Contracts

Deployed contracts, function signatures, and on-chain architecture

Deployed Contracts โ€” Sepolia Testnet
ContractPoolAddressStatus
ZKSentinelV100.01 ETH0x43587eff71aB4DD5...ea5โœ… Live
ZKSentinelV100.1 ETH0x80c5EECA1cff4DA7...843โœ… Live
ZKSentinelV101 ETH0xA293b237D4FE646f...421โœ… Live
ZKSentinelV1010 ETH0xb3fca2FcEdC5462b...eaeโœ… Live
ZentinelTreasuryAll pools0x1D38680ABe7a8e79...937โœ… 3% fee
Groth16VerifierGlobal0x...deployedโœ… Immutable
Halo2VerifierZKML0x...deployedโœ… Timelocked
Key Functions โ€” ZKSentinelV10
deposit(bytes32 commitment)
Standard deposit into pool
depositStealth(bytes32, bytes32 ephPub)
Stealth deposit with ephemeral key
batchDeposit(bytes32[] commitments)
Multi-deposit in single TX
withdraw(proof, root, nullifier, ...)
Relayer or direct withdrawal
partialWithdraw(proof, amount, change)
Partial amount + change commitment
shieldedTransfer(proof, newCommitment)
In-pool transfer, no ETH leaves
proveInnocence(proof, assocSetRoot)
PoI membership proof
selectiveDisclose(proof, min, max)
Range proof on deposit amount
emergencyWithdraw(commitment)
Emergency mode bypass
migrate(proof, newPoolAddress)
Migrate to future pool version
Events
event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp); event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee); event PartialWithdrawal(address to, uint256 amount, bytes32 changeCommitment); event ShieldedTransfer(bytes32 nullifierHash, bytes32 newCommitment); event InnocenceProved(bytes32 commitment, bytes32 associationSetRoot); event SelectiveDisclosure(bytes32 commitment, uint256 auditNonce); event EmergencyWithdraw(bytes32 commitment, address to);