{"id":13772577,"url":"https://github.com/wavesplatform/ledger-app-waves","last_synced_at":"2025-07-04T14:39:54.361Z","repository":{"id":47701247,"uuid":"120007884","full_name":"wavesplatform/ledger-app-waves","owner":"wavesplatform","description":"Ledger devices app for Waves platform :large_blue_diamond:","archived":false,"fork":false,"pushed_at":"2023-02-15T15:58:59.000Z","size":786,"stargazers_count":18,"open_issues_count":3,"forks_count":13,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-11-09T04:03:35.396Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wavesplatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-02T17:01:21.000Z","updated_at":"2024-06-03T15:42:22.000Z","dependencies_parsed_at":"2024-01-13T04:11:35.573Z","dependency_job_id":"8301e8a2-5949-44e5-a26c-f527423fd6df","html_url":"https://github.com/wavesplatform/ledger-app-waves","commit_stats":null,"previous_names":["wavesplatform/nanos-app-waves"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fledger-app-waves","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fledger-app-waves/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fledger-app-waves/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fledger-app-waves/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wavesplatform","download_url":"https://codeload.github.com/wavesplatform/ledger-app-waves/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230445917,"owners_count":18227060,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:05.664Z","updated_at":"2024-12-19T14:15:09.975Z","avatar_url":"https://github.com/wavesplatform.png","language":"C","readme":"# ledger-app-waves 🔷 [![Build Status](https://travis-ci.com/wavesplatform/ledger-app-waves.svg?branch=master)](https://travis-ci.com/wavesplatform/ledger-app-waves)\n\n# Introduction 🔐\n\nThis is a Ledger devices wallet app for Waves platform.\n\nSpecial thanks to Jean Passot, Cédric Mesnil, and Oto from the Ledger team, Jake Bordens from the Ledger/Birst community for their support and advices. Thanks to the Waves community for trusting the tokens on this application.\n\nFor app APDU protocol and an integration manual please take a look at [this](https://github.com/wavesplatform/ledger-app-waves/wiki/Integration-manual).\n\n# Building 👷\n\nAlso there're [ledger docker image](https://github.com/LedgerHQ/ledger-app-builder), you can use it to build it.\n\n\u003cdetails\u003e\n  \u003csummary\u003eNano S\u003c/summary\u003e\n\n```rm -rf bin/ debug/ dep/ obj/ app.hex src/glyphs.c src/glyphs.h \u0026\u0026 make BOLOS_ENV=/opt/ledger/ BOLOS_SDK=/home/nanos-secure-sdk```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNano X\u003c/summary\u003e\n\n```rm -rf bin/ debug/ dep/ obj/ app.hex src/glyphs.c src/glyphs.h \u0026\u0026 make BOLOS_ENV=/opt/ledger/ BOLOS_SDK=/home/ledger/sdk-nanox-1.2.4-1.3```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNano S plus\u003c/summary\u003e\n\n```rm -rf bin/ debug/ dep/ obj/ app.hex src/glyphs.c src/glyphs.h \u0026\u0026 make BOLOS_ENV=/opt/ledger/ BOLOS_SDK=/home/nanosplus-secure-sdk/```\n\n\u003c/details\u003e\n\n# Installation 📲\n\nYou can download the official version of this application, signed and verified by the Ledger team, from [the official Ledger Live application](https://www.ledger.com/ledger-live).\n\nBuilding and installing from the source code is usually required in order to develop or customize the application. In addition, you will receive a warning that this application was received from an unreliable source. Try to avoid this, it may be unsafe.\n\nIf you build the app not in the Docker, but in your host OS then just call `make load`. Note that you should have the python env with `ledgerblue` installed. [If you can't install ledgerblue, try install the dependencies into your system.](https://github.com/LedgerHQ/blue-loader-python) [There're some more details also.](https://github.com/wavesplatform/ledger-app-waves/wiki)\n\nIf you use Docker to build the app, then call this from app root on you host OS:\n\n\u003cdetails\u003e\n  \u003csummary\u003eNano S\u003c/summary\u003e\n\n```python -m ledgerblue.loadApp --appFlags 0x240 --path \"44'/5741564'\" --curve secp256k1 --curve ed25519 --tlv --targetId 0x31100004 --delete --fileName bin/app.hex --appName Waves --appVersion 1.1.0 --dataSize 64 --icon 010000000000ffffffffffffff7ffe3ffc1ff80ff007e003c003c007e00ff01ff83ffc7ffeffffffff```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNano X (Only with developer firmware)\u003c/summary\u003e\n\nNote that at the time of publication of this manual (March 2020), the installation of your applications is possible only on special devices for developers.\n\n```python -m ledgerblue.loadApp --appFlags 0x240 --path \"44'/5741564'\" --curve secp256k1 --curve ed25519 --tlv --targetId 0x33000004 --delete --fileName bin/app.hex --appName \"Waves\" --appVersion 1.1.0 --dataSize 256 --icon 010000000000ffffff000030001ec00ff807ffe3fff97ffc0ffe013f8007c0000000```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNano S plus\u003c/summary\u003e\n\n  ```python -m ledgerblue.loadApp --appFlags 0x240 --path \"44'/5741564'\" --curve secp256k1 --curve ed25519 --tlv --targetId 0x33100004 --targetVersion=\"1.0.2\" --delete --fileName bin/app.hex --appName \"Waves\" --appVersion 1.1.4 --dataSize $((0x`cat debug/app.map |grep _envram_data | tr -s ' ' | cut -f2 -d' '|cut -f2 -d'x'` - 0x`cat debug/app.map |grep _nvram_data | tr -s ' ' | cut -f2 -d' '|cut -f2 -d'x'`))```\n\n\u003c/details\u003e\n\n\nIf you want to build under nano x, you need to do it via [this](https://github.com/LedgerHQ/speculos).\n\n# Debugging 🙇\n\nTo simplify the development and debugging process, it is recommended to follow [the Ledger debugging instructions](https://ledger.readthedocs.io/en/latest/userspace/debugging.html) and try to find a solution of your problem [here](https://ledger.readthedocs.io/en/latest/userspace/troubleshooting.html). All this has been tested only with the Ledger Nano S.\n\n1. Install a debug firmware (according to the instructions above)\n2. Install a custom CA for PIN bypass (according to the instructions above)\n3. Build and use USBTool (according to the instructions above).\n\n  Hint: before that on Mac OS X you should install a `libusb-compat` package: `brew install libusb-compat`, then just call `make clean \u0026\u0026 make` from the app root\n\n4. Change debug flag in `Makefile` to `DEBUG = 1`\n5. Build and install the app adding the `--rootPrivateKey` key from the second step\n\n  Now the device should ask you only one confirmation instead of several! Take care of your buttons, fingers and time 😊\n\n6. Start `usbtool` on the PC, then your app on Ledger device, send some APDU and look at the debug output in `usbtool` stdout!\n7. Check [the Ledger device emulator](https://github.com/LedgerHQ/speculos), but at the time of writing (March 2020), it does not support most system calls. For now it perhaps only suitable for debugging an app UI on Ubuntu.\n\nHappy hacking!\n\n\n","funding_links":[],"categories":["Frameworks and tools"],"sub_categories":["Client libraries"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesplatform%2Fledger-app-waves","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwavesplatform%2Fledger-app-waves","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesplatform%2Fledger-app-waves/lists"}