- Related: ledger-live-mobile
- Backed by: ledger-live-common
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.
Ledger Live is an hybrid desktop application built with Electron, React, Redux, RxJS,.. and highly optimized with ledger-core C++ library to deal with blockchains (sync, broadcast,..) via ledger-core-node-bindings. It communicates to Ledger hardware wallet devices (Nano S / Blue) to verify address and sign transactions with ledgerjs. Some logic is shared with live-common.
The latest stable release is available on ledger.com/ledger-live.
Previous versions and pre-releases can be downloaded on here from the Releases section.
- macOS 10.10+
- Windows 8+ (x64)
- Linux (x64)
Ledger 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, which will be integrated into the official download page.
- NodeJS LTS/erbium (Node 12.x)
- Yarn 1.x (Classic)
- Python 2.7 or 3.5+
- A C/C++ toolchain (see node-gyp documentation)
# install dependencies
yarn
# launch the app
yarn start
# Build & package the whole app
# Creates a .dmg for Mac, .exe installer for Windows, or .AppImage for Linux
# Output files will be created in dist/ folder
yarn dist
(you can use a .env or export environment variables)
NO_DEBUG_COMMANDS=1
NO_DEBUG_DB=1
NO_DEBUG_ACTION=1
NO_DEBUG_TAB_KEY=1
NO_DEBUG_NETWORK=1
NO_DEBUG_ANALYTICS=1
NO_DEBUG_WS=1
NO_DEBUG_DEVICE=1
NO_DEBUG_COUNTERVALUES=1
other envs can be seen in live-common:src/env.js
In a terminal you need to have webpack dev server running
yarn start
In an other terminal you need to launch the webdriver/electron container. Since Docker is intelligent it launches fast if nothing changed in package.json
and yarn.lock
. We need to build node_modules
in the container for packages with native dependencies to work. So remember to stop and re run this command when packages are updated.
cd tests/docker-electron-webdriver/ && docker-compose up --build
You can point VNCViewer to localhost::5900
to check what is happening in the container. secret
is the password.
Then you can launch tests.
yarn spectron
yarn ci
src
├── main : the main process is the mother of all process. it boots internal and renderer process and starts the window.
├── internal : related to internal thread that runs commands, device logic, libcore,..
├── renderer : everything related to the UI.
│ ├── screens
│ ├── modals
│ ├── components : all components that are not screens or modals, flattened.
│ ├── animations
│ ├── icons
│ ├── images
│ ├── styles
│ ├── bridge : logic related to interacting with accounts and currencies.
│ ├── families : per currency specific logic and components
│ ├── actions : redux actions
│ ├── reducers : redux reducers
│ ├── middlewares
│ ├── analytics
│ ├── fonts
│ ├── hooks
│ ├── i18n : all translation files
│ ├── index.html : html point point
│ ├── index.js : js entry point
│ ├── init.js : initialize the rendering
│ ├── live-common-setup.js : set up live-common for renderer specific parts
│ └── ... other files related to renderer
├── config : constants files. DEPRECATED. will be moved to live-common.
├── helpers : helpers. DEPRECATED. will be moved to live-common or in relevant places.
├── live-common-set-supported-currencies.js : generic set up of supported coins
├── live-common-setup.js : generic set up of live-common
├── logger : internal logging library. used by all thread. produces the "export logs".
├── network.js : network implementation. will eventually move back to live-common.
└── sentry : related to bug report API