Skip to content

GraphitiLabs/zkaptcha

Repository files navigation

Zkaptcha

A cloudflare for web3. This is a captcha service that verifies challenges on the smart contract level to prevent spam and bots for hurting NFTs, exchanges, and games.

Directory Structure

zkaptcha_contracts - the contracts subfolder under this contains most of the contracts in deployment on Scroll and Optimism. The tests and scripts subfolders contain scripts used to test and deploy the smart contracts.

zkaptcha - contains generator.py, which is the script used on the AWS backend to seed and randomly generate captcha images for each subscribed user. It also creates the merkle paths and the salted hashes which are the leaves of that merkle tree.

user_config - stores the config files based on the user's captcha requirements. An NFT launch might need 10,000 captchas per hour, while a DAO voting tool might need only a 100.

nft-demo - contains the tests and deployment for the nft demo. This is the unprotected nft contract, and susceptible to scalping bots.

circuits - This folder houses all the zero knowledge circuits, the autogenerated verifier code which is retrofitted under the zkaptcha_contracts/contracts folder, a template proof string and the setup for Noir's ZK circuit DSL.

SybilRank - This folder contains testing and working SybilRank on the optimism AttestationStation. The current contract is deployed on Optimism testnet.

Contracts

  1. Zkaptcha Verifier Deployed on the Scroll Alpha Testnet at: 0xF988A798183058d830dEf45E592483E57Ef78002
  2. NFT Mint for CaptchaCollection deployed on the Scroll Alpha Testnet at:0x3399D548ef38e36dF219f08c99dDC7230ddf8aE4
  3. SybilRank anti-bot scorer deployed via AttestationStation on Optimism Goerli Testnet at: 0xfC567d7334B1B1BdbcA48cAb572ac21b1B7F80F7