Skip to content

Latest commit

 

History

History
62 lines (37 loc) · 2.75 KB

readme.md

File metadata and controls

62 lines (37 loc) · 2.75 KB

zkMaps

📍🗺️ | ⛓️ | 🔏

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.

Roadmap

https://shrouded-fruitadens-1ef.notion.site/ZKmaps-roadmap-epics-18196ee96b4f4a2982fa1ec05f1c920e

API proof generation

Compiling and deploying circuits

1. Compiling .circom circuits

A. Install dependencies npm install B. Go to the circuits directory: cd circuits C. Compile circuits: ./full_build.sh <CIRCUIT-NAME>

2. Create proof on client

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.

3. Deploy smart contract

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.

Contracts details

Private Zones

Public Zones