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).
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.
The testing framework for the Verifiable Credentials Data Model executes the following process for every conformance statement in the Verifiable Credentials Data Model:
The results of the conformance testing are shown below:
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) | ✓ |
Presentations MUST include `verifiableCredential` and `proof` (negative - missing `verifiableCredential`) | ✓ |
Presentations MUST include `verifiableCredential` and `proof` (negative - missing `proof`) | ✓ |
Test | blockcerts |
---|---|
`credentialStatus` property MUST include `id` and `type` | ✓ |
`credentialStatus` property MUST include `id` and `type` (negative - missing `id`) | ✓ |
`credentialStatus` property MUST include `id` and `type` (negative - missing `type`) | ✓ |
Test | blockcerts |
---|---|
`proof` property MUST be present | ✓ |
`proof` property MUST include specific method using the type property | ✓ |
`proof` property MUST include type property (negative - missing proof type) | ✓ |
Test | blockcerts |
---|---|
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 | ✓ |
`credentialSchema` MUST provide one or more data schemas | ✓ |
Test | blockcerts |
---|---|
each object within `refreshService`... MUST specify a `type` property with a valid value | ✓ |
each object within `refreshService`... MUST specify an `id` property | ✓ |
each object within `refreshService`... value of `id` MUST be a URL identifying a service endpoint | ✓ |
`refreshService` MUST provide one or more refresh services | ✓ |
Test | blockcerts |
---|---|
each object within `termsOfUse`... MUST specify a `type` property with a valid value | ✓ |
`termsOfUse` MUST provide one or more ToU objects | ✓ |
Test | blockcerts |
---|---|
each object within `evidence`... MUST specify a `type` property with a valid value | ✓ |
`evidence` MUST provide one or more evidence objects | ✓ |
Test | blockcerts |
---|
Test | blockcerts |
---|