Documentation
Introduction

Introduction

What is a device app?

There are three types of device apps: Classical device apps, DApp plugins, and utility applications.

Classical device apps

This is the application that allows the users to manage their crypto-assets with their Ledger devices. It is the first step to an integration of your coin or token to the Ledger environment and to an integration of your blockchain to Ledger Live. The following sections will help you develop this type of application. For more information about the role of the Ledger device app, read this Academy article (opens in a new tab).

DApp plugins

DApp Plugins are developed to integrate an Ethereum DApp to Ledger live. Ledger Live has a DApp browser where your DApp will be visible and usable through an iframe. Ethereum DApps can be developed for example to lend or borrow, swap, trade, pay with cryptoassets or manage your portfolio. The documentation for DApp plugins is in the Live App section.

For a DApp Plugins to be able to sign transactions on a Ledger Device, one needs to develop a small, specific application relying on the Ethereum application environment. This type of application is called a plugin.

Utility applications

These applications leverage Ledger technology but are not involved in managing crypto assets. They can be, for example, a password manager application, or a two-factor authentication application.

You are developing a classical device App, a utility application or a plugin, you are in the right section!

Used languages and format

Languages

ComponentDeveloping language
OS BolosC
ApplicationsC or Rust
PluginsC
Tools (including tests)Python (mostely)

Data formats

ComponentFormat
CI (GitHub Workflows)YAML
ledger_app.toml manifestsTOML
App databaseJSON

The available SDK is for Apps written in C

For the Apps written in Rust, a Rust SDK is available (only for Nano S/S+/X devices, Stax not supported yet).

Your developer journey

Engage with the Ledger developer community

Joining Discord is not required to code your device application, but it will be easier to meet with our team and discuss the specifics of your project. Join us on the Ledger's Discord server (opens in a new tab) and introduce your project in the #embedded-app channel.

Understand the process & meet the requirements

Ensure that you have a clear understanding of the Process and are able to meet the Requirements and produce the deliverables.

Begin Coding

Device applications are primarily developed in C using the Blockchain Open Ledger Operating System (BOLOS).

To develop a device application, ensure that you:

Documentation version

The current version of the Device App documentation displayed on the Developer Portal is v04_20240126.

Contributing

Interested in enhancing our documentation? Feel free to leave your suggestions in the comment box at the bottom of each page. We value your input.

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