# Project setup · Build with zero-knowledge proofs on Chromia · Learn Chromia

> The steps below cover setting up the project and how it works. Once you complete them, you can run the application and interact with it yourself.

Source: https://chromia.com/learn/zero-knowledge-proof/setup/

Build with zero-knowledge proofs on ChromiaLesson 3 of 19

1. [01Introduction to the course](https://chromia.com/learn/zero-knowledge-proof/introduction/)
2. [02Zero-knowledge proof](https://chromia.com/learn/zero-knowledge-proof/zero-knowledge-proof/)
3. [03Project setup](https://chromia.com/learn/zero-knowledge-proof/setup/)
4. [04Architecture overview](https://chromia.com/learn/zero-knowledge-proof/architecture-overview/)

Module 1: Writing Circom circuits

1. [05Overview](https://chromia.com/learn/zero-knowledge-proof/circom-circuits/)
2. [06Circom circuits: introduction](https://chromia.com/learn/zero-knowledge-proof/circom-circuits/circom-circuits-introduction/)
3. [07Circom files overview](https://chromia.com/learn/zero-knowledge-proof/circom-circuits/circom-circuits-project/)
4. [08Circom circuits: compile](https://chromia.com/learn/zero-knowledge-proof/circom-circuits/circom-circuits-compile/)

Module 2 – Dapp

1. [09Overview](https://chromia.com/learn/zero-knowledge-proof/dapp/)
2. [10Dapp: setup and run](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-setup-run/)
3. [11Dapp overview](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-overview/)
4. [12Dapp entities](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-entities/)
5. [13PLONK verification](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-verification/)
6. [14Dapp operations overview](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-operations/)
7. [15Dapp queries overview](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-queries/)

Module 3 – Frontend

1. [16Overview](https://chromia.com/learn/zero-knowledge-proof/frontend/)
2. [17Frontend: setup and run](https://chromia.com/learn/zero-knowledge-proof/frontend/frontend-setup-run/)
3. [18Frontend architecture](https://chromia.com/learn/zero-knowledge-proof/frontend/frontend-explore/)
4. [19Frontend: test](https://chromia.com/learn/zero-knowledge-proof/frontend/frontend-test/)

[Learn](https://chromia.com/learn/)[Build with zero-knowledge proofs on Chromia](https://chromia.com/learn/zero-knowledge-proof/)

03 / 19Advanced

# Project setup

The steps below cover setting up the project and how it works. Once you complete them, you can run the application and interact with it yourself.

## Prerequisites

Install the following tools first:

* **Node.js**: version 18 or later.
* **MetaMask**: install the browser extension and set it up.
* **Docker**: needed to run a local Chromia Postchain node.
* **Rell**: version 0.14.10. [Install or upgrade Rell.](https://docs.chromia.com/get-started/installation/)
* **Circom and snarkjs**: you write and compile zero-knowledge circuits with Circom; these circuits define the cryptographic constraints the proofs must satisfy. snarkjs takes the compiled circuits and generates and verifies zero-knowledge proofs from them. Install [both tools](https://github.com/iden3/circom/blob/master/mkdocs/docs/getting-started/installation.md) globally.

## Clone the demo project

Clone the ZKP demo source code:

bash

```nolines
git clone https://bitbucket.org/chromawallet/zkp-demo.git
```

bash

```nolines
cd zkp-demo
```

Written for this site from Chromia’s public course. Code samples are the course’s own.

[← Previous**Zero-knowledge proof**](https://chromia.com/learn/zero-knowledge-proof/zero-knowledge-proof/)[Next →**Architecture overview**](https://chromia.com/learn/zero-knowledge-proof/architecture-overview/)

On this page

* [Prerequisites](#prerequisites)
* [Clone the demo project](#clone-the-demo-project)
