Overview of Celo tools and the value they provide to developers.
Consider using Dependabot to help keep project dependencies up to date. The following developer tools are being actively developed and keeping your dependencies up-to-date will help your projects stay functional and secure.
ContractKit is a library to help developers and validators to interact with the Celo blockchain and is well suited to developers looking for an easy way to integrate Celo Smart Contracts within their applications.
Contractkit includes common functionality to make it easier to get started building
What you can do?
ContractKit supports the following functionality:
- Connect to a node
- Access Web3 object to interact with node's JSON RPC API
- Send Transaction with Celo's extra fields: (feeCurrency, gatewayFeeRecipient, and gatewayFee)
- Simple interface to interact with CELO and cUSD
- Simple interface to interact with Celo Core contracts
- Local sign transactions
- Query on-chain identifier for a phone number
Celo Ethers.js Wrapper
use-contractkit is Web3Modal-like experience that injects ContractKit into your web-based application. Supports a variety of different wallets, including but not limited to Valora, Ledger, Metamask (Celo compatible fork) and any WalletConnect compatible wallets
The Command-Line Interface allows users to interact with the Celo Protocol smart contracts.
WalletConnect is a standard across EVM compatible blockchains to connect wallets to dapps. It allows developers to build connections between wallets and dapps on the same desktop or mobile device, or between desktop dapps and mobile wallets.
While DAppKit is functional, it is no longer being actively maintained in favor of WalletConnect. If WalletConnect does not work for your use case, you can use deep links directly. You can read more about how Valora handles this here.
DAppKit is a lightweight set of functions that allow mobile dApps to work with the Celo Wallet to sign transactions and access the user's account. This allows for a better user experience: DApps can focus on a great native experience without having to worry about key management. It also provides a simpler development experience, as no state or connection management is necessary.
DAppKit supports the following functionality:
- Request permission to access account information and phone number from the Celo Wallet
- Request permission to sign the transaction(s) from the Celo Wallet
- Look up phone numbers using the Identity Protocol to find contacts using Celo.
DAppKit is currently built with React Native in mind, though the excellent Expo framework is still highly recommended for developers building mobile and web dApps on Celo. Expo offers awesome features like incredibly easy setup, hot-reloading, and more. Currently, most of our tutorials and examples involve Expo, though we are working on creating additional documentation for other app frameworks. While DAppKit was designed for mobile apps in particular, since version 1.1.0-beta.1 it offers beta support for web dApps running in the browser of a mobile device. More details about this are included in the Usage section below.
The production Celo network, Mainnet was previously known as the Release Candidate 1 network. Deployed by the Celo community starting 4/22/20, the network is currently working towards enabling the Celo stability mechanism. Much of the activity is being driven by the validator organizations that are featured on the leaderboard of The Great Celo Stake Off.
- Mainnet Validator Explorer - to view the current status of Validator elections
- Mainnet Network Status - to check the current availability of the network
- Mainnet Network Block Explorer - explore the history of the blockchain and view transaction details
The Alfajores Testnet is a Celo test network for developers building on the Celo platform. You can use it to try out the Celo Wallet or the Celo CLI (by sending transfers to yourself or other users of the testnet). You can also assist in running the network by operating a full node on your machine (or on a cloud or hosting provider).
- 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 Network Status - to check the current availability of the testnet
- Alfajores Testnet Block Explorer - explore the history of the blockchain and view transaction details
The Baklava Testnet is focused on building operational experience and best practices for node operators.
It is designed for validators and testing protocol changes. You will most likely not develop on the Baklava testnet. If you have an idea for a project that uses more protocol features in terms of handling the community fund or uniquely handling epoch rewards, like block rewards or staking rewards, it might be useful to develop on Baklava.
- Baklava Faucet Request Form - to request faucetted funds to become a Validator on the Baklava network.
- Baklava Network Status - to check the current availability of the testnet
- Baklava Network Block Explorer - explore the history of the blockchain and view transaction details
Hosted Node Service (Forno)
Forno is a cLabs hosted node service for interacting with the Celo network. This allows you to connect to the Celo Blockchain without having to run your own node.
Forno has HTTP and WebSocket endpoints that you can use to query current Celo data or post transactions that you would like to broadcast to the network. The service runs full nodes in non-archive mode, so you can query the current state of the blockchain, but cannot access the historic state.
Forno can be used as an HTTP Provider with ContractKit.
Figment datahub is a service similar to Forno. They have some additional features that allow you to track how people are using your application in terms of the type and number of requests coming through the endpoints. They have a free tier with the option to pay for the service to increase limits to support more popular projects.
Quicknode is an enterprise grade node service with a dashboard, metrics, security controls, customer support and no rate limits (pay-as-you-go).
Celo Wallets are tools that create accounts, manage keys, and help users transact on the Celo network.
The Celo Wallet is an easy way to send, receive, and save Celo assets. This section describes what is going on under the hood during various aspects of the wallet experience.
It's important to be careful when choosing a wallet because they manage your secret account keys. You should only use reputable wallets that are well maintained by organizations/people that you trust.
The Celo Native Wallets section shows some popular wallets that were built specifically for the Celo network. They often include features that more general wallets do not, like paying for fees with cUSD. The Celo Compatible Wallets section has wallets that can work with Celo but were built for other networks (like Ethereum) or through company partnerships (like Pesabase).
A smart contract is a deterministic program running on a blockchain. The terms of the agreement (the program) are written as lines of code. The code and the agreements contained therein exist across a distributed, decentralized blockchain network. The code controls the execution, and transactions are trackable and irreversible.
Celo includes both protocol contracts and application-specific contracts.
Smart contracts running on Celo are functionally (and often programatically) identitcal to smart contracts running on Ethereum.
Protocol contracts exist at the lowest layer and include functionality like the Celo election process and code that runs the Celo proof of stake system and on-chain governance.
Application contracts may or may not be built by cLabs. These contracts are custom-built by developers to support application functionality.
OpenZeppelin has a common token, governance, access control, utility contracts written in Solidity.
BlockScout is a cLabs hosted GUI block explorer and API endpoints. It allows you to look up information about the Celo blockchain including average block time, total transactions, and additional transaction details. You may also view details of your own custom smart contracts or existing DeFi contracts to view how value is moving between accounts and on-chain network events.
The API endpoints allow you programmatically fetch blockchain data such as account balances and transaction history, smart contract interactions and events (logs), and block and transaction-specific information.
- Oblivious decentralized identity service
- Lightweight identity layer that makes it easy to send cryptocurrency to a phone number
- Blockscout block explorers
- Stats.celo.org allows you to check network activity and health.