Skip to content

VC 2.0 — certification dossier

Generated by bun run conformance:render — do not edit by hand.

Point-by-point certification submission: every conformance requirement against the literal published schema (conform-ed ADR-0013), with emergent’s implementation status, the spec citation, the modelled schema anchors, and the verifying evidence (emergent ADR-0028).

  • Denominator: pinned Coverage Map docs/conformance/maps/vc-data-model-v2.0.json (generated 2026-06-22), sha256 5908dd96e832c472d4435c0a3f5a3e5dbfa2589bad6a93fb9935d659245510a5.
  • Requirements: 3/5 done across 2 profile(s) — credential, presentation.
  • Information model: 53/68 literal items modelled.
  • Evidence: each claim cites its [covers:] evidence key; run bun run conformance:prove to resolve these to the proving test names for a submission copy.
Req Level Status Statement Verified by / justification Spec source
VC-1 MUST ✅ done A verifiable credential MUST have a @context whose first value is https://www.w3.org/ns/credentials/v2, a type that includes VerifiableCredential, an issuer, a validFrom, and a credentialSubject. vc:2.0:conf:credential/VC-1 W3C Verifiable Credentials Data Model 2.0 — https://www.w3.org/TR/vc-data-model-2.0/
VC-2 MUST ✅ done An id, when present, MUST be a single URL; validUntil, when present, MUST be an XMLSchema dateTime; a credentialSubject identifies the subject via an optional id. vc:2.0:conf:credential/VC-2 W3C Verifiable Credentials Data Model 2.0 — https://www.w3.org/TR/vc-data-model-2.0/
VC-3 MUST ➖ n/a Each credentialSchema, credentialStatus, refreshService, termsOfUse and evidence entry MUST carry a type (and an id where the property requires one). emergent’s v1 credentials carry none of the optional securing/lifecycle objects this MUST conditions on — credentialSchema, credentialStatus, refreshService, termsOfUse, evidence are not emitted by assembleAchievementCredential / assembleClrCredential — so the “each entry MUST carry a type” obligation has no instance to bind. (The OB/CLR profile validity is proven in the dedicated OB/CLR conformance lanes against the official 1EdTech schemas.) W3C Verifiable Credentials Data Model 2.0 — https://www.w3.org/TR/vc-data-model-2.0/
VC-4 MUST ➖ n/a A credential secured with an embedded proof MUST carry a proof with a type (the Data Integrity / Data Model securing mechanism). emergent secures credentials with an ENVELOPING VC-JOSE proof (compact JWS, EdDSA/Ed25519) behind the KeySigner seam, verified externally via the published JWKS — not an embedded Data Integrity proof member. VC-4 binds only credentials secured with an embedded proof, which is not emergent’s securing mechanism. W3C VC Data Model 2.0 §securing-mechanisms — https://www.w3.org/TR/vc-data-model-2.0/
Modelled schema anchors
  • VC-1vc:2.0:def:VerifiableCredential/@context, vc:2.0:def:VerifiableCredential/type, vc:2.0:def:VerifiableCredential/issuer, vc:2.0:def:VerifiableCredential/validFrom, vc:2.0:def:VerifiableCredential/credentialSubject
  • VC-2vc:2.0:def:VerifiableCredential/id, vc:2.0:def:VerifiableCredential/validUntil, vc:2.0:def:CredentialSubject/id
  • VC-3vc:2.0:def:CredentialSchema/type, vc:2.0:def:CredentialStatus/type, vc:2.0:def:RefreshService/type, vc:2.0:def:TermsOfUse/type, vc:2.0:def:Evidence/type
  • VC-4vc:2.0:def:VerifiableCredential/proof, vc:2.0:def:Proof/type
Req Level Status Statement Verified by / justification Spec source
VP-1 MUST ✅ done A verifiable presentation MUST have a @context whose first value is https://www.w3.org/ns/credentials/v2 and a type that includes VerifiablePresentation; it MAY declare a holder and enclose verifiableCredential(s). vc:2.0:conf:presentation/VP-1 W3C Verifiable Credentials Data Model 2.0 — https://www.w3.org/TR/vc-data-model-2.0/
Modelled schema anchors
  • VP-1vc:2.0:def:VerifiablePresentation/@context, vc:2.0:def:VerifiablePresentation/type, vc:2.0:def:VerifiablePresentation/holder, vc:2.0:def:VerifiablePresentation/verifiableCredential