用途:该技能用于安全执行 Ledger Device Management Kit(DMK)的签名与设备管理操作,覆盖从 SDK 初始化到签名完成的完整流程,每一步都是不可跳过的门禁。
主要能力:按顺序执行五个步骤——SDK 初始化、建立设备会话、检查设备状态、管理应用、执行操作。支持 ETH、BTC、Solana 等链的签名,以及安装/卸载应用等设备管理操作。提供错误分类、超时控制和人工介入(HITL)升级点。
使用方式:运行前需确认 DMK 单例存在;无会话时调用 dmk.startDiscovering() 发现设备,再 dmk.connect() 建立会话;通过 dmk.getDeviceSessionState() 检查状态;用 OpenAppDeviceAction 打开正确应用;签名时用 new [Chain]SignerBuilder({ dmk, sessionId }).build() 并订阅 observable;设备管理直接调用 dmk.executeDeviceAction()。流程结束或不可恢复错误时调用 dmk.disconnect({ sessionId })。
适用场景:浏览器(WebHID/WebBLE,仅 Chromium,需 HTTPS 或 localhost,且必须在用户手势中调用)、Node.js/Electron(Node-HID)、React Native(BLE 或 HID)。
限制:生产环境禁止使用 stub 或 mock;派生路径必须为开发者设定的常量,不得来自用户输入;不得复用签名;ESCALATE 与 ABORT 门禁不可绕过;设备屏幕是唯一可信显示;用户拒绝不是错误,应作为独立结果处理;设备锁定、应用未安装、多设备、权限拒绝等需人工介入;设备管理需连接 Ledger HSM 后端,离线不可用。超时默认值:发现 15s、应用打开确认 30s、签名确认 60s,可在 5s–300s 内调整。