DaoLeaks Base Sepolia contract:
0x65cC4D5f790dF736cD54d675d9280c056d640b22
Mocked Governance Token for testing:
0x1C9039Be216f35291B2bCf67E5aB1F668db58Ac0
- pnpm run circuits compile
- pnpm run contracts anvil (keep running)
- pnpm run contracts prepare-tests
- pnpm run contracts ts generateWitness -> then copy proof, Concatenated hex string public inputs and Storage proof depth checkpoint: 2 to contract's .env
- pnpm run contracts forge-test
- kill anvil process
- pnpm run circuits compile
- pnpm run contracts setup-devnet
- Circuit to verify Ethereum Storage proofs on mainnet or any other blockchain.
- Smart contract to verify such proofs
- Frontend for users to interact entirely privately and gasless
We managed to build a PoC for a decentralized private messaging application for DAOs, token holders or any other identifier that is present on chain
- Circuit had to be reduced in size to accommodate present noir client side proving limitation. Check branch
circuit-stash-doublefor the code for the actual full circuit - Smart contract relies on Oracle to fetch valid
storage_roots. There are 2 ways forward here: restrict access toaddStorageRootto trusted oracle protocols or admins OR to create a ZK proof that verifies storage_root of a contract against the block hash from ethereum and then fetch this hash from Base's native oracle