Appearance
Issuer Configuration
The Universal Issuer supports various configuration settings that can be configured per account.
Configuration Setting: oid4vci
Using this setting, various aspects of the OID4VCI functionality of the Universal Issuer can be specified.
Get Configuration
The following request will get the oid4vci configuration value.
bash
curl -X GET "https://profile.godiddy.com/1.0.0/profile/metadata/oid4vci" \
-H "Authorization: Bearer b082c420-df67-4b06-899c-b7c51d75fba0"1
2
2
Set Configuration
The following request will set the oid4vci configuration value, in this example, to configure the EU PID ( EuPid2023_sd_jwt_dc) credential schema.
bash
curl -X PUT "https://profile.godiddy.com/1.0.0/profile/metadata/oid4vci" \
-H "Authorization: Bearer b082c420-df67-4b06-899c-b7c51d75fba0" \
-H "Content-Type: application/json" \
-d '{
"credentialConfigurations": {
"EuPid2023_sd_jwt_dc": {
"format": "dc+sd-jwt",
"vct": "urn:eu.europa.ec.eudi:pid:1",
"issuer": {
"kid": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg#zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg",
"id": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg",
"name": "Universal Issuer",
"image": "https://uniissuer.io/images/logo.jpg"
},
"scope": "urn:eu.europa.ec.eudi:pid:1",
}
}
}'1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Credential Schema Configuration
The credentialConfigurations object contains a map of configured credential schemas. Each entry in the map consists of a credential schema (the key) and a corresponding set of configuration values (the value). Below is an example structure for configuring multiple credential schemas:
json
{
"credentialConfigurations": {
"ExampleCredentialSchema_1": {
},
"ExampleCredentialSchema_2": {
}
}
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Each credential configuration supports the following properties:
| Property | Type | Description | Required |
|---|---|---|---|
format | String | Format of the VC | Yes |
context | Array | @context of the VC | Yes |
type | Array | Credential Type | Yes |
vct | String | vct of SD-JWT VC | Yes (for SD-JWT) |
issuer | Object | Credential Issuer configuration | Yes |
credential_status | Object | Revocation configuration | No |
Format
Represents the format of the credential. Supported values are: jwt_vc_json | ldp_vc | dc+sd-jwt.
Context
The @context of the credential. At least the base context — https://www.w3.org/2018/credentials/v1 for VCDM-v1 and https://www.w3.org/ns/credentials/v2 for VCDM-v2 — must be included.
Type
Type of the credential. At least the base type VerifiableCredential must be included.
VCT
For vc+sd-jwt and dc+sd-jwt format, the vct of the credential must be specified. The vct is a URI that uniquely identifies the type of verifiable credential being issued. It serves as a reference to the specific schema or standard that defines the structure and semantics of the credential. The vct helps in ensuring interoperability and understanding of the credential across different systems and platforms.
Issuer
The issuer field configures the credential issuer details and signing key.
issuer.id: DID of the issuer. Use one of the DIDs created in this platform. To create a DID, create a DID using the DID Registration.issuer.kid: (Optional) Key ID of the signing key. Thekidmust be part of the DID Document of theissuer.id.issuer.name: (Optional) Name of the issuerissuer.image: (Optional) Logo URL of the issuerissuer.url: (Optional) URL of the issuer
Credential Status
Configure the credential_status to enable revocation for the issued credentials. If not configured, the issued credentials will not have revocation status.
credentialStatus.type: for VCDM-v1StatusList2021Entryand for VCDM-v2BitstringStatusListEntrycredentialStatus.issuerDid:(Optional) Issuer DID of Status List VCcredentialStatus.revocationListId:(Optional) Set an Identifier/name of Status List VCcredentialStatus.revocationListLength:(Optional) Length of the Status ListcredentialStatus.statusPurpose: (Optional) Status purpose. values arerevocation | suspension.
An example Schema
json
{
"credentialConfigurations": {
"ExampleCredentialSchema": {
"format": "dc+sd-jwt",
"context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": [
"VerifiableCredential",
"ExampleCredential"
],
"vct": "https://example.org/vct/example-credential",
"issuer": {
"id": "did:web:example.org",
"name": "Example Issuer",
"kid": "did:web:example.org#key-1"
},
"credential_status": {
"type": "StatusList2021Entry",
"issuerDid": "did:web:example.org",
"revocationListId": "revocation-list-1",
"revocationListLength": 10000,
"statusPurpose": "revocation"
},
"credential_signing_alg_values_supported": [
"ES256",
"ES384",
"EdDSA",
"ES256K",
"PS256"
],
"cryptographic_binding_methods_supported": [
"did:key",
"did:web",
"did:ebsi",
"did:jwk",
"did:webvh",
"jwk"
],
"proof_types_supported": [
"ES256",
"ES256K",
"EdDSA"
]
}
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Supported Credential Formats
| Name | Format Identifier |
|---|---|
| JWT VC | jwt_vc_json |
| JSON-LD VC | ldp_vc |
| DC-SD-JWT | dc+sd-jwt |
Supported Cryptographic Algorithms for Credential Signing
| Algorithm | Note |
|---|---|
| ES256 | ECDSA with P-256 curve and SHA-256 |
| ES384 | ECDSA with P-384 curve and SHA-384 |
| EdDSA | Ed25519 signature algorithm |
| ES256K | ECDSA with secp256k1 curve |
| PS256 | RSASSA-PSS with SHA-256 |
Supported Cryptographic Binding Methods
| Binding Method | Note |
|---|---|
did:key | Decentralized identifier with key |
did:web | Web-based decentralized identifier |
did:ebsi | EBSI decentralized identifier |
did:jwk | JWK-based decentralized identifier |
did:webvh | Web-based verifiable credential holder |
jwk | JSON Web Key |
Examples Credential Configurations
1. ISO 18013 Driver's License in JSON-LD format
json
{
"Iso18013DriversLicenseCredential_ldp_vc": {
"format": "ldp_vc",
"context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/vdl/v2",
"https://w3id.org/vdl/aamva/v1"
],
"type": [
"VerifiableCredential",
"Iso18013DriversLicenseCredential"
],
"issuer": {
"id": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg",
"name": "Universal Issuer",
"image": "https://uniissuer.io/images/logo.jpg",
"url": "https://dmv.utopia.example/,",
"kid": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg#zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg"
},
"credentialStatus": {
"type": "StatusList2021Entry",
"issuerDid": "did:key:zDnaeXPwKyi5isPCAfNMj1SG3QDMWYqQFcdCwvvLosQ3zg1mo",
"revocationListId": "revocation-list",
"statusPurpose": "revocation",
"revocationListLength": 100000
}
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2. EU PID in SD-JWT
json
{
"EuPid2023_sd_jwt_dc": {
"format": "dc+sd-jwt",
"vct": "urn:eu.europa.ec.eudi:pid:1",
"issuer": {
"kid": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg#zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg",
"id": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg",
"name": "Universal Issuer",
"image": "https://uniissuer.io/images/logo.jpg"
},
"scope": "urn:eu.europa.ec.eudi:pid:1"
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
3. EU PID JWT VC
json
{
"EuPid2023_jwt_vc_json": {
"format": "jwt_vc_json",
"context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"EuPid2023"
],
"issuer": {
"id": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg",
"name": "Universal Issuer",
"image": "https://uniissuer.io/images/logo.jpg",
"kid": "did:key:zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg#zDnaetFfmqyM8dDpQNizCef9k8HGbHKx6d1bnCvV1daqynDPg"
},
"scope": "urn:eu.europa.ec.eudi:pid:1"
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Custom Credential Schema
json
{
"MyCustomCredential_jwt_vc_json": {
"format": "jwt_vc_json",
"context": [
"https://www.w3.org/2018/credentials/v1",
"https://my-schema.org/v1"
],
"type": [
"VerifiableCredential",
"MyCustomCredential"
],
"issuer": {
"id": "did:key:zMyIssuerKey",
"name": "My Custom Issuer",
"image": "https://my-issuer.com/logo.png",
"kid": "did:key:zMyIssuerKey#zMyIssuerKey"
},
"credential_signing_alg_values_supported": [
"ES256",
"EdDSA"
],
"cryptographic_binding_methods_supported": [
"did:key",
"jwk"
],
"proof_types_supported": [
"ES256",
"EdDSA"
]
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31