Thoryn

Wallet profiles · Wallet profiles

Healthcare practitioner licence

Wallet profile for credential-gated platform access. Request a HealthcarePractitionerLicense with licence_number + valid_until.

Tested against:broker: 1.0.0arf: 1.4

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

Use case

A prescription-management platform for GPs, pharmacists, and clinical nurses must verify the practitioner's licence on every controlled-substance prescription. The licensing board issues the credential; the platform verifies on every action; revocation propagates same-day.

Wallet profile (YAML)

id: healthcare-practitioner
name: "Healthcare practitioner licence"
accepted_formats:
  - vc+sd-jwt
trust_registry_url: https://trust.thoryn.org
allowed_issuers:
  - "did:nl:big-register"        # NL Big-register
  - "did:de:bundesarztekammer"   # DE Bundesärztekammer
  - "did:fr:ordre-medecins"      # FR Ordre des Médecins
session_ttl_seconds: 300
require_holder_binding: true
policy_rule_id: revocation-active-and-fresh

Presentation definition

{
  "id": "healthcare-license-pd",
  "input_descriptors": [
    {
      "id": "license",
      "constraints": {
        "fields": [
          { "path": ["$.vct"], "filter": { "const": "HealthcarePractitionerLicense" } },
          { "path": ["$.practitioner_type"] },
          { "path": ["$.licence_number"] },
          { "path": ["$.valid_until"] }
        ]
      }
    }
  ]
}

Pairs with revocation-active-and-fresh

This profile is most useful when paired with revocation-active-and-fresh. Broker's status-list check rejects revoked licences; the rule additionally rejects credentials that are technically still on the list but past their valid_until.

Sample webhook payload

{
  "session_id": "...",
  "vct": "HealthcarePractitionerLicense",
  "claims": {
    "practitioner_type": "physician",
    "licence_number": "NL-BIG-12345678",
    "valid_until": "2027-06-30"
  },
  "verified_at": "2026-04-25T..."
}

When to use

  • Platforms gating on professional licensure (medicine, law, finance)
  • Regulators that revoke same-day — propagation must be fast

When not to use

  • Verification once at onboarding — use a long-TTL session and skip per-action verification (lower assurance)

See also