On this page
Choose a transport
Hardware SDK 1.2.x uses one JavaScript API. init({ env }) selects the transport, not Protocol V1 vs V2.
| Platform | Transport | Package | env | Guide |
|---|---|---|---|---|
| Browser / desktop WebUSB | WebUSB | @onekeyfe/hd-common-connect-sdk | webusb | WebUSB |
| React Native | BLE | @onekeyfe/hd-ble-sdk | (BLE SDK default) | React Native BLE |
| Android native host | BLE via low-level plugin | @onekeyfe/hd-common-connect-sdk | lowlevel | Android |
| iOS native host | BLE via low-level plugin | @onekeyfe/hd-common-connect-sdk | lowlevel | iOS |
| Flutter host | BLE via low-level plugin | @onekeyfe/hd-common-connect-sdk | lowlevel | Flutter |
| Native BLE overview | BLE | @onekeyfe/hd-common-connect-sdk | lowlevel | Native BLE |
USB requires a compatible device interface and firmware; validate connection and signing on your target platform. BLE is Pro, Pro 2, Neo, Touch, Classic 1s / Pure — not Mini. Air-Gap QR is a separate product path: Air-Gap.
Transport is not the protocol
| Layer | What it is | How you choose it |
|---|---|---|
| Transport | How bytes move: USB, BLE, or a native BLE plugin | init({ env }) — webusb / BLE SDK / lowlevel |
| Protocol | On-wire V1 vs V2 after the link is up | SDK probe. Read connectProtocol. Do not infer from USB PID or BLE name |
A Pro 2 on USB and a Pro 2 on BLE are both Protocol V2. A Classic on USB is Protocol V1. See Protocol V1 and V2 and Devices.
Do not use OneKey Bridge (env: 'web' + checkBridgeStatus) for new WebUSB apps. Migration: Bridge → WebUSB.
After you connect
- First address: Getting Started
- PIN / events: Core API Guide
- Drops and
dispose(): Disconnects and reconnection - Firmware: Firmware Update
- Custom BLE bridge: Low-level transport
Last updated on