{"id":22072596,"url":"https://github.com/broxus/ledger-app-everscale","last_synced_at":"2025-10-18T13:08:06.454Z","repository":{"id":66355141,"uuid":"558313369","full_name":"broxus/ledger-app-everscale","owner":"broxus","description":"Everscale app for Ledger Wallet","archived":false,"fork":false,"pushed_at":"2024-03-12T15:05:03.000Z","size":340,"stargazers_count":3,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-03-12T16:30:59.097Z","etag":null,"topics":["everscale","venom-blockchain","venom-developer-program","venom-wallet"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/broxus.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,"dei":null}},"created_at":"2022-10-27T09:51:59.000Z","updated_at":"2024-01-28T17:21:04.000Z","dependencies_parsed_at":"2023-10-11T17:23:55.253Z","dependency_job_id":"3e44fdc7-be1b-4b09-93c7-4f433b9ab231","html_url":"https://github.com/broxus/ledger-app-everscale","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fledger-app-everscale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fledger-app-everscale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fledger-app-everscale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fledger-app-everscale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broxus","download_url":"https://codeload.github.com/broxus/ledger-app-everscale/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227432290,"owners_count":17775894,"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":["everscale","venom-blockchain","venom-developer-program","venom-wallet"],"created_at":"2024-11-30T21:13:50.958Z","updated_at":"2025-10-18T13:08:01.437Z","avatar_url":"https://github.com/broxus.png","language":"C","readme":"\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/venom-blockchain/developer-program\"\u003e\r\n    \u003cimg src=\"https://raw.githubusercontent.com/venom-blockchain/developer-program/main/vf-dev-program.png\" alt=\"Logo\" width=\"366.8\" height=\"146.4\"\u003e\r\n  \u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n[![Ensure compliance with Ledger guidelines](https://github.com/blooo-io/app-everscale/actions/workflows/guidelines_enforcer.yml/badge.svg)](https://github.com/blooo-io/app-everscale/actions/workflows/guidelines_enforcer.yml)\r\n\r\n[![Build and run functional tests using ragger through reusable workflow](https://github.com/blooo-io/app-everscale/actions/workflows/build_and_functional_tests.yml/badge.svg)](https://github.com/blooo-io/app-everscale/actions/workflows/build_and_functional_tests.yml)\r\n\r\n# Everscale app for Ledger Wallet\r\n\r\n## Overview\r\n\r\nThis app adds support for the Everscale tokens to Ledger hardware wallets.\r\n\r\nCurrent Features:\r\n\r\n- Pubkey queries\r\n- Address queries\r\n- Sign transaction hash\r\n- Parse, display and sign Everscale transaction\r\n\r\n## Quick start guide\r\n\r\n### With VSCode\r\n\r\nYou can quickly setup a convenient environment to build and test your application\r\nby using [Ledger's VSCode developer tools extension](https://marketplace.visualstudio.com/items?itemName=LedgerHQ.ledger-dev-tools)\r\nwhich leverages the [ledger-app-dev-tools](https://github.com/LedgerHQ/ledger-app-builder/pkgs/container/ledger-app-builder%2Fledger-app-dev-tools)\r\ndocker image.\r\n\r\nIt will allow you, whether you are developing on macOS, Windows or Linux to quickly **build** your apps,\r\n**test** them on **Speculos** and **load** them on any supported device.\r\n\r\n- Install and run [Docker](https://www.docker.com/products/docker-desktop/).\r\n- Make sure you have an X11 server running :\r\n  - On Ubuntu Linux, it should be running by default.\r\n  - On macOS, install and launch [XQuartz](https://www.xquartz.org/)\r\n    (make sure to go to XQuartz \u003e Preferences \u003e Security and check \"Allow client connections\").\r\n  - On Windows, install and launch [VcXsrv](https://sourceforge.net/projects/vcxsrv/)\r\n    (make sure to configure it to disable access control).\r\n- Install [VScode](https://code.visualstudio.com/download) and add [Ledger's extension](https://marketplace.visualstudio.com/items?itemName=LedgerHQ.ledger-dev-tools).\r\n- Open a terminal and clone `app-everscale` with `git clone git@github.com:blooo-io/app-everscale.git`.\r\n- Open the `app-everscale` folder with VSCode.\r\n- Use Ledger extension's sidebar menu or open the tasks menu with `ctrl + shift + b`\r\n  (`command + shift + b` on a Mac) to conveniently execute actions :\r\n  - Build the app for the device model of your choice with `Build`.\r\n  - Test your binary on [Speculos](https://github.com/LedgerHQ/speculos) with `Run with Speculos`.\r\n  - You can also run functional tests, load the app on a physical device, and more.\r\n\r\n:information_source: The terminal tab of VSCode will show you what commands the extension runs behind the scene.\r\n\r\n### With a terminal\r\n\r\nThe [ledger-app-dev-tools](https://github.com/LedgerHQ/ledger-app-builder/pkgs/container/ledger-app-builder%2Fledger-app-dev-tools)\r\ndocker image contains all the required tools and libraries to **build**, **test** and **load** an application.\r\n\r\nYou can download it from the ghcr.io docker repository:\r\n\r\n```shell\r\nsudo docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest\r\n```\r\n\r\nYou can then enter this development environment by executing the following command\r\nfrom the directory of the application `git` repository:\r\n\r\n#### Linux (Ubuntu)\r\n\r\n```shell\r\nsudo docker run --rm -ti --user \"$(id -u):$(id -g)\" --privileged -v \"/dev/bus/usb:/dev/bus/usb\" -v \"$(realpath .):/app\" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest\r\n```\r\n\r\n#### macOS\r\n\r\n```shell\r\nsudo docker run  --rm -ti --user \"$(id -u):$(id -g)\" --privileged -v \"$(pwd -P):/app\" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest\r\n```\r\n\r\n#### Windows (with PowerShell)\r\n\r\n```shell\r\ndocker run --rm -ti --privileged -v \"$(Get-Location):/app\" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest\r\n```\r\n\r\nThe application's code will be available from inside the docker container,\r\nyou can proceed to the following compilation steps to build your app.\r\n\r\n## Compilation and load\r\n\r\nTo easily setup a development environment for compilation and loading on a physical device,\r\nyou can use the [VSCode integration](#with-vscode) whether you are on Linux, macOS or Windows.\r\n\r\nIf you prefer using a terminal to perform the steps manually, you can use the guide below.\r\n\r\n### Compilation\r\n\r\nSetup a compilation environment by following the [shell with docker approach](#with-a-terminal).\r\n\r\nFrom inside the container, use the following command to build the app :\r\n\r\n```shell\r\nmake DEBUG=1  # compile optionally with PRINTF\r\n```\r\n\r\nYou can choose which device to compile and load for by setting the `BOLOS_SDK` environment variable\r\nto the following values :\r\n\r\n- `BOLOS_SDK=$NANOX_SDK`\r\n- `BOLOS_SDK=$NANOSP_SDK`\r\n- `BOLOS_SDK=$STAX_SDK`\r\n- `BOLOS_SDK=$FLEX_SDK`\r\n\r\nBy default this variable is set to build/load for Nano S+.\r\n\r\n### Loading on a physical device\r\n\r\nThis step will vary slightly depending on your platform.\r\n\r\n:information_source: Your physical device must be connected, unlocked and the screen showing the dashboard\r\n(not inside an application).\r\n\r\n#### Linux (Ubuntu)\r\n\r\nFirst make sure you have the proper udev rules added on your host :\r\n\r\n```shell\r\n# Run these commands on your host, from the app's source folder.\r\nsudo cp .vscode/20-ledger.ledgerblue.rules /etc/udev/rules.d/\r\nsudo udevadm control --reload-rules\r\nsudo udevadm trigger\r\n```\r\n\r\nThen once you have [opened a terminal](#with-a-terminal) in the `app-builder` image and [built the app](#compilation-and-load)\r\nfor the device you want, run the following command :\r\n\r\n```shell\r\n# Run this command from the app-builder container terminal.\r\nmake load    # load the app on a Nano S+ by default\r\n```\r\n\r\n[Setting the BOLOS_SDK environment variable](#compilation-and-load) will allow you to load on whichever supported\r\ndevice you want.\r\n\r\n#### macOS / Windows (with PowerShell)\r\n\r\n:information_source: It is assumed you have [Python](https://www.python.org/downloads/) installed on your computer.\r\n\r\nRun these commands on your host from the app's source folder once you have [built the app](#compilation-and-load)\r\nfor the device you want :\r\n\r\n```shell\r\n# Install Python virtualenv\r\npython3 -m pip install virtualenv\r\n# Create the 'ledger' virtualenv\r\npython3 -m virtualenv ledger\r\n```\r\n\r\nEnter the Python virtual environment\r\n\r\n- macOS : `source ledger/bin/activate`\r\n- Windows : `.\\ledger\\Scripts\\Activate.ps1`\r\n\r\n```shell\r\n# Install Ledgerblue (tool to load the app)\r\npython3 -m pip install ledgerblue\r\n# Load the app.\r\npython3 -m ledgerblue.runScript --scp --fileName bin/app.apdu --elfFile bin/app.elf\r\n```\r\n\r\n## Test\r\n\r\nThe Everscale app comes with functional tests implemented with Ledger's [Ragger](https://github.com/LedgerHQ/ragger)\r\ntest framework.\r\n\r\n### macOS / Windows\r\n\r\nTo test your app on macOS or Windows, it is recommended to use [Ledger's VS Code extension](#with-vscode)\r\nto quickly setup a working test environment.\r\n\r\nYou can use the following sequence of tasks and commands (all accessible in the **extension sidebar menu**) :\r\n\r\n- `Select build target`\r\n- `Build app`\r\n\r\nThen you can choose to execute the functional tests :\r\n\r\n- Use `Run tests`.\r\n\r\nOr simply run the app on the Speculos emulator :\r\n\r\n- `Run with Speculos`.\r\n\r\n### Linux (Ubuntu)\r\n\r\nOn Linux, you can use [Ledger's VS Code extension](#with-vscode) to run the tests.\r\nIf you prefer not to, open a terminal and follow the steps below.\r\n\r\nInstall the tests requirements :\r\n\r\n```shell\r\npip install -r tests/requirements.txt\r\n```\r\n\r\nThen you can :\r\n\r\nRun the functional tests (here for nanos+ but available for any device once you have built the binaries) :\r\n\r\n```shell\r\npytest tests/ --tb=short -v --device nanosp\r\n```\r\n\r\nOr run your app directly with Speculos\r\n\r\n```shell\r\nspeculos --model nanosp build/nanos2/bin/app.elf\r\n```\r\n\r\n## Documentation\r\n\r\nThis follows the specification available in the [`api.md`](doc/api.md)\r\n\r\n## Building the application\r\n\r\n### Prerequisites\r\n\r\n- Install [Node.js](https://nodejs.org) (lts version)\r\n- Install [Docker](https://docs.docker.com/get-docker/)\r\n- Setup the Ledger development environment by following the [official documentation](https://developers.ledger.com/docs/nano-app/introduction/)\r\n- Make sure the Ledger SDK environment variable is properly set:\r\n  ```\r\n  export BOLOS_SDK=/path/to/your/sdk\r\n  ```\r\n\r\n### Building\r\n\r\nThis application can be built in two variants:\r\n\r\n- **Everscale** (default)\r\n- **Venom**\r\n\r\n#### Building the Everscale variant (default)\r\n\r\n```bash\r\n# Build with default configuration (Everscale)\r\nmake\r\n\r\n# Or explicitly specify Everscale\r\nmake COIN=EVER\r\n```\r\n\r\n#### Building the Venom variant\r\n\r\n```bash\r\n# Build the Venom variant\r\nmake COIN=VENOM\r\n```\r\n\r\n### Loading the application on your device\r\n\r\n```bash\r\n# Connect your Ledger device and run\r\nmake load\r\n```\r\n\r\nWhen building the application, the appropriate icons and application name will be used based on the selected variant.\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroxus%2Fledger-app-everscale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbroxus%2Fledger-app-everscale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroxus%2Fledger-app-everscale/lists"}