A token which hide balance using zk. Based on circom-starter and foundry
yarn to install dependencies
yarn circom:dev to build deterministic development circuits.
Further, for debugging purposes, you may wish to inspect the intermediate files. This is possible with the --debug flag which the circom:dev task enables by default. You'll find them (by default) in artifacts/circom/
To build a single circuit during development, you can use the --circuit CLI parameter. For example, if you make a change to hash.circom and you want to only rebuild that, you can run yarn circom:dev --circuit hash.
# calculate witness
npx snarkjs wtns calculate circuits/transfer.wasm circuits/transfer.json circuits/transfer.wtns
# generate proof
npx snarkjs groth16 prove circuits/transfer.zkey circuits/transfer.wtns circuits/proof.json circuits/public.json
# verify proof
npx snarkjs groth16 verify circuits/transfer.vkey.json circuits/public.json circuits/proof.jsonyarn circom:prod for production builds (using Date.now() as entropy)