This is a interoperability report for implementers for the Verifiable Credentials Data Model v2.0 specification.
These tests were run on
🚫
|
Pending |
✓
|
Passed |
❌
|
Failed |
⊘
|
Access Denied |
⏱
|
Timeout |
—
|
Not Implemented |
The results of the tests are shown below:
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
A conforming document MUST be secured by at least one securing mechanism as described in Section 4.12 Securing Mechanisms. |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
A conforming issuer implementation MUST include all required properties in the conforming documents it produces. |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
A conforming issuer implementation MUST secure the conforming documents it produces using a securing mechanismdescribed in Section 4.12 Securing Mechanisms. |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
A conforming verifier implementation MUST perform verification on a conforming document as described inSection 4.12 Securing Mechanisms. |
❌
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
A conforming verifier implementation MUST produce errors when non-conforming documents are detected. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
If present, the value of the id property MUST be a single URL, which MAY be dereferenceable. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
If present, the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
If present, the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
If present (on `issuer`), the value of the name property MUST be a string or a language value object as described in 11.1 Language and Base Direction. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
If present (on `issuer`), the value of the description property MUST be a string or a language value object as described in 11.1 Language and Base Direction. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
A verifiable credential MUST have an issuer property. |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
The value of the issuer property MUST be either a URL or an object containing an id property whose value is a URL; in either case, the issuer selects this URL to identify itself in a globally unambiguous way. |
❌
|
✓
|
❌
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
A verifiable credential MUST contain a credentialSubject property. |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
The value of the credentialSubject property is a set of objects where each object MUST be the subject of one or more claims, which MUST be serialized inside the credentialSubject property. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
The type property is REQUIRED. |
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
The related normative guidance in Section 4.5 Types MUST be followed. |
❌
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
If present (credentialStatus.id), the normative guidance in Section 4.4 Identifiers MUST be followed. |
❌
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
(If a credentialStatus property is present), The type property is REQUIRED. It is used to express the type of status information expressed by the object. The related normative guidance in Section 4.5 Types MUST be followed. |
❌
|
✓
|
✓
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine whether the provided data conforms to the provided schema(s). |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
Each credentialSchema MUST specify its type (for example, JsonSchema), and an id property that MUST be a URL identifying the schema file. |
✓
|
✓
|
❌
|
✓
|
✓
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
If multiple schemas are present, validity is determined according to the processing rules outlined by each associated type property |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
If [the `id` field is] present, the normative guidance in Section 4.4 Identifiers MUST be followed. |
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
❌
|
✓
|
❌
|
The type property MUST be present. |
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
❌
|
✓
|
❌
|
One value of this property MUST be VerifiablePresentation, but additional types MAY be included.The related normative guidance in Section 4.5 Types MUST be followed. |
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
❌
|
✓
|
❌
|
The verifiableCredential property MAY be present. The value MUST beone or more verifiable credential and/or enveloped verifiable credential objects (the values MUST NOT be non-object values such as numbers, strings, or URLs). |
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
❌
|
✓
|
❌
|
If present (holder), the value MUST be either a URL or an object containing an id property. |
❌
|
❌
|
✓
|
✓
|
✓
|
✓
|
✓
|
❌
|
❌
|
✓
|
❌
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
A verifiable presentation that includes a self-asserted verifiable credential that is only secured using the same mechanism as the verifiable presentation MUST include a holder property. |
✓
|
❌
|
❌
|
✓
|
❌
|
❌
|
❌
|
✓
|
✓
|
❌
|
✓
|
When a self-asserted verifiable credential is secured using the same mechanism as the verifiable presentation, the value of the issuer property of the verifiable credential MUST be identical to the holder property of the verifiable presentation. |
❌
|
❌
|
❌
|
❌
|
❌
|
❌
|
❌
|
❌
|
❌
|
❌
|
❌
|
Implementer ⇒
⇓Test Name
|
apicatalog.com | Aviary Tech | Digital Bazaar | Gen Digital | Kataru Content VC | MakoLab | OpSecId | Procivis One Core | SpruceID | Trential | VC Issuer Mock |
---|---|---|---|---|---|---|---|---|---|---|---|
This section contains an algorithm that conforming verifier implementations MUST run when verifying a verifiable credential or a verifiable presentation. |
❌
|
✓
|
❌
|
✓
|
❌
|
❌
|
❌
|
❌
|
❌
|
✓
|
❌
|