CMT: NFT based programmable confidential product passports

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 !

3 Likes

I just submitted CMT to the Builder Track.
You can watch the presentation video at https://www.youtube.com/watch?v=c4GJiocgc2k
My video is approx 10 mins long (I think the limit was 3 max), but the pitch is in the intro (timecode in the description) and it lasts less than 3 minutes (0:00 to 2:51).
The rest of the video is a demo of the front-end. If it is still too long, will I be able to change my video link by uploading a new one?
Thanks.

Hey, thanks for sharing your project!

Once your video is ready, feel free to post the YouTube link here in the forum as well.

Best,
Jan

Hey Jan,
Sorry, I’m out of time to propose a refactor of the video to fit the 3-minute max requirement for the pitch video in the Season 3 submission form.
I did submit the already existing video about CMT: https://www.youtube.com/watch?v=c4GJiocgc2k
It is a little more than 10 minutes; however, it has time codes and the pitch part is situated in the first part of it, from 0:00 to 2:51. Please refer to this first part for the project reviewing part.
The rest of the video is just a simple front-end walkthrough and feature presentation.

Have a good day and good luck reviewing all the projects!

Hey @6yp

Sure thing, no worries. We’ll refer to the pitch section for the review. Thanks for flagging it with the timestamp.

Best,
Jan

1 Like

Read through this and was glad to learn of a new product unlock :+1:t5:

Thank you, I appreciate it !