# @ledgerhq/devices

> Ledger devices

Latest version **8.17.0** (published 2026-07-16) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @ledgerhq/devices
pnpm add @ledgerhq/devices
yarn add @ledgerhq/devices
bun add @ledgerhq/devices
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 8.17.0 |
| Published | 2026-07-16 |
| First published | 2019-02-09 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 99.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 616 |
| Maintainers | phenry-ledger, sergii-shkolin, gbrahm-ledger, thomas.coudray, ldg-github-ci, vbouzon, ledger-releaser |
| Keywords | Ledger |

## Links

- npm: https://www.npmjs.com/package/@ledgerhq/devices
- Repository: https://github.com/LedgerHQ/ledger-live
- Homepage: https://github.com/LedgerHQ/ledger-live/tree/develop/libs/ledgerjs/packages/devices
- Issues: https://github.com/LedgerHQ/ledger-live/issues
- npm.io page: https://npm.io/package/@ledgerhq/devices

## Dependencies (1)

- [semver](https://npm.io/package/semver.md) 7.7.3

## Recent versions

- 8.17.0 (latest) — 2026-07-16
- 8.17.0-nightly.20260718030452 (nightly) — 2026-07-18
- 8.4.7-next.0 (next) — 2025-06-17
- 8.4.2-hotfix.0 (hotfix) — 2024-07-22
- 8.4.0-windows-certificate.0 (windows-certificate) — 2024-05-28
- 8.2.1-new-wc.0 (new-wc) — 2024-02-20
- 8.2.1-new-wc-test.0 (new-wc-test) — 2024-02-20
- 8.2.1-wc-test.0 (wc-test) — 2024-02-14
- 8.0.8-tag-word.0 (tag-word) — 2023-10-25
- 8.0.4-notarizer.0 (notarizer) — 2023-06-22
- 8.0.1-recover-beta.0 (recover-beta) — 2023-04-01
- 8.0.1-recover-simu.0 (recover-simu) — 2023-03-24
- 8.0.1-recover-staging.0 (recover-staging) — 2023-03-22
- 8.0.0-ios-builds-improvement.0 (ios-builds-improvement) — 2023-02-28
- 7.0.6-protect.1 (protect) — 2022-12-21
- … 457 more at https://npm.io/package/@ledgerhq/devices/versions

## README

<img src="https://user-images.githubusercontent.com/4631227/191834116-59cf590e-25cc-4956-ae5c-812ea464f324.png" height="100" />

## @ledgerhq/devices

Logic for all Ledger devices.

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

*   [IIGenericHID](#iigenerichid)
*   [blue](#blue)
*   [nanoS](#nanos)
*   [nanoSP](#nanosp)
*   [nanoX](#nanox)
*   [stax](#stax)
*   [europa](#europa)
*   [apex](#apex)
*   [ledgerUSBVendorId](#ledgerusbvendorid)
*   [getDeviceModel](#getdevicemodel)
    *   [Parameters](#parameters)
*   [getProductName](#getproductname)
    *   [Parameters](#parameters-1)
*   [identifyTargetId](#identifytargetid)
    *   [Parameters](#parameters-2)
*   [identifyUSBProductId](#identifyusbproductid)
    *   [Parameters](#parameters-3)
*   [getBluetoothServiceUuids](#getbluetoothserviceuuids)
*   [getInfosForServiceUuid](#getinfosforserviceuuid)
    *   [Parameters](#parameters-4)
*   [DeviceModel](#devicemodel)
*   [BluetoothInfos](#bluetoothinfos)

### IIGenericHID

The USB product IDs will be defined as MMII, encoding a model (MM) and an interface bitfield (II)

*   Model
    Ledger Nano S : 0x10
    Ledger Blue : 0x00
    Ledger Nano X : 0x40

*   Interface support bitfield
    Generic HID : 0x01
    Keyboard HID : 0x02
    U2F : 0x04
    CCID : 0x08
    WebUSB : 0x10

Type: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)

### blue

Ledger Blue

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### nanoS

Ledger Nano S

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### nanoSP

Ledger Nano S Plus

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### nanoX

Ledger Nano X

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### stax

Ledger Stax

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### europa

Ledger Flex ("europa" is the internal name)

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### apex

Apex

Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)

### ledgerUSBVendorId

Type: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)

### getDeviceModel

#### Parameters

*   `id` **DeviceModelId**&#x20;

Returns **[DeviceModel](#devicemodel)**&#x20;

### getProductName

Return the official, full product name of a device model
(e.g. "Ledger Flex", "Ledger Nano X").

This is the canonical name and must be used as-is: do not strip the
"Ledger" prefix, reword, or otherwise transform it.

#### Parameters

*   `id` **DeviceModelId**&#x20;

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

### identifyTargetId

Given a `targetId`, return the deviceModel associated to it,
based on the first two bytes.

#### Parameters

*   `targetId` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**&#x20;

Returns **([DeviceModel](#devicemodel) | null | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

### identifyUSBProductId

From a given USB product id, return the deviceModel associated to it.

The mapping from the product id is only based on the 2 most significant bytes.
For example, Stax is defined with a product id of 0x60ii, a product id 0x6011 would be mapped to it.

#### Parameters

*   `usbProductId` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**&#x20;

Returns **([DeviceModel](#devicemodel) | null | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

### getBluetoothServiceUuids

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>**&#x20;

### getInfosForServiceUuid

#### Parameters

*   `uuid` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

Returns **([BluetoothInfos](#bluetoothinfos) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

### DeviceModel

### BluetoothInfos

---
_Source: https://npm.io/package/@ledgerhq/devices · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
