Skip to main content

Issuer Verticals

The mwen.io issuer is designed for four types of credential-issuing organisations, each called a vertical. Each vertical has a distinct issuerCategory value, a set of credential schema templates, and a corresponding trust level that the wallet displays to users.


Overview

VerticalissuerCategorytrust_levelWallet badgeTypical deployer
Government"government""government"Blue "Government"Government agencies
Employer"employer""verified-issuer"Green "Employer Verified"Enterprises, HR departments
Academic"academic""verified-issuer"Green "Accredited Institution"Universities, colleges
Learning Platform"learning-platform""verified-issuer"Green "Verified Platform"Online learning platforms

The issuerCategory is set via the ISSUER_CATEGORY environment variable (or identity.category in issuer.config.yaml). It is embedded in every credential issued by your deployment.


Government

Government issuers hold the highest trust level in the mwen.io ecosystem. Credentials from a government issuer are displayed with a blue "Government" badge in the wallet and take priority over all other credential types when a relying party requests an identity proof.

Typical credentials:

SchemaWhat it attestsKey claims
National IDLegal identity, nationalitygiven_name, family_name, birth_date, national_id_number, nationality
PassportInternational travel documentgiven_name, family_name, birth_date, passport_number, expiry_date, nationality
Driver's LicenceAuthorisation to drivegiven_name, family_name, birth_date, licence_number, categories, expiry_date
Residence PermitRight to residegiven_name, family_name, birth_date, permit_number, valid_from, valid_until, permit_type

Recommended identity adapter: MockGovernmentDBAdapter for development; connect a real government identity directory (e.g. national ID database, civil registry) in production via a custom adapter implementing IdentityVerificationAdapter.

Typical deployment model: Self-hosted. A government agency deploys one instance with their own did:web signing key tied to a government-controlled domain.


Employer

Employer credentials verify employment status, role, and access rights within an organisation. They carry the "verified-issuer" trust level and display a green "Employer Verified" badge.

Typical credentials:

SchemaWhat it attestsKey claims
Employee IdentityActive employmentgiven_name, family_name, employee_id, department, job_title, start_date
Department AccessPhysical or system access entitlementemployee_id, department, access_level, valid_until
Role CredentialJob role for SSO replacementemployee_id, job_title, department, permissions

Recommended identity adapter: LDAPAdapter (Active Directory / OpenLDAP) or SCIMAdapter (Workday, Okta, any SCIM 2.0 HR system).

Typical deployment model: Self-hosted or SaaS. A large enterprise deploys self-hosted; a managed HR platform deploys SaaS to serve multiple employers.

Issuance pattern: Triggered by an LDAP/SCIM directory sync. The issuer diffs the directory state against currently-issued credentials and creates offers for new or updated employees. Each employee receives an offer by email and scans the QR code with their wallet.

Revocation: When an employee is offboarded, the issuer revokes their credentials via BitstringStatusList. The wallet detects the revocation status at next presentation.


Academic

Academic credentials verify educational achievements. They carry the "verified-issuer" trust level and display a green "Accredited Institution" badge.

Typical credentials:

SchemaWhat it attestsKey claims
University DiplomaDegree awardgiven_name, family_name, student_id, degree, major, graduation_date, institution
Academic TranscriptGrade recordgiven_name, family_name, student_id, institution, courses, gpa, graduation_date

Recommended identity adapter: StudentRegistryAdapter (connect your student information system in production).

Typical deployment model: Self-hosted. A university deploys one instance per institution.

Issuance pattern: Batch issuance. The registrar uploads a graduate list. The issuer creates one credential offer per graduate, distributes via email. Credentials are gated on StudentRegistryAdapter.verifyGraduation() — the adapter verifies eligibility before the issuer signs.


Learning Platform

Learning platform credentials verify course completions and professional certifications from online education providers. They carry the "verified-issuer" trust level and display a green "Verified Platform" badge.

Typical credentials:

SchemaWhat it attestsKey claims
Course CompletionCompletion of a specific courselearner_id, course_id, course_title, completion_date, score, issuer_platform
Professional CertificationCertification by a learning platformlearner_id, certification_id, certification_title, awarded_date, expiry_date

Recommended integration pattern: API key. The learning platform calls POST /api/offers with a scoped API key (offers:write scope) after a learner completes a course. The issuer returns a QR code URL that the platform renders in its completion page. The learner scans it with their wallet to claim the credential.

Typical deployment model: SaaS. Multiple learning platforms share one deployment as tenants.

See API Key Management for the full integration pattern.


Setting your issuer category

Set ISSUER_CATEGORY in your environment file or in issuer.config.yaml:

# issuer.config.yaml
identity:
category: employer # "government" | "employer" | "academic" | "learning-platform"

Or via environment variable (takes priority over the YAML value):

ISSUER_CATEGORY=government

The category is embedded in the issuerCategory claim of every credential your deployment issues and is used by the wallet trust registry to determine the display badge.