This is the most recent implementation report for the Verifiable Credentials Data Model specification.

Comments regarding this document are welcome. Please file issues directly on GitHub, or send them to public-vc-comments@w3.org (subscribe, archives).

Introduction

The purpose of this document is to demonstrate that there are at least two interoperable implementations of processors that are capable of generating output that is conformant to the Verifiable Credentials Data Model.

Testing Methodology

The testing framework for the Verifiable Credentials Data Model executes the following process for every conformance statement in the Verifiable Credentials Data Model:

  1. Take an input file template that exercises the feature and feed it to a developer provided Verifiable Credentials Data Model generator.
  2. If the input is valid, generate a Verifiable Credential that is conformant to the data model.
  3. The test suite then ensures that the generated Verifiable Credential is conformant to the feature being tested.

Conformance Testing Results

Key

The results of the conformance testing are shown below:

Basic Documents

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
@context MUST be one or more URIs โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
@context MUST be one or more URIs (negative) โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
@context first value MUST be https://www.w3.org/2018/credentials/v1 โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
@context first value MUST be https://www.w3.org/2018/credentials/v1 (negative) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
@context subsequent items can be objects that express context information โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`id` properties MUST be a single URI โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`id` properties MUST be a single URI (negative) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`type` properties MUST be one or more URIs โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`type` properties MUST be one or more URIs (negative) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ
`type` properties for Credential MUST be `VerifiableCredential` plus specific type โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`type` properties for Credential MUST be `VerifiableCredential` plus specific type (negative) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`credentialSubject` property MUST be present โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`credentialSubject` property MUST be present, may be a set of objects โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โŒ
`credentialSubject` property MUST be present (negative - credentialSubject missing) โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
`issuer` property MUST be present โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`issuer` property MUST be present (negative - missing issuer) โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
`issuer` property MUST be a single URI โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`issuer` property MUST be a single URI (negative - not URI) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`issuer` property MUST be a single URI (negative - Array) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`issuanceDate` property MUST be present โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`issuanceDate` property MUST be present (negative - missing issuanceDate) โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
`issuanceDate` property MUST be an RFC3339 datetime โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`issuanceDate` property MUST be an RFC3339 datetime (negative - RFC3339) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`issuanceDate` property MUST be an RFC3339 datetime (negative - Array) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`expirationDate` property MUST be an RFC3339 datetime โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
`expirationDate` property MUST be an RFC3339 datetime (negative - RFC3339) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
`expirationDate` property MUST be an RFC3339 datetime (negative - Array) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โœ“
Presentations MUST be of type `VerifiablePresentation` โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“

Credential Status (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
`credentialStatus` property MUST include `id` and `type` โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ no support
`credentialStatus` property MUST include `id` and `type` (negative - missing `id`) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ no support
`credentialStatus` property MUST include `id` and `type` (negative - missing `type`) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ โŒ โœ“ โœ“ โœ“ no support

Linked Data Proofs (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
`proof` property MUST be present โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โœ“ no support โŒ โœ“ โœ“
`proof` property MUST include specific method using the type property โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โœ“ no support โŒ โœ“ โœ“
`proof` property MUST include type property (negative - missing proof type) โœ“ โœ“ โœ“ โœ“ โœ“ โŒ no support โœ“ โœ“ โŒ no support โœ“ โœ“ โœ“

Credential Schema (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
`credentialSchema` MUST provide one or more data schemas โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ no support โŒ โœ“ โœ“
each object within `credentialSchema`... MUST specify a `type` property with a valid value โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
each object within `credentialSchema`... MUST specify an `id` property โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“
each object within `credentialSchema`... value of `id` MUST be a URI identifying a schema file โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โŒ โŒ โœ“ โœ“

Refresh Service (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
`refreshService` MUST provide one or more refresh services โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ no support โŒ โœ“ โœ“
each object within `refreshService`... MUST specify a `type` property with a valid value โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โŒ โŒ โœ“ โœ“
each object within `refreshService`... MUST specify an `id` property โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โŒ โŒ โœ“ โœ“
each object within `refreshService`... value of `id` MUST be a URL identifying a service endpoint โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โŒ โŒ โœ“ โœ“

Terms of Use (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
`termsOfUse` MUST provide one or more ToU objects โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ no support โŒ โœ“ โœ“
each object within `termsOfUse`... MUST specify a `type` property with a valid value โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โŒ โŒ โœ“ โœ“

Evidence (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
`evidence` MUST provide one or more evidence objects โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ no support โŒ โœ“ โœ“
each object within `evidence`... MUST specify a `type` property with a valid value โœ“ โœ“ no support โœ“ โœ“ โœ“ โœ“ no support โœ“ โœ“ โŒ โŒ โœ“ โœ“

JWT (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
A verifiable credential ... vc MUST be present in a JWT verifiable credential. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... If no explicit rule is specified, properties are encoded in the same way as with a standardverifiable credential, and are added to the vc property of the JWT. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... if typ is present, it MUST be set to JWT. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... alg MUST be used for RSA and ECDSA-based digital signatures. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... If no JWS is present, a proof property MUST be provided. no support no support no support no support no support โŒ no support no support โœ“ โœ“ โœ“ โœ“ no support โŒ
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... If only the proof attribute is used, the alg header MUST be set to none. no support no support no support no support no support โŒ no support no support โœ“ โœ“ โœ“ โœ“ no support โŒ
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... exp MUST represent expirationDate, encoded as a UNIX timestamp (NumericDate). no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... exp MUST represent expirationDate, encoded as a UNIX timestamp (NumericDate) -- negative, no exp expected. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... iss MUST represent the issuer property. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... nbf MUST represent issuanceDate, encoded as a UNIX timestamp (NumericDate). no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... jti MUST represent the id property of the verifiable credential, or verifiable presentation. no support no support no support untested untested โœ“ untested no support untested untested untested untested no support untested
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... jti MUST represent the id property of the verifiable credential, or verifiable presentation -- negative, no jti expected no support no support no support untested untested โœ“ untested no support untested untested untested untested no support untested
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... sub MUST represent the id property contained in the verifiable credential subject. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... aud MUST represent the subject of the consumer of the verifiable presentation. no support no support no support untested untested โœ“ untested no support untested untested untested untested no support untested
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... Additional claims MUST be added to the credentialSubject property of the JWT. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
To decode a JWT to a standard verifiable credential, the following transformation MUST be performed... Add the content from the vc property to the new JSON object. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
To decode a JWT to a standard verifiable credential, the following transformation MUST be performed... To transform the JWT specific headers and claims, the following MUST be done: If exp is present, the UNIX timestamp MUST be converted to an [RFC3339] date-time, and MUST be used to set the value of the expirationDate property of credentialSubject of the new JSON object. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
To decode a JWT to a standard verifiable credential, the following transformation MUST be performed... To transform the JWT specific headers and claims, the following MUST be done: If iss is present, the value MUST be used to set the issuer property of the new JSON object. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
To decode a JWT to a standard verifiable credential, the following transformation MUST be performed... To transform the JWT specific headers and claims, the following MUST be done: If nbf is present, the UNIX timestamp MUST be converted to an [RFC3339] date-time, and MUST be used to set the value of the issuanceDate property of the new JSON object. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
To decode a JWT to a standard verifiable credential, the following transformation MUST be performed... To transform the JWT specific headers and claims, the following MUST be done: If sub is present, the value MUST be used to set the value of the id property of credentialSubject of the new JSON object. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
To decode a JWT to a standard verifiable credential, the following transformation MUST be performed... To transform the JWT specific headers and claims, the following MUST be done: If jti is present, the value MUST be used to set the value of the id property of the new JSON object. no support no support no support no support no support โœ“ no support no support โœ“ โœ“ โœ“ โœ“ no support โœ“
A verifiable presentation ... vp MUST be present in a JWT verifiable presentation. no support no support no support untested untested โœ“ untested no support untested untested untested untested no support untested
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... jti MUST represent the id property of the verifiable credential. untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โœ“
A verifiable credential ... To encode a verifiable credential as a JWT, specific properties introduced by thisspecification MUST be either 1) encoded as standard JOSE header parameters, 2) encoded as registered JWT claim names, or 3) contained in the JWS signature part... jti MUST represent the id property of the verifiable credential -- negative, no jti expected untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โœ“
A verifiable presentation ... vp MUST be present in a JWT verifiable presentation untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โœ“
A verifiable presentation ... aud MUST represent the subject of the consumer of the verifiable presentation untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โœ“
A verifiable presentation ... jti MUST represent the id property of [...] the verifiable presentation untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โŒ
A verifiable presentation ... jti MUST represent the id property of [...] the verifiable presentation -- negative, no jti expected untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โŒ
A verifiable presentation ... iss MUST represent [...] the holder property of a verifiable presentation untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โŒ
A verifiable presentation ... iss MUST represent [...] the holder property of a verifiable presentation. -- negative, no jti expected untested untested untested no support no support untested no support untested โœ“ โœ“ โœ“ โœ“ untested โœ“

Zero-Knowledge Proofs (optional)

Test BrightLinkCredlyEvernymFactom-Harmony-IntegrateGravityGuillaume-DaumasOpenAttestationSovrin-Ken_EbertSpruceToulouse-KentuPort-kotlinuPortvc.jsverifiable-credentials-java
A verifiable credential... MUST contain a credentialSchema no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable credential... MUST contain a credentialSchema (negative - credentialSchema missing) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support
A verifiable credential... MUST contain a proof no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable credential... MUST contain a proof (negative - missing) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support
A verifiable credential... Each credentialSchema... MUST specify a type no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable credential... Each credentialSchema... MUST specify a type (negative - type missing) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support
A verifiable credential... Each credentialSchema... MUST specify an `id` property no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable credential... Each credentialSchema... MUST specify an `id` property (negative - `id` missing) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support
A verifiable credential... Each credentialSchema... value of `id` MUST be a URI identifying a schema file no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable credential... Each proof... MUST include specific method using the type property no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable credential... Each proof... proof MUST include type property (negative - missing proof type) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support
A verifiable presentation... MUST be of type `VerifiablePresentation` no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable presentation... MUST include `proof` no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable presentation... MUST include `proof` (negative - missing `proof`) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support
A verifiable presentation... Each verifiable credential... MUST have a `credentialSchema` member no support no support โœ“ no support no support โŒ no support โœ“ โœ“ no support โŒ โŒ no support no support
A verifiable presentation... Each verifiable credential... MUST contain a credentialSchema (negative - credentialSchema missing) no support no support โœ“ no support no support โœ“ no support โœ“ โœ“ no support โœ“ โœ“ no support no support