DocumentationDevice interactionExplanationDifferences with LedgerJS

Differences with LedgerJS

The Device Management Kit (DMK) is designed to replace the existing LedgerJS libraries, including the hw-app-XXX and hw-transport-XXX series.

Legacy Challenges

The LedgerJS libraries were originally developed to support Ledger Live applications. Given that Ledger Live has been evolving for over seven years, the libraries have accumulated technical debt over this extensive period. Consequently, some components of the libraries have grown more complex, making them challenging to maintain and extend.

A few behaviors in the device libraries do not align perfectly with expected outcomes. For example, the act of opening an application on the device might lead to unanticipated disconnections.

Additionally, feedback from our partners, including software wallet developers, indicates that the libraries could benefit from enhanced simplicity and a reduction in the need for low-level programming knowledge (such as understanding the APDU communication protocol).

Target Audience

While LedgerJS was primarily designed for use with Ledger Live, the Device Management Kit is specifically tailored to prioritize the needs of third-party developers.

Simplifying Interactions

Our goal with the DMK is to significantly lower the barrier for developers interacting with Ledger devices. By abstracting much of the underlying complexity, the DMK provides a straightforward and user-friendly API, facilitating easier integration.

Support for Multiple Devices

LedgerJS restricted simultaneous connections to multiple devices. In contrast, the DMK introduces the ability to connect and interact with multiple devices concurrently, enhancing multi-device management capabilities.

When to Use LedgerJS Instead of DMK

While the DMK offers advanced features, there are certain scenarios where LedgerJS may still be necessary due to current feature gaps in the DMK. For example, the DMK is still expanding its support for signers specific to certain blockchains. In such cases, continuing to use LedgerJS for transaction signing might be beneficial. We are actively working on solutions to bridge these gaps and improve compatibility between the DMK and LedgerJS.

In summary, the DMK represents a modern solution tailored to current development needs, with a focus on ease of use and expanded functionality. As we continue to enhance its features, we are committed to maintaining compatibility with existing solutions.

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