Hive Application for the Ledger Nano S/X Hardware Wallet

in #hive-1395315 months ago (edited)

Hive Application for the Ledger Nano S/X Hardware Wallet

image credit @thepeakstudio


Hive wallet application framework for Ledger Nano S/X

When installed on a Ledger Nano S/X device, this application will deserialize transactions and display them on the hardware wallet for secure validation by the user. If the user accepts the transaction, this application will then sign the transaction with the key specified by the user.

There is a pre-compiled binary available in the bin/ folder and attached to each public Github release. However, you may optionally choose to compile the Hive Ledger Nano S/X application manually with help of the run.sh script provided in the repository. Usage instructions and examples are below..

Latest Stable Release

https://github.com/netuoso/ledger-app-hive/releases/tag/v1.0.0

Building the Development Version

  • Clone this repository
    • git clone https://github.com/netuoso/ledger-app-hive
  • Install Docker if not already installed
    • ./run.sh install_docker
  • Pull the latest ledger-app-hive docker image
    • ./run.sh update
  • Start the Docker container
    • ./run.sh start
  • Build the ledger-app-hive application
    • ./run.sh build VERSION # replace VERSION with 1.4,1.5,1.6 based on your Ledger Nano S firmware

Loading the Development App on a Ledger Nano S

  • you must use Python 3.7 for loading
  • Connect the Ledger Nano S to your computer
  • Install the Ledger python module
    • pip install ledgerblue
  • Load the application onto the Ledger Nano S
    • ./run.sh load VERSION # replace VERSION with 1.4,1.5,1.6 based on your Ledger Nano S firmware

Testing the Application

  • Navigate to the test directory
    • cd test
  • Run the getPublicKey.py script python3 required
    • python getPublicKey.py
  • Run the signTransaction.py script python2.7 required
    • python signTransaction.py

Example Testing Output

  • getPublicKey:
Public key compressed 03d3ead6a886a5896dd05f546704761228c14d6b8d306fa7b0945f75df678b6193
Calculated from public key: Address STM8SZg3gBcuAEkz9xGKVMnwJHWESHcXFYWDbRcSBCz322dH6jPwy
Received from ledger: Address STM8SZg3gBcuAEkz9xGKVMnwJHWESHcXFYWDbRcSBCz322dH6jPwy
  • signTransaction:
HID => d40400007205800000308000000d8000000080000000800000000420000000000000000000000000000000000000000000000000000000000000000004021b88040485342c6304048164b85e040101042302086e65747479626f74076e6574756f736f010000000000000003535445454d000000040100
HID <= 1f636611993e469a3ad201fbe40df36e8c2be55378a3ca338654f3844d80ce2d6d32a27448c4e5d5e63707f1b9164b42e8cf29f052ae72bd12609182c9d8c88c389000
1f636611993e469a3ad201fbe40df36e8c2be55378a3ca338654f3844d80ce2d6d32a27448c4e5d5e63707f1b9164b42e8cf29f052ae72bd12609182c9d8c88c38

Technical Application Spec

Contributing

If you are interested in contributing the to ledger-app-hive repository, you will need a Github account. Ensure that you have compiled the application, have it installed on your Ledger Nano S/X, and/or throughly read this README and visited the relevant links before filing an issue.

Bug Reports

If you encounter an issue while using the ledger-app-hive application on a Ledger Nano S/X Device, visit the issues pages and leave a detailed issue with all necessary information to assist with debugging.


Notes

  • This application is in its initial release (v1.0.0)
  • There may be bugs that I have not encountered
  • If the Ledger Nano Device ever locks up, just unplug and restart it
  • If you encounter bugs/issues file them on the Github repository
  • Try and break the application and report bugs for the benefit of everyone
  • Contact @netuoso on Hive, on the HiveDevs Discord, or on Twitter (@netuoso)
  • Thanks to @thepeakstudio and @doze for their contribution of the Hive + Ledger image assets used on this page

Vote @netuoso For Hive Witness


Links

image credit @doze

Sort:  

Got it installed on my spare Ledger Nano S:

  • had to modify run.sh file to use python3 instead of python
  • had to disconnect / reconnect the device for the ledgerblue to detect it
  • had to modify run.sh to use the correct targetId as I updated to the latest firmware

C6009773-C421-4061-91BE-DAC4BAB46E71.JPG

This is awesome! I am improving the run.sh script now to assist with building and loading for any firmware version without editing the scripts.

lol nice tell @techcoderx his old proposal to get steem on ledger is done

Hey nice seeing hive logo on the ledger

but seems like waaaay too much work, let me know when i can just install the official ledger hive app, or have an eos styek solution, and i can have hive in scatter

if u could get hive on scatter like my proposal, and work with https://alcor.exchange we can have hive DEX, just like newdex, and we can make buy and sell orders, no deposits and withdraws, all from our ledgers to confirm transactions . I do it with EOS and its really fun to make trades all using a hardware wallet , feels hi tech

I cant wait until we actually can use hive keychain with the ledger the way I use scatter with the ledger and newdex. Its like you press a little magical usb key and send crypto transactions. Also, we REALLy need a hive engine mobile wallet

I already knew it

Fixed good catch

nice, nice, almost $1 for a quick photoshop! One dollar in upvotes is so special... it means so much to MOST users who dont get ANy dollars for their posts

those whales with $1 upvotes never realize how valuable they are until they hit the right new users who tell their friends who end up buying $1 million hivepower .... its like we need a way to actually know whose new, without kyc, and thats difficult. We just need to get around the stigma steem and any fork including hive has on it.... people see us as nerds with no social skills and its true... we should be hiring celebrities to be our front end men and women..

For this quick and perfect photoshop it takes years of practice dont underestimate any design which looks easy .. i have been doing these for years now ...

So true. This fable summarises it all.

A giant ship engine failed. The ship’s owners tried one expert after another, but none of them could figure but how to fix the engine.

Then they brought in an old man who had been fixing ships since he was a young. He carried a large bag of tools with him, and when he arrived, he immediately went to work. He inspected the engine very carefully, top to bottom.

Two of the ship’s owners were there, watching this man, hoping he would know what to do. After looking things over, the old man reached into his bag and pulled out a small hammer. He gently tapped something. Instantly, the engine lurched into life. He carefully put his hammer away. The engine was fixed!

A week later, the owners received a bill from the old man for ten thousand dollars.

“What?!” the owners exclaimed. “He hardly did anything!”

So they wrote the old man a note saying, “Please send us an itemized bill.

The man sent a bill that read:

Tapping with a hammer………………….. $ 2.00

Knowing where to tap…………………….. $ 9,998.00

Effort is important, but knowing where to make an effort makes all the difference!

source: https://www.linkedin.com/pulse/ship-repair-man-story-why-experts-get-paid-more-faiz-noor

Then why didn't you do it yourself? lol

WOOOOEEEEE YEEEHAW that looks fancy!

404347177-Li_27l_Bureaucrat.jpg

wow looks official , so official, heres a boyscout badge (Honestly hive should work with Boy Scouts of America and make NFT badges )

SteemitHive1.gif

Great to have a ledger nano person on the team

Cool, hope it gets approved, I also celebrate having a proper Wallet section on hive.io for the first time. This information was always lacking on steem.com which was a joke for investors.

I use ledger nano s, Not sure I'd want to bust it out to transfer 0.001 Hive, but for owner or master permissions or enabling authority, it would be awesome. Looking forward to more development.

Nice! I’ve been excited for this.. need to get me a nano to try it out.

lol nah , i have a nano and i dont wanna try it out, wait till its officially on the ledger store .... i mean hey just like getting EOS on ledger, its a neat trick but just for show. ur better off using desktop for hive, and maybe one day when we have better mobile support we will have at least 5 mobile wallet apps for hive.

u gotta use hive fAST on a mobile phone , with mobile apps! we need mobile apps that allow anyoine to hold hive in a lite wallet maybe no posting or voting just HIVE and HBD transfers, its imperative we have this, lite wallets..... it was leaked to me back befroe the fork so no idea what the deal is now but yeah ask around....im not supposed to talk about it ....

You are very strange.

I am so glad to get this major release out in the public view. It has been a lot of secrecy in closed source but now the work is there for the world to see and use.

Now I have to keep working with Ledger to get this app published on Ledger Live.

Cool. Though, looks rather technically-complex for those of us less inclined towards such things...

Any idea when the Hive app may be available through the official Ledger Live application?

Wtf did steem never do anything like this? I won’t be using it cause I want to use my stake to vote, but this is great!

Hive is weird because of the account and key setup. With this, you could change your owner key to one that is on the ledger so you never have to expose it on a computer.

However, you may want to use your posting key a lot so that key could be a bit less secure and stored on your computer or mobile phone.

A lot of different ways to use the ledger but that creativity will be left up to app developers and users.

With this, you could change your owner key to one that is on the ledger so you never have to expose it on a computer.

Brilliant!

Insert clap.gif

Edit:

we really are on a starship and netuoso and others are like in engineering working on the Isometric chips and holomatrix converters and dont forget the EPS relays

wow lots of news about star trek and bitcoin
image.png

If my nanos craps out, can I go to another with my seed phrase and recover the coins?

Yes. If you backup your seed phrase (BACK UP YOUR SEED PHRASE!) you can always initialize a new Ledger Nano S with the same keys

@netuoso in testing you say to use Python 2.7, is that correct?

I just pushed an update to the repo that changes the getPublicKey test file to using py3.

I'm improving the tests right now since there are a lot of people wanting to get active now. Should have some more commits today

To test the signing, signTransaction, you currently need to use py2

Thanks for the reply, I was wondering if it was a typo. I guess it is time to dust off my Ledger Nano S and put it to use.

Awesome! I have been on the fence about picking up a hardware wallet. Now it’s time to go shopping for a Ledger Nano! Can’t wait to try this out.

i like your golden honey comb logo, but it should glisten and animate

Thanks for the credit and congrats for your awesome work!

Yo! Freakin' sweet! Thank you for the awesome job. 😀

Making Hive more and more legit every day! Great work!

Fucking hell, great work Netuoso.

Awesome how you got this done, when even STEEM didn't have this shit doen for 4 years.

You the man.

Honestly only made possible by the DHF.

@techcoderx was close to this , didnt u see his steem proposal???? I guess not everyone checks the SPS ....

A proposal to do something isn't the same as doing it. No offense to techcoder, but this wasn't just some overnight programming project.

Techcoder could have done it, sure..

However Netuoso is the one that got it done. Mad respect for that.

Also who the fuck checks steem proposals anymore Ackza?

That is really incredible wonderful work you did on that amazing :)

why do u user her image? selena gomez? or is that her?

u want a boyfriend? any good ones left?

frogs? alex jones?

I've got a ledger from 2017. But I don't dare to use it anymore, cause it's a technical device and you know what happens from time to time to them: they get broke. Have anyone ever experienced such a thing with coins on the chip? How to solvebit? I am very worried about this and therefore I don't use it anymore.

Huge!
We need a user-friendly version of this so it can get mass adoption.

good project friend
thank you for your efforts friend

Brilliant stuff man....Great work :)

Looks like there should be an increase of Ledger purchases in the near future from the Hive community lol

Nice!
Will give it a try on my spare Ledger

Very cool.
It would be awesome to store HP on the Ledger too.
Resteemed :-)

Nice news! 💪

Cool job!
i need that one now!

Top stuff! I'm a user of both the nano s and x. I had wondered how useful it would be to have hive on nano due to the constant use of keys. But what you mentioned makes a lot of sense, owner on nano to never expose the top key.

Amazing ! Who would have thought this possible !?

Thank you 🙏 @netuoso for your work.

Sincerely,

@vlemon

Thanks for sharing

Super!
!BEER for you!

Amazing work. Can't wait to use Hive on my Ledger. 🙏

This is great! I shall look forward to seeing Hive on other hardware wallets especially Trezor and Ellipal. Well done!

Brilliant! It's time to buy a Nano X as my Nano S can only store 3 wallets max.
Looking forward to try it when it gets approved in Ledger, as I'm a Github noob.