Celo Monorepo - Official repository for core projects comprising the Celo platform
This repository contains the source code for the Celo core projects including the smart contracts, contractKit, and other packages. The source code for the Celo Blockchain which operates a node on the Celo Network is kept in a separate repo here.
Celo, pronounced /ˈtselo/, means ‘purpose’ in Esperanto. In a similar spirit, we are aiming to create a new platform to connect people globally and bring financial stability to those who need it most. We believe blockchain technology is one of the most exciting innovations in recent history and as a community we look to push the boundaries of what is possible with it today. More importantly, we are driven by purpose -- to solve real-world problems such as lack of access to sound currency, or friction for cash-transfer programs aimed to alleviate poverty. Our mission is to build a monetary system that creates the conditions for prosperity for all.
Celo is oriented around providing the simplest possible experience for end users, who may have no familiarity with cryptocurrencies, and may be using low cost devices with limited connectivity. To achieve this, the project takes a full-stack approach, where each layer of the stack is designed with the end user in mind whilst considering other stakeholders (e.g. operators of nodes in the network) involved in enabling the end user experience.
The Celo stack is structured into the following logical layers:
The Celo Blockchain and Celo Core Contracts together comprise the Celo Protocol
Celo Blockchain: An open cryptographic protocol that allows applications to make transactions with and run smart contracts in a secure and decentralized fashion. The Celo Blockchain has shared ancestry with Ethereum, and maintains full EVM compatibility for smart contracts. However it uses a Byzantine Fault Tolerant (BFT) consensus mechanism rather than Proof of Work, and has different block format, transaction format, client synchronization protocols, and gas payment and pricing mechanisms. The network’s native asset is Celo Gold, exposed via an ERC-20 interface.
Celo Core Contracts: A set of smart contracts running on the Celo Blockchain that comprise much of the logic of the platform features including ERC-20 stable currencies, identity attestations, Proof of Stake and governance. These smart contracts are upgradeable and managed by the decentralized governance process.
Topology of a Celo Network
Follow the instructions in SETUP.md to get a development environment set up.
See Developer's Guide for full details about the design of the Celo protocol and other information about running these projects.
See the issue backlog for a list of active or proposed tasks. Feel free to create new issues to report bugs and/or request features.
The repository has the following packages (sub projects):
Code owners for each package can be found in .github/CODEOWNERS.
Feel free to jump on the Celo 🚂🚋🚋🚋. Improvements and contributions are highly encouraged! 🙏👊
See the contributing guide for details on how to participate.
All communication and contributions to the Celo project are subject to the Celo Code of Conduct.
All packages are licensed under the terms of the Apache 2.0 License unless otherwise specified in the LICENSE file at package's root.