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/open-badges-v3.0.json (generated 2026-06-22), sha256 d33877372ac633f07ae4068b7f8a98a296769eece02f43e12314d317e0c90024.
- Requirements: 16/16 done across 3 profile(s) — displayer, host, issuer.
- Information model: 241/340 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 |
| OB-DSP-1 |
MUST |
✅ done |
A displayer MUST verify a presented credential and correctly determine its state — valid, expired, or revoked — before display, and MUST allow a viewer to trigger verification and retrieve the result. |
ob:3.0:conf:displayer/OB-DSP-1 |
OB 3.0 Cert §4.2 (Displayer Tests) — https://www.imsglobal.org/spec/ob/v3p0/cert/#displayer |
| OB-DSP-2 |
MUST |
✅ done |
A displayer MUST present the badge’s name, description, issuer name, issue date (validFrom) and verification status; and the image when the badge carries one (a baked badge). |
ob:3.0:conf:displayer/OB-DSP-2 |
OB 3.0 Cert §4.2 (Displayer — displayed badge data) — https://www.imsglobal.org/spec/ob/v3p0/cert/#displayer |
| OB-DSP-3 |
MUST |
✅ done |
A credential MUST be treated as expired when the current date-time is after its validUntil. |
ob:3.0:conf:displayer/OB-DSP-3 |
OB 3.0 Cert §4.1 (Credential Status — expired) — https://www.imsglobal.org/spec/ob/v3p0/cert/#status |
| OB-DSP-4 |
MUST |
✅ done |
A credential MUST be treated as revoked when credentialStatus is present with type ‘BitstringStatusListEntry’ and statusPurpose ‘revocation’; the credentialStatus.id MUST be the URL of the issuer’s credential status method. |
ob:3.0:conf:displayer/OB-DSP-4 |
OB 3.0 Cert §4.1 (Credential Status — revoked) — https://www.imsglobal.org/spec/ob/v3p0/cert/#status |
| OB-DSP-5 |
MUST |
✅ done |
A displayer MUST support the Data Integrity proof cryptosuites (eddsa-rdfc-2022, ecdsa-sd-2023) and MUST verify credentials expressed against the W3C VC Data Model 2.0 context. |
ob:3.0:conf:displayer/OB-DSP-5 |
OB 3.0 Cert §4.2.1 (Displayer — Supported Proof Mechanisms) — https://www.imsglobal.org/spec/ob/v3p0/cert/#displayer |
Modelled schema anchors
- OB-DSP-1 →
ob:3.0:def:AchievementCredential/proof, ob:3.0:def:AchievementCredential/validUntil, ob:3.0:def:AchievementCredential/credentialStatus
- OB-DSP-2 →
ob:3.0:def:AchievementCredential/name, ob:3.0:def:AchievementCredential/description, ob:3.0:def:AchievementCredential/issuer, ob:3.0:def:AchievementCredential/validFrom, ob:3.0:def:AchievementCredential/image, ob:3.0:def:AchievementCredential/credentialStatus
- OB-DSP-3 →
ob:3.0:def:AchievementCredential/validUntil
- OB-DSP-4 →
ob:3.0:def:AchievementCredential/credentialStatus, ob:3.0:def:CredentialStatus/id, ob:3.0:def:CredentialStatus/type
- OB-DSP-5 →
ob:3.0:def:AchievementCredential/proof, ob:3.0:def:AchievementCredential/@context
| Req |
Level |
Status |
Statement |
Verified by / justification |
Spec source |
| OB-HST-1 |
MUST |
✅ done |
The getCredentials response MUST return OpenBadgeCredentials, each independently verifiable; credentials signed with the VC-JWT proof format MUST be carried in the compactJwsString list. |
ob:3.0:conf:host/OB-HST-1 |
OB 3.0 Cert §5.2–5.3 (Host — Service Provider/Consumer Read) — https://www.imsglobal.org/spec/ob/v3p0/cert/#host |
| OB-HST-2 |
MUST |
✅ done |
A Badge Connect API service error/status response MUST be reported through the imsx_statusInfo structure, carrying at least an imsx_codeMajor and imsx_severity. |
ob:3.0:conf:host/OB-HST-2 |
OB 3.0 Cert §5 (Host — Service Provider compliance) + Badge Connect API — https://www.imsglobal.org/spec/ob/v3p0/cert/#host |
Modelled schema anchors
- OB-HST-1 →
ob:3.0:doc:getopenbadgecredentialsresponse/credential/[], ob:3.0:doc:getopenbadgecredentialsresponse/compactJwsString/[]
- OB-HST-2 →
ob:3.0:doc:imsx_statusinfo/imsx_codeMajor, ob:3.0:doc:imsx_statusinfo/imsx_severity
| Req |
Level |
Status |
Statement |
Verified by / justification |
Spec source |
| OB-ISS-1 |
MUST |
✅ done |
The @context MUST begin with the VC 2.0 context URI (https://www.w3.org/ns/credentials/v2) followed by the OB 3.0 context URI. |
ob:3.0:conf:issuer/OB-ISS-1 |
OB 3.0 §8 (AchievementCredential) — https://www.imsglobal.org/spec/ob/v3p0/#achievementcredential |
| OB-ISS-2 |
MUST |
✅ done |
The type MUST be an unordered set containing ‘VerifiableCredential’ and one of ‘AchievementCredential’ or ‘OpenBadgeCredential’. |
ob:3.0:conf:issuer/OB-ISS-2 |
OB 3.0 §8 (AchievementCredential.type) — https://www.imsglobal.org/spec/ob/v3p0/#achievementcredential |
| OB-ISS-3 |
MUST |
✅ done |
A verifiable AchievementCredential MUST carry at least one proof mechanism (embedded data-integrity proof) or be issued as an external JWT proof. |
ob:3.0:conf:issuer/OB-ISS-3 |
OB 3.0 §8 + VC-DATA-MODEL-2.0 §4 (data integrity) — https://www.imsglobal.org/spec/ob/v3p0/#data-integrity |
| OB-ISS-4 |
MUST |
✅ done |
The issuer MUST be a Profile identified by an IRI in the issuer.id property. |
ob:3.0:conf:issuer/OB-ISS-4 |
OB 3.0 §8 (AchievementCredential.issuer) + §9 (Profile) — https://www.imsglobal.org/spec/ob/v3p0/#profile |
| OB-ISS-5 |
MUST |
✅ done |
credentialSubject MUST be an AchievementSubject that identifies the achievement being awarded. |
ob:3.0:conf:issuer/OB-ISS-5 |
OB 3.0 §8 (AchievementCredential.credentialSubject) + AchievementSubject — https://www.imsglobal.org/spec/ob/v3p0/#achievementsubject |
| OB-ISS-6 |
MUST |
✅ done |
The type sets MUST be unordered sets whose required IRIs are present: an AchievementCredential’s type MUST include ‘AchievementCredential’, and an Achievement’s type MUST include ‘Achievement’. |
ob:3.0:conf:issuer/OB-ISS-6 |
OB 3.0 §8 (AchievementCredential.type) + §Achievement — https://www.imsglobal.org/spec/ob/v3p0/#achievement |
| OB-ISS-7 |
MUST |
✅ done |
An issued credential MUST be signed with a supported proof mechanism — a Data Integrity proof (the eddsa-rdfc-2022 or ecdsa-sd-2023 cryptosuite) or an external VC-JWT proof — and an embedded proof’s proofPurpose MUST be ‘assertionMethod’. |
ob:3.0:conf:issuer/OB-ISS-7 |
OB 3.0 Cert §3.1.1 (Issuer — Supported Proof Mechanisms) — https://www.imsglobal.org/spec/ob/v3p0/cert/#issuer |
| OB-ISS-8 |
MUST |
✅ done |
The issued AchievementCredential MUST contain all required fields (id, @context, issuer, validFrom, credentialSubject) and be valid: it MUST pass JSON-LD validation in safe mode (every term resolved by an associated context). |
ob:3.0:conf:issuer/OB-ISS-8 |
OB 3.0 Cert §3.1 (Issuer Tests) + §Valid Badge — https://www.imsglobal.org/spec/ob/v3p0/cert/#issuer |
| OB-ISS-9 |
MUST |
✅ done |
The recipient MUST be identified in the AchievementSubject by either an id or at least one identifier (an IdentityObject, hashed or plaintext). |
ob:3.0:conf:issuer/OB-ISS-9 |
OB 3.0 Cert §3.1 (Issuer — issue to recipient) + AchievementSubject — https://www.imsglobal.org/spec/ob/v3p0/#achievementsubject |
Modelled schema anchors
- OB-ISS-1 →
ob:3.0:doc:achievementcredential/@context
- OB-ISS-2 →
ob:3.0:doc:achievementcredential/type, ob:3.0:doc:achievementcredential/type/[]
- OB-ISS-3 →
ob:3.0:doc:achievementcredential/proof
- OB-ISS-4 →
ob:3.0:doc:achievementcredential/issuer, ob:3.0:def:ProfileRef
- OB-ISS-5 →
ob:3.0:doc:achievementcredential/credentialSubject, ob:3.0:def:AchievementSubject/achievement
- OB-ISS-6 →
ob:3.0:def:AchievementCredential/type/[], ob:3.0:def:Achievement/type/[]
- OB-ISS-7 →
ob:3.0:def:AchievementCredential/proof, ob:3.0:def:Proof/proofPurpose
- OB-ISS-8 →
ob:3.0:doc:achievementcredential, ob:3.0:def:AchievementCredential/id, ob:3.0:def:AchievementCredential/@context, ob:3.0:def:AchievementCredential/issuer, ob:3.0:def:AchievementCredential/validFrom, ob:3.0:def:AchievementCredential/credentialSubject
- OB-ISS-9 →
ob:3.0:def:AchievementSubject/id, ob:3.0:def:AchievementSubject/identifier