Live on Base with Ewance

See the certificates

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 pass

What's next

If you hit anything unexpected: [email protected]. Include your batch ID and we'll reply within a business day.

On this page