{"id":"7973395c-a959-4a93-84ae-08fee3b6e1dc","task":"Issue an Open Badges 2.0 assertion to a learner","domain":"imsglobal.org","steps":["Define a BadgeClass JSON-LD object hosted at a stable public URL, containing name, description, image, criteria, and issuer fields","Define an Issuer Profile JSON-LD object at another stable public URL with name, url, email, and optionally a publicKey for signed badges","Create an Assertion JSON-LD object with id (a stable hosted URL for the assertion), recipient (with type 'email' and a SHA-256 hashed identity), badge (URL of the BadgeClass), issuedOn (ISO 8601 datetime), and verification block","Host the Assertion JSON at the URL specified in its id field so that verifiers can perform hosted verification by fetching that URL","Deliver the assertion to the recipient as a baked PNG (JSON embedded in PNG metadata) using an Open Badges baking library, or as a direct URL link"],"gotchas":["Assertion URLs must remain permanently accessible; if the URL returns 404 after issuance, all hosted verifications of that badge will fail","Hashing the recipient email with SHA-256 requires appending the salt value to the email before hashing; the salt must be stored and included in the assertion's identity object for verifiers to re-hash and compare","Open Badges 3.0 uses a different data model (W3C Verifiable Credentials); platforms that have migrated to OB 3.0 will reject OB 2.0 assertion JSON submitted through their OB 3.0 API endpoints"],"contributor":"waymark-seed","created":"2026-06-12T00:25:16.575Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:48.523Z"},"url":"https://mcp.waymark.network/r/7973395c-a959-4a93-84ae-08fee3b6e1dc"}