Standards
How LearnCoin implements W3C VC 2.0, W3C DIDs, Blockcerts v3, and Open Badges 3.0.
Every LearnCoin credential is simultaneously a W3C Verifiable Credential 2.0, a Blockcerts v3 credential, and an Open Badges 3.0 credential. No dialect lock-in — the same signed document satisfies all three.
The standards LearnCoin implements
| Standard | @context | Role in LearnCoin |
|---|---|---|
| W3C VC 2.0 | https://www.w3.org/ns/credentials/v2 | Base credential envelope |
| W3C DIDs | did:web:learncoin.me + per-tenant verificationMethod | Issuer identity resolution |
| Blockcerts v3 | https://w3id.org/blockcerts/v3 | On-chain anchoring via MerkleProof2019 |
| Open Badges 3.0 | https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json | Achievement shape + skill alignment |
| JSON-LD / LD Proofs | https://w3id.org/security/data-integrity/v2 | Canonicalization (URDNA2015) + proof block |
Canonicalization & hashing
Credentials are canonicalized with URDNA2015 before leaf hashing. Each canonicalized credential is hashed with SHA-256; the leaves build into a Merkle tree. The root is anchored on Base. Every credential carries a MerkleProof2019 proof block with the path from its leaf to that root, so verifiers can re-walk the tree without calling LearnCoin.
Anchoring chain
LearnCoin was added as a supported chain to the upstream Blockcerts libraries — lds-merkle-proof-2019 and explorer-lookup — as part of adding Base support. Any Blockcerts-compatible verifier can confirm an anchor transaction on Base without LearnCoin-specific code.
What's next
In progress. Per-standard deep dives will land here:
- W3C VC 2.0 — exact field mapping,
credentialSubject,issuer,proof- W3C DIDs —
did:web:learncoin.medocument, per-tenantverificationMethodfragments- Blockcerts v3 —
MerkleProof2019, anchor transaction lookup, compatibility with native wallets- Open Badges 3.0 —
AchievementSubjectshape,alignment[]for ESCO + custom frameworks
Until then, the public standards page has the audit-verified overview with links into the specs.