Skip to content

Latest commit

 

History

History
151 lines (101 loc) · 4.98 KB

README.md

File metadata and controls

151 lines (101 loc) · 4.98 KB

Ledger BOLOS application for LTO Network

Docker Cloud Build Status Docker Pulls

Community made LTO Network wallet application for Ledger devices.


Introduction

  • Ledger device wallet application for the LTO Network blockchain developed by a community member.

  • It is compliant with LTO Network cryptographic specifications.

  • There is a ready to use web app interface here.

  • It can be tested using the Python script located at python/ledger-lto.py.

  • Special thanks to the Ledger team, Waves community and, LTO Network team.

  • LTO Network Ledger APP User Guide


Building

To build this application you need to create a Ledger development environment. More information can be found here.

Alternatively, you can use my Docker image to compile the App with just one command.


Prerequisites

First, you must have Docker and Python 2 or 3 installed.

Docker is used to compile the App from source and Python to load it into your device.

Next, download or clone this repository into a folder. If you have downloaded it, remember to extract it.


Compiling

Ledger Nano S

Open a terminal inside the folder where the repository was downloaded and enter the following command:

Linux/Mac/Windows (PowerShell)

docker run -v ${PWD}:/code ignacioxyz/lto-ledger-devenv 'make'

Windows (CMD)

docker run -v %cd%:/code ignacioxyz/lto-ledger-devenv 'make'

This command will download my Docker image from DockerHub and build the Ledger App, creating several folders within the current folder.


Ledger Nano X

The Docker image uploaded to my Dockerhub uses the Ledger Nano S SDK. To compile this APP for a Ledger Nano X device, you need to build the Docker Image with the Nano X SDK.

To do this, edit the SDK download step in the Dockerfike

RUN echo "Download Ledger Nano X SDK" && \
  git clone --branch 1.2.4-5.1 https://github.com/LedgerHQ/nanox-secure-sdk.git ${BOLOS_SDK}

Build the Ledger image locally

docker build -t sdknanox .

And build the Ledger Nano X APP

docker run -v ${PWD}:/code sdknanox:latest 'make TARGET_NAME=TARGET_NANOX'

Uploading

Nano S

Now we will use Python to upload the App to your device.

You need to have ledgerblue depencency installed:

Python

pip install ledgerblue

Python3

pip3 install ledgerblue

And finally, load the App:

Python

python -m ledgerblue.loadApp --appFlags 0x240 --path "44'/353'" --curve secp256k1 --curve ed25519 --tlv --targetId 0x31100004 --delete --fileName bin/app.hex --appName "LTO Network" --appVersion 2.2.0 --dataSize 64 --icon 010000000000ffffffffffffffffffffffbffd7ffedffbb7ed67e6cff39ff97ffe7ffeffffffffffff

Python3

python3 -m ledgerblue.loadApp --appFlags 0x240 --path "44'/353'" --curve secp256k1 --curve ed25519 --tlv --targetId 0x31100004 --delete --fileName bin/app.hex --appName "LTO Network" --appVersion 2.2.0 --dataSize 64 --icon 010000000000ffffffffffffffffffffffbffd7ffedffbb7ed67e6cff39ff97ffe7ffeffffffffffff

After this, the installation process will start, asking for your permission on the Ledger screen.


Nano X

Unfortunately, at the time of writing, there is no way to load a non-official Ledger APP into a Ledger Nano X.

You can use a Ledger Nano X emulator called Speculos.


Web app

There are currently two web interfaces available to interact with this Ledger application:


CLI app

Once the Ledger app is loaded, you can try to communicate with it using the CLI app. You can download the precompiled binaries from the releases tag. Make sure you download the correct executable for your platform. Then execute the program and the app will guide you through the process.

You can also run the CLI app from source, it is just a Python script located at the python/ folder. Python 2.7 is required for this, the latest releases are found here here.

Install dependencies:

pip install ledgerblue
pip install colorama
pip install base58

Then enter the LTO Network app on your ledger and start the script:

python python/ledger-lto.py