# Module 1: Writing Circom circuits · Build with zero-knowledge proofs on Chromia · Learn Chromia

> A zero-knowledge proof system rests on Circom circuits. With them, you express mathematical constraints that show you know some private information while…

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

Build with zero-knowledge proofs on ChromiaLesson 5 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/)

05 / 19Module 1: Writing Circom circuitsAdvanced

# Module 1: Writing Circom circuits

A zero-knowledge proof system rests on Circom circuits. With them, you express mathematical constraints that show you know some private information while keeping that information hidden.

This module walks you through writing, compiling, and understanding the three core circuits behind the private token transfer demo: shielding, unshielding, and private transfers.

Working through these circuits gives you practical experience with the domain-specific language that turns the demo's privacy requirements into cryptographic proofs anyone can verify.

## In this lesson

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

[Begin lesson →](https://chromia.com/learn/zero-knowledge-proof/circom-circuits/circom-circuits-introduction/)

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

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