{"id":13622863,"url":"https://github.com/LedgerHQ/ledger-live-desktop","last_synced_at":"2025-04-15T10:31:58.061Z","repository":{"id":38430739,"uuid":"82679495","full_name":"LedgerHQ/ledger-live-desktop","owner":"LedgerHQ","description":"⛔️ DEPRECATED - Ledger Live (Desktop)","archived":true,"fork":false,"pushed_at":"2022-06-12T23:00:32.000Z","size":452553,"stargazers_count":954,"open_issues_count":313,"forks_count":297,"subscribers_count":81,"default_branch":"develop","last_synced_at":"2024-08-01T21:55:13.613Z","etag":null,"topics":["cryptocurrency","deprecated-repo","electron","wallet"],"latest_commit_sha":null,"homepage":"https://www.ledger.com/live","language":"JavaScript","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/LedgerHQ.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":"CODEOWNERS","security":"SECURITY.md","support":null}},"created_at":"2017-02-21T12:52:13.000Z","updated_at":"2024-07-31T03:17:06.000Z","dependencies_parsed_at":"2022-09-06T01:22:16.564Z","dependency_job_id":null,"html_url":"https://github.com/LedgerHQ/ledger-live-desktop","commit_stats":null,"previous_names":[],"tags_count":336,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LedgerHQ%2Fledger-live-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LedgerHQ%2Fledger-live-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LedgerHQ%2Fledger-live-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LedgerHQ%2Fledger-live-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LedgerHQ","download_url":"https://codeload.github.com/LedgerHQ/ledger-live-desktop/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223668497,"owners_count":17182936,"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":["cryptocurrency","deprecated-repo","electron","wallet"],"created_at":"2024-08-01T21:01:25.093Z","updated_at":"2025-04-15T10:31:58.055Z","avatar_url":"https://github.com/LedgerHQ.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Playwright"],"sub_categories":["LedgerHQ/ledger-live-desktop"],"readme":"# ⛔️ DEPRECATED\n\nThis repository is now deprecated. We moved to a new mono repository architecture containing all of Ledger Live JavaScript Ecosystem that you can find [here](https://github.com/ledgerhq/ledger-live). \nYou can follow the [migration guide](https://github.com/LedgerHQ/ledger-live/wiki/Migrate-from-previous-repositories#migration) to help you make the transition.\n\n**[We are hiring, join us! 👨‍💻👩‍💻](https://jobs.lever.co/ledger/?department=Engineering)**\n\n# Ledger Live (desktop) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/ledger-wallet/localized.svg)](https://crowdin.com/project/ledger-wallet)\n\n- Related: [ledger-live-mobile](https://github.com/ledgerhq/ledger-live-mobile)\n- Backed by: [ledger-live-common](https://github.com/ledgerhq/ledger-live-common)\n\n\u003e Ledger Live is a new generation wallet desktop application providing a unique interface to maintain multiple cryptocurrencies for your Ledger Nano S / Blue. Manage your device, create accounts, receive and send cryptoassets, [...and many more](https://www.ledger.com/ledger-launches-ledger-live-the-all-in-one-companion-app-to-your-ledger-device).\n\n\u003ca href=\"https://github.com/LedgerHQ/ledger-live-desktop/releases\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"/docs/screenshot.png\" width=\"550\"/\u003e\n  \u003c/p\u003e\n \u003c/a\u003e\n\n## Architecture\n\nLedger Live is an hybrid desktop application built with Electron, React, Redux, RxJS,.. and highly optimized with [ledger-core](https://github.com/LedgerHQ/lib-ledger-core) C++ library to deal with blockchains (sync, broadcast,..) via [ledger-core-node-bindings](https://github.com/LedgerHQ/lib-ledger-core-node-bindings). It communicates to Ledger hardware wallet devices (Nano X / Nano S / Blue) to verify address and sign transactions with [ledgerjs](https://github.com/LedgerHQ/ledgerjs). Some logic is shared with [live-common](https://github.com/LedgerHQ/ledger-live-common).\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"/docs/architecture.png\" width=\"550\"/\u003e\n\u003c/p\u003e\n\n## Download\n\nThe latest stable release is available on [ledger.com/ledger-live](https://www.ledger.com/ledger-live/).\n\nPrevious versions and pre-releases can be downloaded on here from the [Releases](https://github.com/LedgerHQ/ledger-live-desktop/releases) section.\n\n### Compatibility\n\n- macOS 10.14+\n- Windows 8.1+ (x64)\n- Linux (x64)\n\n## Signed hashes\n\nLedger Live releases are signed. The automatic update mechanism makes use of the signature to verify that each subsequent update is authentic. Instructions for verifying the hash and signatures of the installation packages are available [on this page](https://ledger-live-tools.now.sh/lld-signatures), which will be integrated into the [official download page](https://www.ledger.com/ledger-live/download).\n\n# Development\n\n## Setup\n\n### Requirements\n\n- [NodeJS](https://nodejs.org) `lts/fermium` (Node 14.x)\n- [Yarn 1.x](https://classic.yarnpkg.com/) (Classic)\n- [Python](https://www.python.org/) 2.7 or 3.5+\n- A C/C++ toolchain (see [node-gyp documentation](https://github.com/nodejs/node-gyp#on-unix))\n- On Linux: `sudo apt-get update \u0026\u0026 sudo apt-get install libudev-dev libusb-1.0-0-dev`\n\n## Install\n\n```bash\n# install dependencies\nyarn\n```\n\n## Run\n\n```bash\n# launch the app\nyarn start\n```\n\n## Build\n\n```bash\n# Build \u0026 package the whole app\n# Creates a .dmg for Mac, .exe installer for Windows, or .AppImage for Linux\n# Output files will be created in dist/ folder\nyarn dist\n```\n\n## Debug\n\nIf you are using [Visual Studio Code](https://code.visualstudio.com/) IDE, here is a [Launch Configuration](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration) that should allow you to run and debug the main process as well as the render process of the application.\n\nAs stated in the [debugging documentation](https://code.visualstudio.com/docs/editor/debugging), this file should be named `launch.json` and located under the `.vscode` folder.\n\n```json\n{\n  \"version\": \"0.2.0\",\n  \"compounds\": [\n    {\n      \"name\": \"Run and Debug LLD\",\n      \"configurations\": [\"Debug Main Process\", \"Debug Renderer Process\"],\n      \"stopAll\": true\n    }\n  ],\n  \"configurations\": [\n    {\n      \"name\": \"Debug Main Process\",\n      \"type\": \"node\",\n      \"request\": \"launch\",\n      \"cwd\": \"${workspaceFolder}\",\n      \"runtimeExecutable\": \"yarn\",\n      \"args\": [\"start\"],\n      \"outputCapture\": \"std\",\n      \"resolveSourceMapLocations\": null,\n      \"env\": {\n        \"ELECTRON_ARGS\": \"--remote-debugging-port=8315\"\n      }\n    },\n    {\n      \"name\": \"Debug Renderer Process\",\n      \"type\": \"chrome\",\n      \"request\": \"attach\",\n      \"address\": \"localhost\",\n      \"port\": 8315,\n      \"timeout\": 60000\n    }\n  ]\n}\n```\n\n---\n\n## Config (optional helpers)\n\n### Environment variables\n\n(you can use a .env or export environment variables)\n\n```bash\nNO_DEBUG_COMMANDS=1\nNO_DEBUG_DB=1\nNO_DEBUG_ACTION=1\nNO_DEBUG_TAB_KEY=1\nNO_DEBUG_NETWORK=1\nNO_DEBUG_ANALYTICS=1\nNO_DEBUG_WS=1\nNO_DEBUG_DEVICE=1\nNO_DEBUG_COUNTERVALUES=1\n```\n\nother envs can be seen in [live-common:src/env.js](https://github.com/LedgerHQ/ledger-live-common/blob/master/src/env.js)\n\n### Run tests\n\nIn a terminal you need to have webpack dev server running\n\n```bash\nyarn start\n```\n\nIn an other terminal you need to launch the webdriver/electron container. First run will be slow.\nNext ones will be fast unless some changes are made to the container or package.json. You need to kill and re run the command if package.json changed. Make sure you are running Docker.\n\n```bash\nyarn start-electron-webdriver\n```\n\nYou can point VNCViewer to `localhost::5900` to check what is happening in the container. `secret` is the password.\nThen you can launch tests.\n\n```bash\nyarn spectron\n```\n\nor\n\n```bash\nnode_modules/.bin/jest tests/specs/\u003cFILEREGEX\u003e.spec.js\n```\n\nBy default it uses --runInBand jest option otherwise it explodes!\n\nIf you need to create an app.json, run a test that set up what you need and run it with the env var `SPECTRON_DUMP_APP_JSON` set. It will create `tests/dump.json` at the end of the spec.\n\n**Please put the image expectations at the end of the it(...) tests so that it does not break the whole flow if a snapshot breaks**\n\n### Run code quality checks\n\n```bash\nyarn ci\n```\n\n## File structure\n\n```\nsrc\n├── main : the main process is the mother of all process. it boots internal and renderer process and starts the window.\n├── internal : related to internal thread that runs commands, device logic, libcore,..\n├── renderer : everything related to the UI.\n│   ├── screens\n│   ├── modals\n│   ├── components : all components that are not screens or modals, flattened.\n│   ├── animations\n│   ├── icons\n│   ├── images\n│   ├── styles\n│   ├── bridge : logic related to interacting with accounts and currencies.\n│   ├── families : per currency specific logic and components\n│   ├── actions : redux actions\n│   ├── reducers : redux reducers\n│   ├── middlewares\n│   ├── analytics\n│   ├── fonts\n│   ├── hooks\n│   ├── i18n : all translation files\n│   ├── index.html : html point point\n│   ├── index.js : js entry point\n│   ├── init.js : initialize the rendering\n│   ├── live-common-setup.js : set up live-common for renderer specific parts\n│   └── ... other files related to renderer\n├── config : constants files. DEPRECATED. will be moved to live-common.\n├── helpers : helpers. DEPRECATED. will be moved to live-common or in relevant places.\n├── live-common-set-supported-currencies.js : generic set up of supported coins\n├── live-common-setup.js : generic set up of live-common\n├── logger : internal logging library. used by all thread. produces the \"export logs\".\n├── network.js : network implementation. will eventually move back to live-common.\n└── sentry : related to bug report API\n```\n\n## Localization / Translations\nTranslations from English to other languages are handled internally so it is not possible to directly contribute to them, however if you spot a bug (e.g. a wrong variable name) or any issue in translation files, feel free to report a bug to Ledger's support team and it will be taken care of.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLedgerHQ%2Fledger-live-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLedgerHQ%2Fledger-live-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLedgerHQ%2Fledger-live-desktop/lists"}