Skip to main content

Credential Schemas

The mwen.io issuer ships with 11 pre-built credential schema templates covering all four issuer verticals. Each schema defines the set of claims that can be included in a credential of that type, the vct URI that identifies it, and whether issued credentials are revocable.

All 11 schemas use SD-JWT-VC format and all support revocation via W3C Bitstring Status List v1.0.


Schema overview

Government (4 schemas)

Schema IDDisplay namevct URI
national-id-v1National IDhttps://mwen.io/schemas/national-id/v1
passport-v1Passporthttps://mwen.io/schemas/passport/v1
drivers-license-v1Driver's Licencehttps://mwen.io/schemas/drivers-license/v1
residence-permit-v1Residence Permithttps://mwen.io/schemas/residence-permit/v1

Employer (3 schemas)

Schema IDDisplay namevct URI
employee-identity-v1Employee Identityhttps://mwen.io/schemas/employee-identity/v1
department-access-v1Department Accesshttps://mwen.io/schemas/department-access/v1
role-credential-v1Role Credentialhttps://mwen.io/schemas/role-credential/v1

Academic (2 schemas)

Schema IDDisplay namevct URI
university-diploma-v1University Diplomahttps://mwen.io/schemas/university-diploma/v1
academic-transcript-v1Academic Transcripthttps://mwen.io/schemas/academic-transcript/v1

Learning Platform (2 schemas)

Schema IDDisplay namevct URI
course-completion-v1Course Completionhttps://mwen.io/schemas/course-completion/v1
professional-certification-v1Professional Certificationhttps://mwen.io/schemas/professional-certification/v1

Schema claim reference

national-id-v1

ClaimTypeRequiredNotes
given_namestringYesLegal first name
family_namestringYesLegal last name
birth_datestringYesISO 8601 (e.g. 1990-05-15)
national_id_numberstringYesGovernment-assigned identifier
nationalitystringYesISO 3166-1 alpha-2 (e.g. TT)
addressobjectNo{ street, city, country }

passport-v1

ClaimTypeRequiredNotes
given_namestringYes
family_namestringYes
birth_datestringYesISO 8601
passport_numberstringYes
nationalitystringYesISO 3166-1 alpha-2
expiry_datestringYesISO 8601
place_of_birthstringNo

drivers-license-v1

ClaimTypeRequiredNotes
given_namestringYes
family_namestringYes
birth_datestringYesISO 8601
licence_numberstringYes
categoriesstring[]Yese.g. ["B", "C1"]
expiry_datestringYesISO 8601
issue_datestringNoISO 8601

residence-permit-v1

ClaimTypeRequiredNotes
given_namestringYes
family_namestringYes
birth_datestringYesISO 8601
permit_numberstringYes
permit_typestringYese.g. "indefinite_leave_to_remain"
valid_fromstringYesISO 8601
valid_untilstringNoISO 8601; omit for indefinite
nationalitystringYesISO 3166-1 alpha-2

employee-identity-v1

ClaimTypeRequiredNotes
given_namestringYes
family_namestringYes
employee_idstringYesInternal employee identifier
departmentstringYes
job_titlestringYes
start_datestringYesISO 8601
emailstringNoWork email address

department-access-v1

ClaimTypeRequiredNotes
employee_idstringYes
departmentstringYes
access_levelstringYese.g. "read", "write", "admin"
valid_untilstringNoISO 8601; omit for indefinite

role-credential-v1

ClaimTypeRequiredNotes
employee_idstringYes
job_titlestringYes
departmentstringYes
permissionsstring[]Noe.g. ["hr:read", "finance:read"]

university-diploma-v1

ClaimTypeRequiredNotes
given_namestringYes
family_namestringYes
student_idstringYes
institutionstringYesFull institution name
degreestringYese.g. "Bachelor of Science"
majorstringYes
graduation_datestringYesISO 8601
honoursstringNoe.g. "First Class"

academic-transcript-v1

ClaimTypeRequiredNotes
given_namestringYes
family_namestringYes
student_idstringYes
institutionstringYes
coursesobject[]YesArray of { code, title, grade, credits }
gpanumberNo
graduation_datestringNoISO 8601

course-completion-v1

ClaimTypeRequiredNotes
learner_idstringYesPlatform-assigned learner identifier
course_idstringYes
course_titlestringYes
completion_datestringYesISO 8601
scorenumberNoPercentage score (0–100)
issuer_platformstringYesName of the learning platform

professional-certification-v1

ClaimTypeRequiredNotes
learner_idstringYes
certification_idstringYes
certification_titlestringYes
awarded_datestringYesISO 8601
expiry_datestringNoISO 8601; omit for non-expiring
issuer_platformstringYes

Selecting the right schema

Use the schema whose claims most closely match the credential you want to issue. You do not need to populate every optional field.

If none of the 11 templates fit your use case, contact your platform administrator about custom schema support.


Using schemas via the API

When creating a credential offer via the API, reference the schema by its ID in credentialConfigurationId:

curl -X POST https://issuer.yourorg.com/api/offers \
-H "Authorization: Bearer mk_live_<api-key>" \
-H "Content-Type: application/json" \
-d '{
"credentialConfigurationId": "course-completion-v1",
"claims": {
"learner_id": "user-123",
"course_id": "intro-python",
"course_title": "Introduction to Python",
"completion_date": "2026-03-10",
"score": 94,
"issuer_platform": "LearnCo"
}
}'