Thoryn

VCT templates · VCT templates

Employment Credential VCT

VCT template for an employer-issued employment credential. Carries role, start date, employer, and optional security-clearance level.

Tested against:credentialIssuer: 1.0.0vctRegistry: 1.0.0

vct-templates recipe — shared category architecture: how this pattern composes with Hub, Broker, and the rest of the catalog

Issuer archetype

An employer issuing employment credentials to new hires on day one. The credential proves "X works at us as Y, since Z" — usable at landlords, benefits providers, partner services.

VCT URL

https://thoryn.org/vct/EmploymentCredential-v1

Claim schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "EmploymentCredential",
  "type": "object",
  "required": ["employer_name", "employer_id", "role", "start_date"],
  "properties": {
    "employer_name":       { "type": "string", "minLength": 1, "maxLength": 200 },
    "employer_id":         { "type": "string", "pattern": "^[A-Z]{2}-[0-9]{4,12}$" },
    "role":                { "type": "string", "maxLength": 100 },
    "start_date":          { "type": "string", "format": "date" },
    "department":          { "type": "string" },
    "security_clearance":  { "type": "string", "enum": ["none", "internal", "restricted", "secret"] },
    "remote_eligible":     { "type": "boolean" }
  }
}

Display metadata

{
  "name": "Employment",
  "description": "Verified employment credential.",
  "background_color": "#1a2a6e",
  "text_color": "#ffffff",
  "claims": [
    { "path": "employer_name", "label": "Employer" },
    { "path": "role",          "label": "Role" },
    { "path": "start_date",    "label": "Started" }
  ]
}

Sample minted credential

{
  "iss": "did:employer:thoryn",
  "sub": "did:key:zQ3sh...",
  "vct": "https://thoryn.org/vct/EmploymentCredential-v1",
  "iat": 1735000000,
  "exp": 1766000000,
  "employer_name": "Thoryn",
  "employer_id": "NL-12345678",
  "role": "Senior Engineer",
  "start_date": "2026-04-01",
  "department": "Platform"
}

Lifecycle

  • Expiry: 1 year (re-mint annually or on role change)
  • Revocation: issued on termination; status-list bit flipped same-day
  • Deferred flow: rarely (employment status is synchronous)

See also