Verify a ZKP-enabled Credential - Overview


The MATTR Platform supports issuance of ZKP-enabled Credentials, which give holders a privacy-preserving way of selectively disclosing limited sets of their data contained within credentials. In many jurisdictions it is important to request only information that is required for legitimate purposes. GDPR, for example, legislates against over-collection of personal information. Setting up a Presentation Template with a Query by Frame request query for a ZKP-enabled credential can help to ensure that you comply with these requirements.

NOTE: This an experimental feature in MATTR VII and uses a technique to implement privacy-preserving selective disclosure in verifiable credentials using the cryptography of BBS+ signatures.

As ZKPs are experimental, they only work with did:key method at this point. To experiment with this feature, use your API endpoint to create a DID with "method":"key" and "keyType":"bls12381g2" parameters set.

The use of JSON-LD Framing is also a novel technique to request verifiable presentations, not all features from JSON-LD framing are supported and configurations must be thoroughly tested to ensure there are no unforeseen results.

You can read more about our work on privacy-preserving verifiable credentials on our blog.


This tutorial will demonstrate the value of ZKP-enabled credentials, to learn more about the overall process of verifying credentials on the platform see the tutorials outlining verification of credentials using a Callback or using OIDC Bridge tutorials.

  1. Obtain values from a ZKP-enabled Credential -- follow this quick-start guide to download the sample app, try out a Query by Frame presentation template, and to view selected values from a ZKP-enabled credential previously issued to the mobile wallet.