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 blockcerts
@context MUST be one or more URIs
@context first value MUST be https://www.w3.org/2018/credentials/v1
@context subsequent items can be objects that express context information
`id` properties MUST be a single URI
`type` properties MUST be one or more URIs
`type` properties for Credential MUST be `VerifiableCredential` plus specific type
`credentialSubject` property MUST be present
`credentialSubject` property MUST be present, may be a set of objects
`issuer` property MUST be present
`issuer` property MUST be a single URI
`issuanceDate` property MUST be present
`issuanceDate` property MUST be an RFC3339 datetime
`expirationDate` property MUST be an RFC3339 datetime
Presentations MUST be of type `VerifiablePresentation`
Presentations MUST include `verifiableCredential` and `proof`
@context MUST be one or more URIs (negative)
@context first value MUST be https://www.w3.org/2018/credentials/v1 (negative)
`id` properties MUST be a single URI (negative)
`type` properties MUST be one or more URIs (negative)
`type` properties for Credential MUST be `VerifiableCredential` plus specific type (negative)
`credentialSubject` property MUST be present (negative - credentialSubject missing)
`issuer` property MUST be present (negative - missing issuer)
`issuer` property MUST be a single URI (negative - not URI)
`issuer` property MUST be a single URI (negative - Array)
`issuanceDate` property MUST be present (negative - missing issuanceDate)
`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 (negative - RFC3339)
`expirationDate` property MUST be an RFC3339 datetime (negative - Array)

Credential Status (optional)

Test blockcerts

Linked Data Proofs (optional)

Test blockcerts

Credential Schema (optional)

Test blockcerts

Refresh Service (optional)

Test blockcerts

Terms of Use (optional)

Test blockcerts

Evidence (optional)

Test blockcerts

JWT (optional)

Test blockcerts

Zero-Knowledge Proofs (optional)

Test blockcerts