Skip to Content
硬件接入概览

简介

面向开发者的 OneKey 硬件钱包集成文档,适用于 Web 和原生应用。

本页是入门层 —— 帮你选对 SDK 包并装上。端到端流程(搜设备 → 事件 → PIN/passphrase → 首次签名)和参数、事件、错误处理的完整说明,请看 Core API Guide

选择传输协议

USB 场景一律推荐 @onekeyfe/hd-common-connect-sdk@onekeyfe/hd-web-sdk 仅用于插件端(iframe 嵌入形式)。

连接方式

方式描述支持机型
USB / WebUSB有线 USB;Web 使用 WebUSB,原生使用底层插件所有 OneKey 设备
Bluetooth BLE(原生)原生 App 的 BLE;不支持 Web BluetoothPro、Touch、Classic 1s / Classic 1s Pure;Mini 不支持 BLE
Air-Gap(二维码)离线扫码签名仅 OneKey Pro

平台指南

平台(技术栈)传输协议SDK 包指南
Web(浏览器)WebUSB@onekeyfe/hd-common-connect-sdk WebUSB 连接指南
React Native蓝牙@onekeyfe/hd-ble-sdk React Native 蓝牙
Android(原生)蓝牙@onekeyfe/hd-common-connect-sdk Android 蓝牙
iOS(原生)蓝牙@onekeyfe/hd-common-connect-sdk iOS 蓝牙
Flutter蓝牙@onekeyfe/hd-common-connect-sdk Flutter 蓝牙

低层协议与自定义通道参考:底层传输插件与协议

安装 SDK

按运行时选择一个入口安装:

# Web / 桌面 WebUSB(推荐) npm i @onekeyfe/hd-common-connect-sdk # React Native BLE npm i @onekeyfe/hd-ble-sdk # 原生宿主 + 底层插件(Android/iOS/Flutter 桥接) npm i @onekeyfe/hd-common-connect-sdk # 插件端 iframe(仅插件端) npm i @onekeyfe/hd-web-sdk

传输细节:

初始化 SDK

按照运行时选择对应的初始化方式,避免混用。

Web / 桌面 WebUSB

使用 @onekeyfe/hd-common-connect-sdk

import HardwareSDK from '@onekeyfe/hd-common-connect-sdk'; await HardwareSDK.init({ env: 'webusb', debug: process.env.NODE_ENV !== 'production', fetchConfig: true, });

React Native BLE

使用 @onekeyfe/hd-ble-sdk

import HardwareSDK from '@onekeyfe/hd-ble-sdk'; await HardwareSDK.init({ debug: __DEV__, });

原生桥接 / 低层协议

使用 @onekeyfe/hd-common-connect-sdk

import HardwareSDK from '@onekeyfe/hd-common-connect-sdk'; await HardwareSDK.init({ env: 'lowlevel', debug: process.env.NODE_ENV !== 'production', fetchConfig: true, });
环境使用场景
webusb浏览器 WebUSB(无 iframe)
lowlevel原生应用通过底层适配器桥接 JS
react-native基于自定义 RN 桥或 Electron BLE
emulator使用内置模拟器

插件端 Iframe

使用 @onekeyfe/hd-web-sdk(仅插件端):

import { HardwareSDK } from '@onekeyfe/hd-web-sdk'; await HardwareSDK.init({ debug: process.env.NODE_ENV !== 'production', connectSrc: 'https://jssdk.onekey.so/1.1.19/', // iframe host });

下一步

HardwareSDK.init(...) 完成之后,剩下的流程 —— 设备发现、事件绑定、PIN/passphrase 处理、签名 —— 都在 Core API Guide 里端到端讲清楚了:

设备与传输兼容性

蓝牙、USB 和 Air-Gap 连接的支持状态

设备蓝牙USBAir-Gap
OneKey Classic 1s
OneKey Classic 1s
经典款 Classic 1s
SupportedSupportedN/A
OneKey Classic 1s Pure
OneKey Classic 1s Pure
Classic 1s Pure 无电池版本
SupportedSupportedN/A
OneKey Mini
OneKey Mini
紧凑型 USB 钱包
N/ASupportedN/A
OneKey Touch
OneKey Touch
全触屏体验
SupportedSupportedN/A
OneKey Pro
OneKey Pro
旗舰版,支持指纹识别
SupportedSupportedSupported

Air-Gap 模式: OneKey Pro 支持通过二维码进行离线签名(Air-Gap)— 无需 USB 或蓝牙连接,提供最高级别的安全性。详见 Air-Gap 集成

核心包

包名用途NPM版本
@onekeyfe/hd-common-connect-sdk统一的 Web/原生 SDK 接口;推荐作为传输层入口npm npm
@onekeyfe/hd-ble-sdk纯 React Native 蓝牙协议栈(推荐用于 RN 项目)npm npm
@onekeyfe/hd-transport-react-nativeReact Native 传输层副作用/桥接npm npm
@onekeyfe/hd-transport-web-deviceWeb 环境设备访问传输层npm npm
@onekeyfe/hd-transport-emulator模拟器传输层(无需物理设备即可开发和测试)npm npm
@onekeyfe/hd-transport-httpHTTP 桥接传输层npm npm
@onekeyfe/hd-transport-lowlevel底层主机适配器协议(用于原生集成)npm npm
@onekeyfe/hd-core核心事件、常量、消息处理npm npm
@onekeyfe/hd-shared共享工具和类型npm npm
@onekeyfe/hd-web-sdkWeb SDK 封装(不推荐;建议使用 hd-common-connect-sdk)npm npm

延伸阅读

支持

致用户:本文档主要面向开发者。如果您在使用我们的产品时遇到问题,请查阅帮助中心或提交工单。

相关仓库


立即体验

Last updated on