Credentials & Data
A Verifiable Credential is a digital certificate or badge — like a diploma, a skill badge, or a license — that proves something about a person. It's cryptographically signed, so anyone can check it's real without calling the issuer, and the person who earned it owns it and can share it anywhere.
Formally, a Verifiable Credential is a W3C standard JSON document: a set of claims about a subject, signed by an issuer. LearnCard issues and verifies two profiles of it:
Open Badges v3 (OBv3) — badges, certificates, and achievements. This is what
send()produces by default and what the examples in these docs use.Comprehensive Learner Record v2 (CLR) — a signed bundle of many achievements from one or more issuers, for transcripts and records.
Both are plain W3C credentials underneath, so any conformant wallet or verifier can read them. See Interoperability for the full list of standards LearnCard speaks.
What's inside a credential
LearnCard supports both VC 1.0 and VC 2.0. The shapes are defined as Zod validators in @learncard/types, so what you get back from the SDK is already type-checked.
@context
JSON-LD contexts defining the vocabulary
Yes
id
Unique identifier for the credential
No
type
Array of credential types
Yes
issuer
Entity that issued the credential
Yes
credentialSubject
Entity the credential is about
Yes
proof
Cryptographic proof of authenticity
Yes
The one difference you'll notice between versions: VC 1.0 uses issuanceDate / expirationDate; VC 2.0 uses validFrom / validUntil. New credentials should use 2.0.
Lifecycle
Issue. The issuer builds the claims and signs them — with its own key, or through a signing authority LearnCard hosts for it.
Deliver.
send()delivers to a LearnCard profile directly, or to an email or phone number through the Universal Inbox, which holds the credential until the recipient claims it.Store. Once claimed, the credential lives in the holder's account, encrypted, under the holder's key.
Present. The holder chooses what to share — one credential, or several bundled in a Verifiable Presentation.
Verify. The verifier checks the signature, the dates, and the status list. It never needs to contact the issuer.
To do this yourself: Send & Issue Credentials and Verify Credentials.
Verifiable Presentations (VPs)
A Verifiable Presentation is how a holder shares credentials. It wraps one or more credentials and is signed by the holder, which proves two things at once: the credentials are genuine (their issuer signatures still verify) and the person presenting them is the person they were issued to (the holder matches credentialSubject.id). A verifier can add a challenge and domain so a presentation can't be replayed elsewhere.
LearnCard also uses a presentation with no credentials in it — a DID-Auth presentation — as a login proof: signing it shows you control the DID.
Last updated
Was this helpful?