Ledger Wallet Desktop (LWD) is the Electron app for Ledger hardware wallets on macOS, Windows, and Linux. Users can manage crypto assets, install apps on Ledger devices, update firmware, verify public addresses, and sign transactions.
- Download: ledger.com/ledger-live
- System requirements: Ledger Support
Releases are signed, and the updater verifies signatures before applying a new version. Hash/signature verification details are available on live.ledger.tools/lld-signatures.
The app is built with Electron, React, Redux, and RxJS. It uses shared Ledger Wallet logic to communicate with devices, synchronize accounts, and prepare transactions.
Main source areas:
| Path | Purpose |
|---|---|
src/main |
Electron main process |
src/renderer |
React UI, screens, modals, bridges, analytics, i18n, and renderer setup |
src/renderer/families |
Per coin modules family UI logic |
Details of related apps and code sharing are in the root level readme.
Run all commands from repository root:
mise install
pnpm installUSB/HID native dependencies for Linux:
sudo apt-get update
sudo apt-get install libudev-dev libusb-1.0-0-devAfter pulling latest changes:
pnpm install
pnpm build:lldRun the app:
pnpm dev:lld # Run the dev build
pnpm dev:lld:msw # Run the dev build with Mock Service Workers enabledWithin LWD, use the following commands for TDD and validatiion checks:
pnpm nx run ledger-live-desktop:test:jest --with-deps # unit tests
pnpm desktop lint # lint check
pnpm desktop lint:guardrails # security focused lint check
pnpm desktop typecheck # typecheckSee e2e/destkop/README.md for End-to-End testing details.
Environment variables are defined in envDefinitions within libs/env/src/env.ts.
To force a particular value, passed it in from the CLI when starting the app,
e.g.
ANALYTICS_CONSOLE=TRUE pnpm dev:lldTranslations are handled internally at Ledger. If a translation string is broken, report it to Ledger support rather than editing localized content directly.