The Universal Issuer enables the issuance of different types of Verifiable Credentials (VCs), using a common interface.
The Universal Issuer can issue Verifiable Credentials in various formats (JSON-LD, VC-JWT, SD-JWT), as well as return metadata.
See https://api.godiddy.com/#tag/Universal-Issuer
When issuing a VC, the input is a credential plus options, and the output is the Verifiable Credential including a proof.
The following request will return a Verifiable Credential.
Note that the issuer
DID must exist in your account's Wallet Service.
Supported options:
format: The format of the Verifiable Credential to issue.
jsonld
, jwt
, jsonldjwt
, sdjwt
jsonld
type: The type of proof to generate for the Verifiable Credential.
Ed25519Signature2018
, Ed25519Signature2018
, JsonWebSignature2020
, etc.verificationMethod: The URI of the verification method to use for generating the proof.
proofPurpose: The purpose of the proof.
assertionMethod
returnMetadata: Whether or not to return metadata in the response.
true
, false
false
credentialStatus.type: The type of status list to set up for the Verifiable Credential.
RevocationList2020Status
, StatusList2021Entry
, etc.credentialFormatOptions.documentLoaderEnableHttps: Whether or not to load JSON-LD contexts remotely via HTTPS.
true
, false
true
credentialFormatOptions.documentLoaderEnableHttp: Whether or not to load JSON-LD contexts remotely via HTTP.
true
, false
false
credentialFormatOptions.documentLoaderEnableFile: Whether or not to load JSON-LD contexts remotely via local files.
true
, false
false
proofFormatOptions.overrideCanonicalization: Override the canonicalization algorithm to be used.
urdna2015
, jcs
curl -H "Authorization: Bearer b082c420-df67-4b06-899c-b7c51d75fba0" \
-X POST "https://api.godiddy.com/1.0.0/universal-issuer/credentials/issue" \
-H "Content-Type: application/json" \
-d '{
"credential": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://essif.europa.eu/schemas/vc/2020/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAttestation",
"DiplomaCredential"
],
"issuer": "did:key:z6MkpMuEMxTKFnNugkZBa5YDtrwNaDun2HjSMiQNeUxsEB24",
"credentialSubject": {
"type": "Student",
"id": "did:key:z6MkqyYXcBQZ5hZ9BFHBiVnmrZ1C1HCpesgZQoTdgjLdU6Ah",
"studyProgram": "Master Studies in Computer Science",
"learningAchievement": "Master of Science",
"dateOfAchievement": "2021-03-18T00:00:00.000Z",
"eqfLevel": "http://data.europa.eu/snb/eqf/7",
"targetFrameworkName": "European Qualifications Framework for lifelong learning - (2008/C 111/01)"
}
},
"options": {
"format": "jsonld",
"type": "Ed25519Signature2020",
"returnMetadata": false,
"credentialFormatOptions": {
"documentLoaderEnableHttps": true
}
}
}'
When creating an OID4VCI Credential Offer, the inputs are the schema, format, and claim values, and the output is the Credential Offer.
As a prerequisite, a configuration value with key oidc
has to be set according to Issuer Configuration, which must contain one or more OID4VCI credential configurations, using of the DIDs in your Wallet Service.
The following request will return an OID4VCI Credential Offer.
curl -H "Authorization: Bearer b082c420-df67-4b06-899c-b7c51d75fba0" \
-X POST "https://api.godiddy.com/1.0.0/universal-issuer-oid4vci/v13/authorize/pre-authorize" \
-H "Content-Type: application/json" \
-d '{
"claims": {
"type": "AchievementSubject",
"achievement": {
"type": "Achievement",
"name": "Universal Issuer issued Open Badge v3 credential",
"description": "Wallet can store and display Badge v3 credential",
"criteria": {
"type": "Criteria",
"narrative": "The first cohort of the JFF Plugfest 3 in Oct/Nov of 2023 collaborated to push interoperability of VCs in education forward."
},
"image": {
"id": "https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png",
"type": "Image"
}
}
},
"schema": "OpenBadgeCredential_jwt_vc_json"
}'