Before building on Celo, you need to set up a development environment to make sure you have the proper tools to build an application. This setup includes a combination of general development tools, Celo specific tools, and mobile development tools.
Web2 Prerequisites
Xcode
Xcode is Apple’s integrated development environment for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS. While Xcode falls under the Celo Prerequisites, Xcode takes a long time to download, which is why it is first on this list. It’s best to start this download first, or even start downloading it before going to bed (depending on your internet connection).Node, NPM and NVM
Node
Node is a JavaScript runtime that allows you to execute JS code outside a web browser. It is an open-source server environment and runs on various platforms.NPM
npm stands for Node Package Manager and is the world’s largest software registry. npm is what you’ll use for installing published JS packages. npm comes bundled with Node, so you won’t need to install it separately.
NVM
nvm stands for Node Version Manager. Different projects often require different versions of Node, and nvm makes it easy to switch between those versions. This is recommended if you plan to develop a lot of JS-based applications and npm also recommends nvm. For Windows users, there are nodist and nvm-windows.
Install Node and npm via nvm
nvm install <version>.
You can switch node versions using
Homebrew
Homebrew is a way of managing packages on macOS. Install HomebrewYarn
yarn is a package manager similar to npm. For the most part, they do the same job and projects will let you know in the README or package.json which package manager they recommend using. Usually, you can use either or, but you should not use both in the same project. Running the Celo Development Blockchain requires yarn, so you can install it now.
Install yarn
Option 1: Since you already havenpm installed, you can use it to install yarn
The
-g is short for --global. This flag means you are installing this package on your system and it will be accessible from the cli no matter what project you are in.yarn with Homebrew
Expo
Expo is a framework and a platform for universal React applications. It lets you build mobile applications for both iOS and Android while using the same JavaScript/TypeScript codebase. This means that you don’t need to be a “mobile developer” to build mobile apps!Install Expo
Since you already setupnpm, you can now install the expo-cli package.
Docker
Docker is an application focused on build and deployment tools. It allows developers to build and share containerized apps. Rather than making the developer manually install a bunch of packages, a dev can just download a Docker image and start it and all the application installation and setup will be taken care of for them.Install Docker
You might need to install Docker Desktop for your OS. Once you’ve done that, you can accessdocker via your cli.
Celo Prerequisites
Local Development Blockchain
See Local Development Chain w/ Protocol Contracts for how to get started with developing on a local test environment.Celo CLI
The Celo CLI is a command-line tool for interacting with the Celo Protocol smart contracts. Some of the things you can do with it include looking at accounts, checking balances, and signing transactions. Install Celo CLIInstallation can take over a minute, so be patient depending on your internet connection.
iOS
Xcode
Xcode allows you to build and deploy the Celo Wallet. If you do not have an iOS device, Xcode can emulate one. To install this, you need an Apple Developer account (free), but you don’t need to be part of the Apple Developer Program (costs money) to download Xcode. Install Xcode Download Xcode from the Apple Developer website. It is massive (10.6 GB), so we will start this first so it can be downloaded while we do everything else. Once this is done downloading, install it. Cocopods, Bundler Navigate to the iOS directory of the mobile package (/celo-monorepo/packages/mobile/ios) and run the following to install cocoapods and bundler.gem command, you may need to download Ruby first.
Android
Java
Java allows you to build and deploy the mobile app to Android devices. Install Java Install by running the following:Android Dev Tools
Install the Android SDK and platform-toolsThese paths may differ on your machine. You can find the path to the SDK and NDK via the Android Studio menu.

