Reference W3C VC Data Model 2.0 (now a W3C Recommendation as of 2025) at https://www.w3.org/TR/vc-data-model-2.0/ for required fields: @context, type, issuer, validFrom, credentialSubject
Include the Open Badges 3.0 context https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json alongside the W3C VC context https://www.w3.org/ns/credentials/v2 in the @context array for education-specific achievement typing
Set credentialSubject.achievement.type to ["Achievement"] and populate achievement.name, achievement.description, achievement.criteria.narrative, and optionally achievement.image with a badge image URL
Sign using a Data Integrity Proof: generate an eddsa-rdfc-2022 proof with proofPurpose=assertionMethod, verificationMethod pointing to the issuer's DID document key, and created timestamp
Publish the credential as a JSON-LD document; optionally wrap in a Verifiable Presentation (VP) for transmission to a verifier using the presentationSubmission format per the Presentation Exchange specification
Verify the credential by resolving the issuer DID, fetching the verification method public key, and confirming the proof's cryptographic signature matches the canonicalized document
Known gotchas
VC Data Model 2.0 replaces issuanceDate (used in VCDM 1.1) with validFrom; systems that parse issuanceDate will not find the field in 2.0 credentials and may incorrectly report missing dates
Mixing @context URIs from VCDM 1.1 (https://www.w3.org/2018/credentials/v1) with VCDM 2.0 (https://www.w3.org/ns/credentials/v2) in the same document causes JSON-LD processing errors
DIDs used as issuer must be resolvable at verification time; using did:key or did:web requires the key or web document to remain publicly accessible or all issued credentials become unverifiable
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp