Ledger Nano S hardware wallet peercoin application

As you all know real hardware keys with protected secure element is the only safe way to store anything private these days, that’s why I’ve worked hard to make peercoin application for Ledger hardware wallets.

This is a short guide on how to get your Ledger device working with Peercoin.

#Preparation:

  1. Install Ledger Manager chrome application:

https://chrome.google.com/webstore/detail/ledger-manager/beimhnaefocolcplfimocfiaiefpkgbf

  1. Update your ledger to latest firmware using Ledger Manager (application works for firmware 1.4.2+)

UPDATE As of 28th of May 2018, Ledger officially supports Peercoin as one of supported cryptocurrencies. You can install Peercoin application in the Ledger Manager after installing Bitcoin application and skip to Operation section.

  1. Install necessary python modules that work with Ledger, you can use pip:

pip3 install ledgerblue
or clone and process requisites by hand:
git clone GitHub - LedgerHQ/ledger-blue: Ledger Blue, a personal security device from Ledger (blockchain / bitcoin / ethereum / FIDO)

  1. If you want to build application yourself, install development kit following instructions here:
    GitHub - LedgerHQ/ledger-blue: Ledger Blue, a personal security device from Ledger (blockchain / bitcoin / ethereum / FIDO)

  2. Clone and build official repo: GitHub - LedgerHQ/app-bitcoin: Bitcoin wallet application for Ledger Blue and Nano S or just use this hex:
    app.hex (2.3 KB)
    (make sure sha256 of app.hex equals to 62e7f161469b987288d8bc88fb92a76c261e0f60a9700b7b418d3fb2939c9c22)

#Installation

To load the application you have to first install bitcoin app (1.2.5) from the ledger manager and then issue these commands in your favourite terminal. Importing my public developer key is optional, it will allow you to bypass “non genuine app” warning.

to import my public developer key to your ledger hardware

Boot your ledger into recovery mode (press and hold the right button before inserting the connected USB cable to power on the device. The right button is the one far away from the USB connector, closest to the swivel hole. The Ledger Nano S will enter recovery mode)

python3 -m ledgerblue.setupCustomCA --targetId 0x31100003 --name “backpacker69” --public 04300986d41d30de87eea1c33b8783f6ddb9c26df5278818a464b3fd2ba5026df16510628fb8ada3033fc605ebf409070b408fa49423c2b1f543fa542e098947a2

to transfer application to your ledger hardware

Boot your ledger normally and unlock it, make sure Ledger Manager is not running on your computer and then type:

python3 -m ledgerblue.loadApp --curve secp256k1 --tlv --targetId 0x31100003 --delete --fileName app.hex --appName “Peercoin” --appVersion 1.2.5 --dataSize 0x00000000 --icon 0100000000ffffff00ffffffffffffffff0fff0ffc0ff88ff80ff11ff21ffa7ffeffffffffffffffff --path “” --appFlags 0x50 --dep Bitcoin --signature 304502205ddf68949eb3856193be284bbd080d5f63582f009ab437ee5f65c8af96dfd588022100abba7ea6f6fcc466b1ef1a752238c3394f638f6e78f7503af26abd9cea075e1c

If you have not installed customCA certificate, you may have to remove --signature hex from the command, so it will be:

python3 -m ledgerblue.loadApp --curve secp256k1 --tlv --targetId 0x31100003 --delete --fileName app.hex --appName “Peercoin” --appVersion 1.2.5 --dataSize 0x00000000 --icon 0100000000ffffff00ffffffffffffffff0fff0ffc0ff88ff80ff11ff21ffa7ffeffffffffffffffff --path “” --appFlags 0x50 --dep Bitcoin

in case you need to delete application from ledger hardware:

Boot your ledger normally and unlock it, make sure Ledger Manager is not running on your computer and then type:

python3 -m ledgerblue.deleteApp --appName Peercoin --targetId 0x31100003

You will have to confirm these operations on actual device, pay attention to signatures.

Operation

Now you can use official Ledger Wallet chrome application:

https://chrome.google.com/webstore/detail/ledger-wallet-bitcoin/kkdpmhnladdopljabkgpacgpliggeeaf

Open Peercoin application on your ledger device and after short setup, this chrome application will display your PPC balance, addresses and other tools.

I have made cointoolkit work with Ledger wallet, you can access it here:

FAQ

Q: Why do I get error 6d00 when trying to install the application?
A: Shut down Ledger Manager on the computer and try again

Q: Why do I get error 6985 when trying to install the application or customCA?
A: Boot into recovery mode to install customCA, boot ledger normally to install application

Q: Why doesn’t Ledger include Peercoin in their Ledger Manager applications?
A: Not sure, but you can ask Ledger [support] (https://support.ledgerwallet.com/hc/en-us).

Donations are accepted: PAyzZ8vjZX8nU3gmyp3NFHuRo6jbDSMhEr

13 Likes

Will it blend mint?

Great work!

1 Like

not until we implement rfcs 2 and 3 out of https://github.com/peercoin/rfcs/blob/master/RFCs-by-status.md

1 Like

And 4 :slight_smile:

1 Like

@backpacker69 Confirmed working. :slight_smile:

2 Likes

We URGENTLY NEED a HARDWARE WALLET for our PEERCOINS with all the crazy hacking going on, thanks for ur hard works peercoin developers and community, im ALL INN with peercoin, peercoin is realy UNIQUE including the long run and SECURING our peercoin against theft is a Indispensable serious issue.

2 Likes

Hey, what can I do against the following error?

“Broken certificate chain - loading from user key
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/usr/local/lib/python2.7/dist-packages/ledgerblue/loadApp.py”, line 167, in
loader.createApp(args.appFlags, appLength, args.appName, icon, path, None, None, args.appVersion)
File “/usr/local/lib/python2.7/dist-packages/ledgerblue/hexLoader.py”, line 164, in createApp
self.exchange(self.cla, 0x00, 0x00, 0x00, data)
File “/usr/local/lib/python2.7/dist-packages/ledgerblue/hexLoader.py”, line 86, in exchange
return self.card.exchange(apdu)
File “/usr/local/lib/python2.7/dist-packages/ledgerblue/comm.py”, line 130, in exchange
raise CommException(“Invalid status %04x” % sw, sw, response)
ledgerblue.commException.CommException: Exception : Invalid status 6a84”

I’m getting this error when I’m trying to import the developer key or to transfer the application.
I don’t know if it’s important to know but I’m using Kali Linux 2017.1 on Virtual Box.

Thanks already for your help!

have you updated to the latest firmware? does ledger manager work for you in your virtual box?

Yes and No. I’ve updated my Nano s but Ledger Manager doesn’t recognise it. The USB settings of the VM should be fine. It recognises my Nano s.

i am not sure how you managed to update nano s without ledger manager? is ledger unlocked and in the main menu? does it have any apps installed? what does it say in about box about version numbers?

The firmware version is 1.3.1 MCU is 1.0. I’ve updated it with ledger manager on windows 10.
Yes it’s unlocked and in the main menu. The only installed apps are Bitcoin and Litecoin.

it looks like your virtual box does not really work with ledger yet, I have read that some extra trickery is required to get that working, unfortunately I am not sure what is needed, you should be able to get more help in official slack channel for ledger.

Alright. Thanks a lot for your help. I’ll ask in slack channel and let you know as soon as I know the solution of the problem.

They’ve told me I have to set udev rules with this command:
wget -q -O - https://www.ledgerwallet.com/support/add_udev_rules.sh | sudo bash

http://support.ledgerwallet.com/knowledge_base/topics/ledger-wallet-is-not-recognized-on-linux

Now the Ledger Manager is working but the Manager disconnects my Ledger as soon as I try to import the developer key or transfer the application and I’m still getting the same error.

you have to close ledger manager while using python scripts to load

1 Like

Problem solved. Thanks a lot for your help and creation of this peercoin application.

1 Like

A bit too complex for the average user…

No need to use it. Just stick with the standard software wallets: https://peercoin.net/wallet
I appreciate the efforts.
Thank you @backpacker69!

@backpacker69 are you aready working on the rfcs 2, 3 and 4 implementations? It would be great to mint on our nano s :slight_smile:

1 Like

@backpacker69 once ledgernanos PPC app supports mining, would the hardware need to be connected to do so?