Live on Base with Ewance

See the certificates

Positioning

Why LearnCoin anchors on Base, not Bitcoin

Credly's Pearson lock-in and Blockcerts' Bitcoin origins both point somewhere LearnCoin deliberately didn't go. The credential-anchoring decision is an economics-and-ecosystem decision, not a cryptography one.

LearnCoin8 min read

MIT's 2017 Blockcerts pilot used Bitcoin. Nine years later, LearnCoin built on the same Blockcerts v3 specification but anchors on BaseEthereum L2 via the Optimism OP Stack. This post explains why, because the decision trips up roughly every technical reviewer who notices it.

The three axes that matter

Credential anchoring is a narrow use case with specific requirements. We're not running a DeFi protocol, issuing fungible tokens, or storing user funds. We need a chain that (a) has public, queryable transactions, (b) is economically sustainable at scale, (c) has a credible operator, and (d) settles to something most people already trust.

Bitcoin nails (a), (c), and (d). It fails hard on (b). A single MerkleProof2019 anchor transaction on Bitcoin costs more than the per-credential revenue for most of our customer base. At 10 sat/vByte and a 300-byte OP_RETURN, that's real money per batch — and we'd need to batch hundreds of credentials per anchor to amortize it. Bitcoin is not cost-competitive with Ethereum L2s for this workload.

Ethereum L1 is a better fit economically than Bitcoin, but still expensive. At 20 gwei gas, writing a 32-byte Merkle root costs around $2-4 per transaction during normal hours, which scales poorly if you want to offer "free test-mode credentials."

Why Base specifically

Within the Ethereum L2 family, the options in 2026 are Arbitrum, Optimism, Base, zkSync, Starknet, Polygon zkEVM, and a dozen smaller chains. We chose Base on four grounds:

First, settlement to Ethereum L1 via the OP Stack's withdrawal bridge means Base's security is Ethereum's security. A credential anchored on Base is verifiable as long as Ethereum exists — the trust substrate is L1.

Second, Coinbase's regulatory posture. Coinbase is a publicly listed US entity operating under NYDFS, SEC, and EU MiCA jurisdiction. Institutional buyers — universities, governments, large employers — are more comfortable integrating with an L2 run by a regulated US entity than with pseudonymous-operator chains. This is a sales argument, not a technical one, but it's real.

Third, ecosystem alignment. Farcaster runs on Base. Major stablecoin issuers run on Base. The emerging "SocialFi" and "ReFi" stacks are Base-first. LearnCoin credentials can cross-reference Farcaster profiles as issuer identity, settle payments in USDC natively, and integrate with Base-native identity rails as the ecosystem matures.

Fourth, the OP Stack is open source, and Superchain interoperability is real. Base is not a proprietary Coinbase product — it's a codebase that other chains (Zora, Mode, Redstone) also run. If Base ever became the wrong choice for any reason, porting LearnCoin's anchoring to another OP Stack chain is a configuration change, not a rewrite.

What we gave up by not picking Bitcoin

The Blockcerts community has a deep historical investment in Bitcoin. Cert-verifier-js, the native iOS and Android wallets, and the reference infrastructure all default to Bitcoin chain codes. Adding Base support meant forking lds-merkle-proof-2019 and explorer-lookup to recognize blink:base:sepolia:<tx> and blink:base:mainnet:<tx> — work we contributed back upstream.

The upstream PRs for Base support are the only fork code LearnCoin actually consumes. We explicitly did not fork the Blockcerts verification logic, the cert-schema context, or any core cryptography. Verification against a LearnCoin credential runs the same code path a Bitcoin-anchored Blockcerts credential would run, minus the chain-code lookup.

Will we ever anchor on Bitcoin?

If a customer with genuine Bitcoin-specific requirements materializes — a sovereign-identity program, a central-bank research initiative, an Estonian e-Residency integration — LearnCoin's architecture supports multi-chain anchoring. The Merkle-root transaction is indifferent to chain choice; only the anchor format and the explorer-lookup chain code need to change. Adding Bitcoin back as an additional anchor target is a week of work, not a quarter.

The default, though, is Base. The economics don't work for Bitcoin at the volumes we're building toward, and the settlement path to Ethereum L1 gives us the trust substrate we actually want.

For related reading, see Open Badges 3.0 vs 2.0 — what changes for institutions on the credential format we anchor, and Per-verification billing is a trust violation on the economics of why verification must stay free.