Hey everyone,
I’ve been working on a project I’m really excited to share: CMT-Confidential Modular Token.
GitHub: GitHub - 6ygb/CMT · GitHub
Live demo: https://cmt.6ygb.dev
CMT is an experimental framework for building confidential digital product passports on EVM.
The idea is simple: a product passport should not be limited to public metadata. Real-world assets often need a mix of public information, private business data, user-owned data, selective disclosure, and private verification.
For example:
- a luxury watch certificate may publicly show the brand, model, production year, and certificate URI, while keeping the serial number, purchase price, private owner identity, guarantee expiration, inspection result, and item state encrypted;
- a smartphone Digital Product Passport may expose basic product information while keeping battery health, repairability, supplier risk, compliance status, and authority-only fields under controlled access.
CMT tries to provide a modular architecture for that.
At the core, a CMT is an ERC-721-based passport with:
- public product metadata;
- encrypted per-token fields using Zama’s fhEVM;
- field-level access policies;
- group-based access;
- scoped disclosure;
- custom field updates;
- aggregate encrypted predicates;
- modular field and logic extensions.
Every encrypted field is shielded behind an access policy. A field can be restricted to the token owner, the collection owner, both, or a specific access group. In the DPP Smartphone demo, for example, some fields are intended for repairers, some for recyclers, some for market surveillance authorities, and some for supply-chain authorities.
The demo Smartphone DPP aims to explore how this kind of architecture could fit the EU’s Digital Product Passport direction: public product identity, but sensitive operational, compliance, repair, and supply-chain data controlled through access rights instead of being fully public by default.
CMT also supports scoped allowance: instead of granting access to everything, the owner/controller can grant decryption rights to a selected bundle of fields in one transaction. For example, a repairer could receive access to repairability score, battery state of health, and repair count, without receiving supplier-risk fields or private owner data.
One of the coolest parts is the aggregate predicate system.
Instead of revealing encrypted values, CMT can let someone ask a yes/no question over several encrypted fields and receive only one encrypted aggregate result.
For example, a verifier could ask:
Is this product still under guarantee,
AND was the last inspection successful,
AND is the item state acceptable?
or, for a DPP-style smartphone:
Is battery endurance above X,
AND retained capacity above Y,
AND compliance status true?
The verifier does not receive the raw guarantee date, inspection result, item state, or battery metrics. The output is only the final encrypted yes/no result.
This is useful because single threshold checks can leak information if repeated. CMT’s predicate model is designed around bundles, not isolated checks, so private verification remains useful without turning predicates into a value-discovery oracle.
CMT is also modular. A passport is not just a static NFT metadata object: modules can add custom logic around encrypted fields. For example, the Luxury collection includes a guarantee module, where a guarantee could be extended on-chain through encrypted payment/condition logic while keeping sensitive values private.
So the bigger idea is:
public product identity
+ encrypted private state
+ controlled access
+ private verification
+ custom business logic
The current demo includes two collections:
Luxury Certificate CMT
A confidential luxury product passport with encrypted serial number, purchase price, owner identity, guarantee data, inspection data, and item state.
DPP Smartphone CMT
A Digital Product Passport-style proof of concept with encrypted repair, recycling, compliance, battery, and supplier-risk fields.
The demo runs on Sepolia through a DemoCMTController, so testers can mint demo CMTs, initialize encrypted fields, update allowlisted fields, request group access, grant scoped access, decrypt authorized fields, and try aggregate predicates directly from the frontend.
Live demo: https://cmt.6ygb.dev
GitHub: GitHub - 6ygb/CMT · GitHub
You’ll need MetaMask, Sepolia, and a bit of Sepolia ETH.
This is not meant to be a finished standard or a production compliance product. It is a research/demo framework exploring how confidential product passports could be structured with modular smart contracts and FHE.
I would really enjoy feedback on the contracts, the architecture, the frontend demo, or the general idea.
I will also later make a video showcasing the project in order to submit it to the builder track season 3 !