Community made LTO Network wallet application for Ledger devices.
-
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
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.
First, you must have Docker and Python 2 or 3 installed.
- Docker installation instructions: https://docs.docker.com/engine/install/
- Python installation instructions: https://www.python.org/downloads/
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.
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.
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'
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.
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.
There are currently two web interfaces available to interact with this Ledger application:
- Recommended: https://github.com/iicc1/lto-network-ledger-wallet-ui - Hosted frontend
- Deprecated: https://github.com/iicc1/lto-ledger-vue - Hosted frontend
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