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
- The client sends a transaction that includes the
zkp_plonk_verifyoperation. - ZKPGTXModule checks the proof against the verification keys it has stored.
- The public signals are extracted and handed to the operations that follow.
- 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.