/ledger-app-freeton

Free TON Ledger app for Ledger Nano S/X

Primary LanguageCApache License 2.0Apache-2.0

Ledger Free TON app

Overview

Free TON Ledger app for Ledger Nano S/X

Video demonstration:

Free TON application on Leger Nano S

Building and installing

To build and install the app on your Ledger Nano S you must set up the Ledger Nano S build environments. Please follow the Getting Started instructions at here.

If you don't want to setup a global environnment, you can also setup one just for this app by sourcing prepare-devenv.sh with the right target (s or x).

Install prerequisite and switch to a Nano S dev-env:

sudo apt install gcc make gcc-multilib g++-multilib libncurses5
sudo apt install python3-venv python3-dev libudev-dev libusb-1.0-0-dev

# (s or x, depending on your device)
source prepare-devenv.sh s 

To fix problems connecting to Ledger follow this guide

Compile and load the app onto the device:

make load

Refresh the repo (required after Makefile edits):

make clean

Remove the app from the device:

make delete

Enable debug mode:

make clean DEBUG=1 load

Example of Ledger wallet functionality

All examples are written for Linux and assumes Python 3.8 is installed as default python interpreter

For Mac OS and Windows prepare environment by running python -m pip install -r requirements.txt and skip execution of source prepare-devenv.sh s. For Mac OS use python3 instead of python.

Request public key:

source prepare-devenv.sh s
python freetoncli.py --getpubkey --account 0

Request address:

source prepare-devenv.sh s
python freetoncli.py --getaddr --account 1

Deploy Wallet contract:

source prepare-devenv.sh s
python freetoncli.py --getaddr --account 1 # get future address of the contract
# send some tokens to the received address (about 0.5 should be enough)
python freetoncli.py --url https://main.ton.dev --account 1 deploy
# you will be asked for signature on device

Now you can send some tokens from the newly created address

Send tokens:

source prepare-devenv.sh s
python freetoncli.py --url main.ton.dev --account 0 send --dest 0:9ff3d2dea4bb74f6cf55d4ff7186bc6b6bb1f3c57338a7ffcb57528b35ddc4af --value 111.111111111
# you will be asked for signature on device

Documentation

This follows the specification available in the freetonapp.asc