Quickstart
Issue your first LearnCoin credential in under 10 minutes — testnet, free, no credit card.
By the end of this page you will have:
- A Developer-tier API key (free, testnet)
- A signed W3C VC 2.0 + Blockcerts v3 + Open Badges 3.0 credential anchored on Base Sepolia
- A public verification URL that anyone can open
1. Get a Developer API key
The Developer tier is free forever on Base Sepolia testnet. No credit card required.
Email [email protected] with one line describing what you're issuing. We reply within one business day with:
- A test API key (
lrn_test_...) - A sandbox tenant DID (
did:web:learncoin.me#tenant-...) - A link to this quickstart
While self-serve signup is rolling out, keys are provisioned manually — the exchange takes minutes, not days.
2. Call POST /v1/batches
curl -X POST https://api.learncoin.me/v1/batches \
-H "Authorization: Bearer $LEARNCOIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"credentials": [
{
"recipient": {
"id": "urn:uuid:4e0c7f2e-6b1a-4f5a-9c8e-8a1b2c3d4e5f",
"name": "Ada Lovelace"
},
"achievement": {
"name": "Verifiable Credentials 101",
"description": "Completed the introductory course on verifiable credential standards.",
"criteria": { "narrative": "Passed final assessment with >= 80%." }
},
"issuanceDate": "2026-04-23T12:00:00Z"
}
]
}'Response — 202 Accepted:
{
"batchId": "bat_01HXYZ...",
"status": "pending",
"credentialsCount": 1
}The call returns immediately. Signing and anchoring happen asynchronously — typically complete within 60 seconds.
3. Poll for the batch status (or use a webhook)
curl https://api.learncoin.me/v1/batches/bat_01HXYZ... \
-H "Authorization: Bearer $LEARNCOIN_API_KEY"When status: "anchored", the batch's Merkle root has landed on Base Sepolia and every credential in the batch now has a public verification URL.
For production flows, register a webhook instead of polling — see Webhooks.
4. Share the verification URL
Each credential gets a URL in this shape:
https://learncoin.me/c/{credentialId}The page runs the blockcerts-verifier Web Component client-side. Verification happens in the viewer's browser — no LearnCoin server is contacted. Five checks run: schema, signature, issuer, revocation, erasure.
5. Verify programmatically (optional)
The signed credential is a self-contained JSON-LD document. Any Blockcerts-compatible tool can verify it offline:
import { Certificate } from "@blockcerts/cert-verifier-js";
const cert = new Certificate(signedCredentialJsonLd);
const result = await cert.verify();
// result.status === "success" when all five checks passWhat's next
- Core concepts — batches, anchors, DIDs, verification chain
- Integration guides — webhooks, GDPR erasure, embedding verification
- API reference — every endpoint, request/response shapes, error codes
- Production checklist — going from testnet to Base mainnet
If you hit anything unexpected: [email protected]. Include your batch ID and we'll reply within a business day.