📍🗺️ | ⛓️ | 🔏
zkMaps is a tool to verify if a user is within a certain geographic area without giving away their exact location. This repository is composed of the circuits which enable the deployment of a verifier contract and the creation of the location proof by the end user.
You can check our Dune dashboard.
https://shrouded-fruitadens-1ef.notion.site/ZKmaps-roadmap-epics-18196ee96b4f4a2982fa1ec05f1c920e
- end point: https://zk-maps.vercel.app
- monitor: https://vercel.com/zkmaps/zk-maps/GTNfdqtqdmYRJKUcxNcWC6xAXRJp
A. Install dependencies
npm install
B. Go to the circuits directory:
cd circuits
C. Compile circuits:
./full_build.sh <CIRCUIT-NAME>
You can create proofs in a CLI (as explained in the circuits/readme.md
) or in a client like our implementation at https://zkmaps.vercel.app/ (can find the implementation at github.com/zkMaps/client).
To create proofs on a web client, circuit files must be available. We are currently using IPFS to upload and access .zkey
and .wasm
files.
A. We recommend installing hh as a global dependency.
npm install --global hardhat-shorthand
B. Set a deployment script in the deploy
directory
C. Set your deployer address' MNEMONIC or Private Key at .env
. You can duplicate .env.template
to do so.
D. Ultimately run the command below. Make sure to do so from the root directory.
hh deploy --network mumbai
You will be able to access ABI and contract address from deployments/<NETWORK>/Verifier<CIRCUIT-NAME>.json
. This information will be needed by the client to parse data from the contract.
- VerifierRayTracing6
polygon
0x0Eb82353271c162256b15BA540b10303F209F636
-
VerifierRayTracing4
polygon
0xc53a2E55031F3BbE8ba9fB136F1b84bB5Af1CDe9 -
VerifierRayTracing6
polygon
0x97006Df5D736EA002a768245dfD289B648bbE610 -
VerifierRayTracing10
polygon
0x9d567902eFbceEf419edAC5aa556dDA545A71E68 -
VerifierRayTracing6
mumbai
0x0a23af15ce2642689aF312B8A570534731285E83