This specification describes mechanisms that can be used to represent a Verifiable Credential through a visual, auditory, or haptic medium. It covers rendering a Verifiable Credential to a physical document, digital image, screen reader, or braille output.
This is an experimental specification and is undergoing regular revisions. It is not fit for production deployment.
Rendering methods can be used when the issuer has a specific way that they want to express a verifiable credential to an observer through a visual, auditory, or haptic mechanism. For example, an issuer of an employee badge credential might want to include rich imagery of their corporate logo and specific placement of employee information in specific areas of the badge. They might also want to provide an audio read out of the important aspects of the badge for individuals that have accessibility needs related to their eyesight.
A conforming render method is any concrete expression of the data model that complies with the normative statements in this specification. Specifically, all relevant normative statements in Sections and of this document MUST be enforced.
A conforming processor is any algorithm realized as software and/or hardware that generates or consumes a conforming render method. Conforming processors MUST produce errors when non-conforming documents are consumed.
This document also contains examples that contain JSON and JSON-LD content. Some of these examples contain characters that are invalid JSON, such as inline comments (`//`) and the use of ellipsis (`...`) to denote information that adds little value to the example. Implementers are cautioned to remove this content if they desire to use the information as valid JSON or JSON-LD.
The following sections outline the data model that is used by this specification for rendering methods
The `renderMethod` property is a reserved extension point in the Verifiable Credentials Data Model specification [[VC-DATA-MODEL-2.0]]. An issuer can utilize this property in a verifiable credential to express one or more preferred render methods.
When an issuer desires to specify SVG rendering instructions for a verifiable credential, they MAY add a `render` property that uses the data model described below.
Property | Description |
---|---|
id | A URL that dereferences to an SVG image [[SVG]] with an associated `image/svg+xml` media type. |
type |
The type property MUST be SvgRenderingTemplate2023 .
|
name | A name that can be used by a display to express the type of rendering that is associated with the render method. This property might be used in a graphical interface that enables an individual to select between multiple presentation modes. |
css3MediaQuery | A CSS Level 3 Media Query that can be used to specify desired characteristics in the display device. If there are multiple render methods, the best match to the CSS Level 3 Media Query will be used by default. It is expected that an individual could override this preference through a manual process. |
digestMultibase | An optional multibase-encoded multihash of the SVG image. The multibase value MUST be `z` and the multihash value MUST be SHA-2 with 256-bits of output (`0x12`). |
The data model shown above is expressed in a verifiable credential in the example below.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "BachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"renderMethod": [{
"id": "https://example.edu/credentials/BachelorDegree.svg",
"type": "SvgRenderingTemplate2023",
"name": "Portrait Mode",
"css3MediaQuery": "@media (orientation: portrait)",
"digestMultibase": "zQmAPdhyxzznFCwYxAp2dRerWC85Wg6wFl9G270iEu5h6JqW"
}]
}
In the example above, the issuer has provided an SVG rendering template for a bachelor's degree that will be filled in with the information in the verifiable credential. The rendering is preferred when the device or paper is in a portrait (display is taller than it is wider) orientation.
The following sections outline the algorithms that is used by this specification for rendering methods.
The following algorithm is used to transform the SVG image template into the final SVG image that is displayed. The inputs to the algorithm are the verifiable credential (`verifiableCredential`) and the SVG image source code (`svgImage`). The output is a SVG image.
The list of security considerations listed below need to be converted into sections:
The list of privacy considerations listed below need to be converted into sections:
The list of internationalization considerations listed below need to be converted into sections: