Welcome to the technical documentation site for the Celo project!
In this documentation you’ll find information on:
An overview of the high-level architecture of Celo
How to make technical contributions to the project and community
Celo’s purpose is to empower anyone with a smartphone anywhere in the world to have access to financial services, send money to phone numbers, and pay merchants.
The project aims to be a decentralized platform that is not controlled by any single entity, but instead developed, upgraded and operated by a broad community of individuals, organizations and partners.
Uniquely, 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, comprising of both a protocol and applications that use that protocol.
The Celo protocol is an open, distributed cryptographic protocol that allows applications to make transactions with and perform computation on a family of cryptocurrencies, including ones pegged to ‘fiat’ currencies like the US Dollar. The Celo Wallet app, the first of an ecosystem of applications, allows end users to manage accounts and make payments securely and simply by taking advantage of the innovations in the Celo protocol.
Stable Value Currencies
Celo includes native support for multiple ERC20-like stable currencies pegged to ‘fiat’ currencies like the US dollar, to facilitate the use of Celo as a means of payment.
Accounts Linked to Phone Numbers
Celo maintains a secure decentralized mapping of phone numbers that allow wallet users to send and receive payments with their existing contacts simply and with confidence that the payment will reach the intended recipient.
Transaction Fees in Any Currency
Users can pay transaction fees in stable currencies, so that they do not need to manage balances of different currencies.
Immediate Syncing Even on Slow Connections
Extremely fast, secure synchronization between mobile devices and the Celo network means that even wallet users with high latency, low bandwidth, or high cost data tariffs can use Celo. Celo removes the need to check every header before a received header can be trusted. Performance will be further improved with BLS signature aggregation and succinct zero-knowledge proofs, via zk-SNARKs.
Celo uses a proof-of-stake consensus algorithm. In comparison to Proof of Work systems like Bitcoin and Ethereum, this eliminates the negative environmental impact and means that users can make transactions that are cheaper, faster, and where the outcome cannot be changed once complete.
Full Node Incentives
The Celo protocol offers incentives for running full nodes to service the light clients that run on each mobile device. Unlike other proof-of-stake systems, users can still earn cryptocurrency in exchange for providing compute resources without having to stake funds.
Since great user experiences need constant iteration, Celo supports rapid upgrades and protocol changes via on-chain governance in which all cryptocurrency holders can participate.
Programmable (Full EVM Compatibility)
Celo includes a programmable smart contract platform that is compatible with the Ethereum Virtual Machine, which is already widely adopted, familiar to developers, and has strong tool support. This enables Celo to deliver rich user features and rapidly support a wide ecosystem of third-party applications and extensions.
Users have access to and fully control their funds and account keys, and don't need to depend on third parties to make payments.
The Celo project is at a prototype stage.
The code is entirely open source and available on GitHub. Versions of all the major components of both the protocol and wallet exist, but the platform as a whole is under active development and testing by the Celo community.
The Alfajores Testnet is the first of several networks designed for testing and for developers to experiment and learn more about Celo. You can set up an account, receive funds, and try out the Celo Wallet and Celo CLI. Get started here.
The Baklava Testnet is the second Celo test network after Alfajores. You can use it to participate in the The Great Celo Stake Off. Subject to these Terms and Conditions, eligible participants will have the opportunity to receive CELO at the Mainnet launch of the Celo Protocol. The Stake Off will operate in phases, with each phase focusing on a different part of the protocol or infrastructure to test.
The Celo community's work is focused on the path to a production Celo network that holds economic value. This means testing, running security audits, and building broader involvement around a longer-term roadmap. The project also continues to remain focused on user experience.
The team working on Celo anticipates working to improve and expand the range of APIs available for developers to use in creating extensions to Celo, whether as smart contracts or applications. Your input is very welcome in the form of use cases, suggestions, and bug reports.
Celo is a project with a mission of financial inclusion that consists entirely of open source code, is deployed as an open, decentralized runtime, and promotes open governance. Make it your project too. Please get involved!
Learn more about Celo:
Browse the code, raise an issue, or contribute a PR:
Try Celo out:
Read the Whitepapers:
Alfajores Testnet links:
Alfajores Testnet Faucet - get testnet tokens to experiment with
Celo Wallet for Alfajores - download the Android wallet app for the testnet from the Play Store
Alfajores Testnet Network Status - to check the current availability of the testnet
Alfajores Testnet Block Explorer - explore the history of the blockchain and view transaction details
Ask questions, find answers, and get in touch:
If you are viewing this document on GitHub, please visit the official hosted version of this content for a better experience. Additionally, Celo is in active development. If you encounter any issues or bugs or have suggestions for how Celo can improve, please post an issue or pull request here.