# @exodus/hw-ledger 中文文档

规范地址：https://npmcn.com/package/%40exodus/hw-ledger/

版本：4\.0\.2
npm 元数据更新时间：2026-09-30T16:32:40.352Z
中文译文更新时间：2026-11-14T04:06:32.710Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40exodus/hw-ledger
原文对照：https://npmcn.com/package/%40exodus/hw-ledger/?lang=original
项目主页：https://github.com/ExodusMovement/exodus/tree/master/libs/features/hw-ledger
源码仓库：https://github.com/ExodusMovement/exodus

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：119 kB，65 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：19 个
- 首次发布：2023-07-04T20:26:22.457Z
- 最新版本发布：2026-09-30T16:32:40.159Z
- 近 30 天下载量：11465（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：60（近 12 个月 9 个）

## 中文简介

分类账模块

## 安装

```sh
npm install @exodus/hw-ledger
```

也可以使用：`pnpm add @exodus/hw-ledger`、`yarn add @exodus/hw-ledger`、`bun add @exodus/hw-ledger`

## README

# @exodus/hw-ledger (英语)

此 Exodus SDK 特性处理所有针对 Ledger 的硬件钱包动作, 并执行和 [接口](https://npmcn.com/package/libraries/hw-common/src/types.ts) 用于所有硬件钱包设备.

## 安装

```sh
pnpm add @exodus/hw-ledger
```

## 使用量

此特性设计为与 `@exodus/headless`。见 [使用 sdk](https://npmcn.com/package/docs/development/using-the-sdk.md)。 。 。 .

### API 边

```typescript
import hardwareWalletLedger from '@exodus/hw-ledger'
import Transport from '@ledgerhq/hw-transport-node-speculos'

// Add a transportsFactories adapter to hold
// the factory funcctions that are specific to the platform.
const transportsFactories = {
  tcp: Transport,
}

// Create IoC
const ioc = createIocContainer({ adapters: { transportsFactories }, config, debug })
ioc.use(hardwareWalletLedger({ bluetoothScannerTimeout: 60 * 1000 }))

// Retrieve the ledgerDiscovery through dependency injection

const ledgerDescriptors = await ledgerDiscovery.list()
// [
//   {
//       manufacturer: 'ledger',
//       transportType: 'tcp',
//       get: function () => { ... }
//   }
// ]

let ledgerDevice = null
try {
  ledgerDevice = await ledgerDescriptors[0].get()
} catch (err) {
  // Instantiating the device may fail, deal with this.
  // e.g unplugged, udev issues, no networking
  logger.error(`Unable to connect to device.`, err)
}

if (ledgerDevice) {
  const address = await ledgerDevice.getAddress({
    assetName: 'bitcoin',
    derivationPath: `m/86'/0'/0'/0/0`,
  })
  logger.log(`bitcoin address is ${address}`)
  // bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr
}
```

### UI 侧

这个软件包不是通过UI直接使用的。 见 [使用 @ exodus/ 硬件- 钱包](https://npmcn.com/package/%40exodus/hardware-wallets/README.md) 用于用户界面.

## 建筑

该发现提供了可用于取回设备手柄的描述符.

```mermaid
flowchart LR
    AA[TransportFactory] --> A
    A[LedgerDiscovery] -->|"list()"| B(HardwareWalletDescriptor)
    B --> |"get()"| C(LedgerDevice)
    C --> |"getAddress()"| D{Pick by \nasset}
    D -->|bitcoin| E[BitcoinHandlers]
    D -->|ethereum| F[EthereumHandlers]
    D -->|solana| G[SolanaHandlers]
```

## 发展

如果你在Linux上,那你很有可能想要设置出你的udev规则.

### 正在安装编目模拟器( 建议)

切换 speculos 仓库并更改当前工作目录

```bash
git clone https://github.com/LedgerHQ/speculos.git --branch v0.3.5 --single-branch --depth 1 speculos-0.3.5
cd speculos-0.3.5
```

获取 Docker 图像

```bash
docker image pull ghcr.io/ledgerhq/speculos:sha-8241dc2 # v0.3.5
docker image tag ghcr.io/ledgerhq/speculos:sha-8241dc2 speculos
```

获取 ARM (M1/ M2) 的多克图像

```bash
docker image build -t ghcr.io/ledgerhq/speculos-builder:latest -f build.Dockerfile .
docker image build -t speculos:latest .
```

在 `speculos` 目录

```bash
docker container run --rm -it -v "$(pwd)"/apps:/speculos/apps:ro \
-p 127.0.0.1:4000:4000 -p 127.0.0.1:40000:40000 speculos \
--display headless --api-port 4000 --apdu-port 40000 --seed "secret" --model nanos --sdk 2.0 ./apps/btc.elf
```

现在访问 http://127.0.0.1:4000 与模拟器交互.

### MacOS的发射问题:

-   `port XXXX is already in use`: 重新绘制任何可用的主机端口([医生](https://docs.docker.com/network/#published-ports)(中文(简体) )

### 为真实设备安装 udev 规则( 只有 Linux)

如果你想和真正的设备交谈,你可能需要设置 udev 规则.

```bash
sudo ./scripts/setup_udev.sh
```

## 常见问题

### @exodus/hw-ledger 是什么？

分类账模块

### 如何安装 @exodus/hw-ledger？

在项目目录运行 npm install @exodus/hw-ledger，或使用 pnpm add / yarn add / bun add。

### @exodus/hw-ledger 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @exodus/hw-ledger 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @exodus/hw-ledger 可以商用吗？

@exodus/hw-ledger 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @exodus/hw-ledger 的下载量有多少？

根据 npm 官方下载统计，@exodus/hw-ledger 在 2026/10/14 – 2026/11/12 这 30 天内被下载 11,465 次，日均约 382 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @exodus/hw-ledger 还在维护吗？

最新版本 4\.0\.2 发布于 2026/10/01（1 个月前）；至今共发布 60 个版本，其中过去 12 个月发布了 9 个；首次发布于 2023/07/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

