Ledger Live Architecture

General architecture


App architecture

  • The Ledger device acts as a signing box and it defers most of the technical complexity to Ledger Live (Ledger's official wallet application). Ledger Live contains the business logic and is (typically) a GUI, running on a computer or a phone connected to the device.
  • The Ledger embedded application acts as a transaction signer key in a deterministic way. Having an embedded application publicly listed in Ledger Live is a mandatory requirement before getting your blockchain supported on Ledger Live.
  • In the case of Ledger Live, and for performance reason, a third layer is handling the indexing of transaction for a given blockchain.

What is Ledger Live?

Ledger Live is Ledger's offical wallet application for Desktop and Mobile, providing a unique interface to maintain multiple crypto currencies for Ledger Nano S, X and S Plus, manage devices, create accounts, receive and send cryptoassets. It communicates with hardware wallet devices to verify addresses and sign transactions with ledgerjs.

Ledger Live desktop is an hybrid application built using Electron, React Native, React, Redux, RxJS. It is compatible with macOS 10.10+, Windows 8+ (x64) and Linux (x64). The Ledger Live mobile app is compatible with iOS and Android.

Ledger Live architecture

The Ledger Live application act as a relay between the different blockchains, and the hardware wallets.

Its architecture is unconventional and may take some time to understand. Please take time to understand it because this will speed up your development. Please use the comment box at the bottom of the page for suggestions.

LLM Send

Coin Framework

The Coin Framework (opens in a new tab) library is dedicated to coin integration. It provides utilities to help create Coin Modules with generic functions and a common interface signature.

Live Common

The Common library of Ledger Live is called Ledger-live-common (opens in a new tab). It provides a single library compatible with both desktop and mobile version of Ledger Live.

Communication with the Device

ledgerjs (opens in a new tab) is a set of packages. It allows a JavaScript application to use the API of an embedded app. Ledger embedded apps are using APDU to transfer data and commands to and from the external world. ledgerjs only allows to use commands developed on the embedded app.

Communication with the different blockchains

The Ledger Live application will retrieve transaction history and broadcast new transactions using different explorers.

As part of a Ledger Live blockchain integration, you should provide an indexer allowing a Ledger Live user to synchronize his account in a timely manner. It can be an open source project or your own explorer.

The Ledger Live application uses our own explorers for Bitcoin and Ethereum forks.

Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Nano S, Ledger Vault, Bolos are registered trademarks of Ledger SAS