Skip to content

Latest commit

 

History

History
63 lines (49 loc) · 2.13 KB

README.md

File metadata and controls

63 lines (49 loc) · 2.13 KB

🐸🌪️ Toadnado 🐸🌪️

Toadnado is a mixer that allows you to deposit from both L2 (scroll) and L1. You can then anonymously withdraw on L2 to a new address. This doesn't reveal from which address you deposited, or even which chain. The anonymity set spans across both L1 and L2 :D

Today's bridges do not preserve privacy. We build Toadnado to prove that they can, and it's cool! We hope it will inspire future bridge protocols to add better privacy.

We used scrolls new L1SLOAD opcode to read the L1 commitment-root atomically from L1. ☝️🤓

"Let my people go, so that they may worship me. If you refuse to let them go, I will plague your whole country with frogs." — Exodus 8:1–4

Quickstart

To get started with toadnado, follow the steps below:

  1. git clone and install dependencies with yarn install in the root directory:

  2. deploy the contracts

yarn hardhat run ./scripts/deploy.ts --network sepolia

noir

install

curl -L https://raw.githubusercontent.com/noir-lang/noirup/main/install | bash
noirup --version 0.30.0

compile circuits

cd circuits/prover/; nargo compile 

generate verifier contract

cd circuits/prover/; nargo codegen-verifier; cp contract/prover/plonk_vk.sol ../../contracts/plonk_vk.sol

test

run a local test node

yarn hardhat node

run test

yarn test

genrate zeros for merkle-tree.sol

(you need to copy paste output into merkle-tree.sol)

yarn generate-zeros