# Dapp overview · Build with zero-knowledge proofs on Chromia · Learn Chromia

> This zero-knowledge proof (ZKP) dapp is a privacy-preserving token system for Chromia. It supports confidential transactions by relying on the ZKP…

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

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

11 / 19Module 2 – DappAdvanced

# Dapp overview

This zero-knowledge proof (ZKP) dapp is a **privacy-preserving token system** for Chromia. It supports confidential transactions by relying on the ZKP verification that the blockchain provides natively.

## Dapp architecture

You write the dapp in **Rell**, and it builds on Chromia's native ZKP infrastructure through these parts:

* **ZKPGTXModule**: a module that ships with Chromia and verifies PLONK proofs
* **FT4 integration**: connects the dapp to Chromia's token standard
* **State management**: records commitments and nullifiers on-chain
* **Event logging**: stores encrypted notes so wallets can synchronize

## ZKP integration on Chromia

### Transaction flow

1. The client sends a transaction that includes the `zkp_plonk_verify` operation.
2. ZKPGTXModule checks the proof against the verification keys it has stored.
3. The public signals are extracted and handed to the operations that follow.
4. The dapp's operations check their constraints and then update state.

## Privacy model

### UTXO-based privacy

* **Commitments**: each private note is stored as a Pedersen commitment
* **Nullifiers**: block double-spending while keeping note details hidden

Taken together, the dapp shows how you can build confidential transactions on Chromia using the ZKP verification already present at the protocol level.

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

[← Previous**Dapp: setup and run**](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-setup-run/)[Next →**Dapp entities**](https://chromia.com/learn/zero-knowledge-proof/dapp/dapp-entities/)

On this page

* [Dapp architecture](#dapp-architecture)
* [ZKP integration on Chromia](#zkp-integration-on-chromia)
* [Privacy model](#privacy-model)
