Skip to main content
This page is a historical reference for anyone who wants to understand Celo’s original Layer 1 blockchain, or who followed a link to a page about a mechanism that no longer exists. Celo ran as an independent L1 from April 2020 until March 2025, when it completed its migration to an Ethereum Layer 2 at block 31,056,500. Celo launched in 2020 as a mobile-first Layer 1 blockchain designed to advance global financial inclusion through smartphone-accessible crypto payments and phone number-based addressing. Built on proof-of-stake consensus with a commitment to carbon neutrality, the L1 featured fast, low-cost transactions and native stablecoins like cUSD that powered a growing DeFi ecosystem.

The L1 architecture

Celo L1 was a full-stack design. The celo-blockchain client, a fork of go-ethereum, replaced Proof-of-Work with a Byzantine Fault Tolerant (BFT) proof-of-stake consensus run by an elected set of validators. Most machines on the network ran as full nodes, serving light clients on user devices and forwarding their transactions in exchange for fees. The Celo Core Contracts, upgradeable through on-chain governance, implemented the platform’s features in smart contracts: stable currencies, identity attestations, validator elections and staking, and governance itself.

What changed in the migration

The table below summarizes the technical changes involved in transitioning from Celo’s Layer 1 to Layer 2:

Retired mechanisms

These L1 mechanisms were decommissioned before or during the L2 migration and no longer exist on Celo:
  • BFT consensus, validator proxies, and slashing — validators no longer produce blocks; a sequencer orders transactions, and the old validator node operations (proxies, consensus key ceremonies, downtime slashing) ended with the L1.
  • On-chain randomness — the Random contract was removed; contracts use the PREVRANDAO opcode instead. See Deactivated Random Contract.
  • Granda Mento — the mechanism for exchanging large amounts of CELO for stable tokens through approved exchange proposals (CIP 38) was decommissioned.
  • The on-chain stability algorithm (CP-DOTO) and stability fees — the constant-product mechanism that minted and burned stable assets against the reserve became Mento, which now operates as its own protocol; the demurrage-style stability fee on stable-token balances was disabled and removed from the protocol.
  • Komenci and meta-transaction wallets — the fee-less onboarding flow used by the original Celo Wallet was discontinued.
  • The celo-blockchain client — the L1 client (docker image us.gcr.io/celo-org/geth) stopped syncing new blocks at the migration. To serve pre-migration state, run a Historical RPC Service.

Resources

  • Our History - the timeline of Celo’s evolution from L1 to L2
  • Staking - locked CELO, validator elections, and voting, which continue on L2
  • Node operators - running Celo L2 nodes today