Celo Wallet Guide: A Step-By-Step cGLD Ledger Tutorial
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:
- Knowledge using a command-line interface
- Windows/Mac/Ubuntu system
- Ledger Nano S Hardware Wallet https://shop.ledger.com/products/ledger-nano-s
We’ll be going through these steps:
Setup of Ledger Live and Nano S
Ledger Live is the desktop application used to interact with the Ledger Nano hardware attached to your device.
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.
Celo App Installation
1. Update your device’s firmware to the latest version. This is an IMPORTANT step, to ensure your device is using the most secure software compatible with the Celo App. Move to the next step once the update is complete.
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.
3. Search and Install the Celo App on the Manager dashboard.
4. Once the Celo App is installed, you should see it on your Ledger’s screen, as below.
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:
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 seeContract data NOT Allowed
. - Press both Ledger buttons to toggle this setting to
Contract data Allowed
.
Installing and Configuring CeloCLI on your system
CeloCLI, the tool used for interacting with the Celo blockchain, requires NodeJS 10.X installed.
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
1. CeloCLI is a tool which sends and receives data from Celo nodes to interact with the network and Celo Protocol. Therefore, assuming you are not already running a Celo node on your system, we should configure it to use a cLabs node.
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
Generating Celo addresses
Ledger Nano’s are able to generate 1000s of addresses, with each address having its own index.
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.
Changing the ledgerAddresses
parameter of the command will produce further addresses:
Sending transactions on the network
When creating a transfer transaction, you can specify any of the addresses generated by the Ledger, as long as it is included in the array of addresses referenced by the ledgerAddresses
parameter.
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.
Example transaction:
CeloCLI command cheat sheet
Check out our CeloCLI +Ledger cheat sheet for cGLD holders.
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:
- Website: https://simply-vc.com.mt
- Twitter: https://twitter.com/simply_vc
- Telegram: https://t.me/SimplyVC
Find out more about Celo:
- CeloCLI documentation: https://docs.celo.org/command-line-interface/introduction
- Celo Gold holder guide: https://docs.celo.org/celo-gold-holder-guide/quick-start
- Website: https://celo.org/
- Twitter: https://twitter.com/CeloHQ
- Telegram: https://t.me/celohq
- Developer documentation: https://celo.org/build
- Discord: https://discordapp.com/invite/6yWMkgM
- Reddit: https://reddit.com/r/CeloHQ