Chromia
Start Building

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.