Celo Wallet Guide: A Step-By-Step cGLD Ledger Tutorial

Francesco Cremona
May 5 · 5 min read
Image for post
Image for post

Latest update: May 2020

In this guide, we’ll be going over the steps required to store your Celo tokens in the most secure way possible. We will do this by using Celo CLI and a Ledger Nano S Hardware Wallet.

Prerequisites for this guide:

We’ll be going through these steps:

  1. Setup of Ledger Live and Nano S
  2. Celo App Installation
  3. Installing and Configuring CeloCLI on your system
  4. Generating Celo addresses
  5. Sending transactions on the network
  6. CeloCLI command cheat sheet

Setup of Ledger Live and Nano S

1. Visit Ledger.com: Download and install Ledger Live

2. Run through the relevant installation steps to install Ledger Live

3. Connect your Ledger device

4. Set up your Ledger device if you have not done so already. Make sure to backup your mnemonic phrase and PIN code.

5. On Ledger Live start-up, click the Right button of the Ledger device to allow Ledger Live to interact with it.

Image for post
Image for post

Celo App Installation

Image for post
Image for post

2. Set Ledger Live to Developer mode to gain access to the Celo Ledger App. This can be found in Settings -> Experimental features -> Developer Mode.

Image for post
Image for post

3. Search and Install the Celo App on the Manager dashboard.

Image for post
Image for post

4. Once the Celo App is installed, you should see it on your Ledger’s screen, as below.

Image for post
Image for post

5. Click both Ledger buttons to enter the Celo App.

As of 4th May 2020, the App is pending Ledger’s official review, so you’ll have to click both buttons twice to get past a Pending Ledger Review screen.

You should see the following screen:

Image for post
Image for post

6. The Celo network uses smart contracts for the network’s protocol and governance, therefore we must enable Contract data on the App.

  • Once on the Application is ready screen, click the Right button until you see Contract data NOT Allowed .
  • Press both Ledger buttons to toggle this setting to Contract data Allowed .
Image for post
Image for post

Installing and Configuring CeloCLI on your system

For Windows users:

1. Download and install NodeJS v10.20.1 from nodejs.org: Previous Releases.

2. Open a command-line interface to be able to run commands.

3. Confirm node and npm were installed correctly.

npm -v
node -v

4. CeloCLI is then installed globally on the system using the npm install command:

npm install -g @celo/celocli

5. Confirm celocli was installed correctly by checking its version.

celocli version

For Ubuntu/Mac:

1. We’ll use NVM to set NodeJS 10 to default. Installing NVM is done as follows:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

2. Once NVM has been installed, load NVM’s PATH into the current environment, and then install the latest 10.X NodeJS version, setting it as the default version to be used, as follows:

source ~/.bashrc
nvm install 10 && nvm use 10

3. Confirm node and npm were installed correctly.

npm -v
node -v

4. CeloCLI is then installed globally on the system using the npm install command:

npm install -g @celo/celocli

5. Confirm celocli was installed correctly by checking its version.

celocli version

Configuring CeloCLI with the network

celocli config:set --node https://rc1-forno.celo-testnet.org/

2. Check that you have successfully connected to the node, by confirming the follow command returns true . This command will error out or output false if there is an issue with the node or connection.

celocli node:synced
Image for post
Image for post
Example query: Node is synced and queriable

Generating Celo addresses

Generate the first address of the ledger by running the following command:

celocli account:list --useLedger --ledgerAddresses 1

This outputs both the account that is present on the Celo node, and also the Ledger’s address. Only the addresses listed under the Ledger addresses category must be taken into consideration.

Image for post
Image for post
Example query: Outputting 1 addresses generated from the Ledger

Changing the ledgerAddresses parameter of the command will produce further addresses:

Image for post
Image for post
Example query: Outputting 5 addresses generated from the Ledger

Sending transactions on the network

celocli transfer:gold --from=<your-address> --to=<to-address> --value=<amount> --useLedger --ledgerAddresses Xcelocli transfer:dollars --from=<your-address> --to=<to-address> --value=<amount> --useLedger --ledgerAddresses X

For the Ledger to sign a transaction, you must accept and confirm each one on the Ledger Nano by navigation right from the Review transaction screen to the Accept and send screen, and pressing both buttons.

Image for post
Image for post

Example transaction:

Image for post
Image for post
Example transaction: Transferring cGLD between addresses using the Ledger

CeloCLI command cheat sheet

I hope you find this step-by-step guide useful! I would be happy to hear your thoughts and answer any questions on Twitter https://twitter.com/cremonafran.

Stay tuned to Simply VC for more Celo guides and documentation:

Find out more about Celo:

Simply VC

A team of security, cryptocurrency & business experts…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store