Nervos Ledger App: Status Update #1


April 7, 2020

Obsidian Systems has been hard at work bringing support for Nervos to the Ledger Nano S and Nano X and we would like to take this opportunity to update the community on our progress! You can find our original grant proposal on Nervos Talk.

Where is the code?

Adding support for hardware wallets requires more than just the application itself. It also involves teaching the client how to communicate with the device and providing wallet developers the tools they need to support Ledger devices. Our work thus far has touched on all of these points:

  • Ledger-App-Nervos: This repository contains the Ledger application and our automated tests
  • Our Fork of CKB-CLI: We’ve prepared substantial contributions to Nervos’ command line interface and added many changes to support Ledger devices
  • Our Fork of LedgerJS: This is the library used by wallet developers to communicate with Ledger devices. We’ve added support for Nervos in our fork

What’s the current status?

As of v0.1.0, the Ledger app, along with our fork of CKB-CLI, has all the functionality we described in our proposal:

  • The command line interface can find the connected hardware wallet
  • The client can provide a public key hash, lock arg, and lock hash from the device
  • Transfers can be confirmed on the device and signed
  • All DAO functions (deposit, prepare, withdraw) can be confirmed on the device and signed
  • All operations can be signed through LedgerJS

Can we use it yet?

Not quite! There are some additional steps remaining before Ledger support is widely available. We do not recommend storing mainnet CKB on the application at this time as this app is still considered under development and experimental until it is supported in the upstream CKB-CLI.

First, we’re working with Nervos to add hardware wallet support to CKB-CLI. Here’s the issue we’ve opened to coordinate our efforts.

We’re also working with Ledger to have the application available for download in Ledger Live. It will first be available in Developer Mode before eventually being added to their production App Manager. This submission process is underway, but a timeline is not yet available.

In the meantime, we encourage interested parties who are technically inclined to experiment with the current version on test networks and the devnet! In fact, you’ll find documentation in our app that walks you through all of the app’s features. We greatly value the community’s feedback and hope some of you will give it a try!

Acknowledgements

We’d like to thank Nervos for their grant to work on this application and the Nervos community for their enthusiasm surrounding this project!

If you have any questions or feature requests, we encourage you to email us at nervos@obsidian.systems!