Skip to main content

Originator Profile Set

Summary

This document defines a data format that can be used to aggregate and distribute VC about an organization.

Terminology

For terms not explained in this document, please see the Terminology.

  • Core Profile (CP)
  • Profile Annotation (PA)
  • Web Media Profile (WMP)
  • Originator Profile (OP)
  • Originator Profile Set (OPS)

Originator Profile Set (OPS) Data Model

The data model of OPS is expressed in JSON.

OPS MUST be an array of JSON objects.

Each JSON object has the following properties:

  • core: Core Profile (REQUIRED)
  • annotations: An array of Profile Annotation (OPTIONAL)
  • media: An array of Web Media Profile (OPTIONAL)

core

REQUIRED. Core Profile

annotations

OPTIONAL. An array of Profile Annotation. If this property is included, then for each element, the Core Profile in core and credentialSubject.id MUST be equal. This property SHOULD be included if the OPS recipient has an interest in the trustworthiness of the OP ID holding organization in credentialSubject.id.

media

OPTIONAL. An array of Web Media Profile. If this property is included, the credentialSubject.id of each element and the credentialSubject.id of the Core Profile in core MUST be equal.

JSON Serialization for OPS

The JSON of the data model is the JSON representation of OPS. The media type is application/ops+json.

Examples

This section is non-normative.

Below is an example of an OPS that contains only VCs from a single organization:

[
{
"core": "eyJ...",
"annotations": ["eyJ..."],
"media": ["eyJ..."]
}
]

Below is an example of an OPS that includes VCs from multiple organizations.

[
{
"core": "eyJ...",
"annotations": ["eyJ...", "eyJ..."],
"media": ["eyJ..."]
},
{
"core": "eyJ...",
"annotations": ["eyJ..."],
"media": ["eyJ..."]
}
]

Internationalization

Originator Profile Set distributors MAY include two or more VCs with different languages specified in their respective annotations and media properties, to allow applications to extract VCs based on locale.

The method for specifying the language(s) in VCs conforms to the internationalization section of the OP VC Data Model.

Validation Process

This section is non-normative.

The verification process implemented in @originator-profile/verify follows the following process.

Please refer to the following reference for the structure of the data handled in the verification process.

  • OpsInvalid
  • OpVerifyFailed
  • OpsVerifyFailed
  • Verified OPS

Details of the CP / PA / WMP verification process are in accordance with Verification of VCs Compliant with the OP VC Data Model. However, CP verification is performed using the validation key and OP ID of a pre-approved CP issuer, and does not require obtaining a verification key from the OPS.