ZkPoolTogether is the zkp version of PoolTogether; usage of zero-knowledge proof systems will protect users' identity, and the blind guess number user selected while depositing. For example, users can prove that they have deposited and selected X number in the pool and claim the reward without revealing any knowledge.
The project is currently live and frontend is hosted
-
- Network: Polgon Mainnet
- App Url: https://zkpt-ui.vercel.app/
-
- Network: Rinkebt Testnet
- App Url: https://testnet-zkpt-ui.vercel.app/
https://studio.youtube.com/video/bFdyjDphY6w/edit
-
- Relayer Address: 0x99d667ff3e5891a5f40288cb94276158ae8176a0
- Pool Address: 0xC8b59e543cc298dECa3965a0d6c8612951bd2F24
- Withdraw Verifier: 0x98869e780d0A0bbB210CE2b410DE661c4391242C
- Winning Verifier: 0x118fF3b4E3825cE3701412deed20C53A1e47E505
- Strategy Pool wethGateway: 0xD1DECc6502cc690Bc85fAf618Da487d886E54Abe
- Poseidon Hasher: 0x25352E780f664623a0DdCF8Cd136b9D5fD04bb06
- weth: 0x25352E780f664623a0DdCF8Cd136b9D5fD04bb06
- POOL_PROXY: 0xE039BdF1d874d27338e09B55CB09879Dedca52D8
- aWeth: 0x608D11E704baFb68CfEB154bF7Fd641120e33aD4
-
- Relayer Address: 0xf61c320cbfebf96ab97fa667fee931eecd417be5
- Pool Address: 0xebC02B3371ef6f01309c5cC2Ef32a755FDeeEDef
- Withdraw Verifier: 0xA680E910f33B4F01575ef11462A321055F90833d
- Winning Verifier: 0x3d84a4a3f61bc0e8812b6B5cc457fE24fd9F1dF4
- Strategy Pool wethGateway: 0x9BdB5fcc80A49640c7872ac089Cc0e00A98451B6
- Poseidon Hasher: 0xb5107cd5157C6D8E452F170Eaa0183d79c60E88D
- wMatic: 0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270
- POOL_PROXY: 0x794a61358D6845594F94dc1DB02A252b5b4814aD
- aWMatic: 0x6d80113e533a2C0fe82EaBD35f1875DcEA89Ea97
.
├── circuits
│ ├── merkleTree.circom
│ ├── powersOfTau28_hez_final_20.ptau
│ ├── winning.circom
│ └── withdraw.circom
├── classes
│ ├── Deposit.ts
│ ├── dist
│ │ └── PoseidonHasher.js
│ └── PoseidonHasher.ts
├── contracts
│ ├── DrawManager.sol
│ ├── interfaces
│ │ ├── IHasher.sol
│ │ ├── IVerifier.sol
│ │ ├── IWETHGateway.sol
│ │ └── IWETH.sol
│ ├── libraries
│ │ └── UniformRandomNumber.sol
│ ├── MerkleTreeWithHistory.sol
│ ├── Mocks
│ │ ├── MerkleTreeWithHistoryMock.sol
│ │ └── MockYieldGenerator.sol
│ ├── Pool.sol
│ ├── WinningVerifier.sol
│ └── WithdrawVerifier.sol
├── hardhat.config.ts
├── nethereum-gen.settings
├── package.json
├── package-lock.json
├── powersOfTau28_hez_final_20.ptau
├── README.md
├── scripts
│ ├── bump-solidity.ts
│ ├── compile-winning-circuit.sh
│ ├── compile-withdraw-circuit.sh
│ └── deploy.ts
├── src
│ └── merkleTree.ts
├── tasks
│ ├── dist
│ │ └── index.js
│ ├── package.json
│ ├── package-lock.json
│ ├── rollup.config.js
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.json
│ └── yarn.lock
├── test
│ └── index.test.ts
├── tsconfig.json
├── utils
│ └── index.ts
└── yarn.lock
Please visit the ZKPT_UI repository for frontend project Structure.
https://github.com/sleepyqadir/ZKPT_UI
Clone the project
git clone https://github.com/sleepyqadir/ZKPT_UI
Go to the project directory
cd ZKPT-Core
Install dependencies
npm install
Compile and build circuits
npm run circuits
Compile contracts
build:contracts:compile
To run tests, run the following command
npx hardhat test
To deploy this project on rinkeby run : Please change the config in deploy file before deploying as right now it is manually configured for mainnet deployment. It will be reverted back soon
npm run deploy:rinkeby
Home Page
Circuits: Circom, Groth16, Snarkjs, Circom Tester
Contracts: Solidity, Hardhat, Ethers, Typechain
Server: Defender Oppenzeppline
Client: NextJs, ChakraUI, Emotion, Ethers, SWR
For support,
- email: qadir@xord.com
- dicord: AbdulQadir#0432
- twiiter: sleepyqadir