This project implements a privacy-focused Multi-Asset Shielded Pool inspired by Tornado Cash, with zero-knowledge proof verification. It allows users to deposit and withdraw ETH and ERC20 tokens while maintaining privacy.
- Frontend: Next.js application for interacting with the MASP contracts
- Smart Contracts: Solidity contracts in the
hardhat
directory - Proof Generation: Zero-knowledge proof generation in the
proof
directory
- Deposit and withdraw ETH and ERC20 tokens
- Privacy-preserving transactions using zero-knowledge proofs
- Multi-asset support in a single shielded pool
- Web interface for easy interaction
- Node.js 20.x or later
- npm or yarn
- Go 1.20 or later (for proof generation)
- Clone the repository
- Install dependencies:
# Install frontend dependencies
npm install
# Setup node
cd hardhat
npx next node
We have a deploy script for smart contract, you can see the README.md in hardhat dir.
See the Hardhat README for detailed instructions on deploying the smart contracts.
Start the development server:
npx next build
npx next start
Open http://localhost:3000 with your browser to see the application.
See the User Flow Documentation for a detailed explanation of the deposit and withdrawal process, including proof generation and verification.