Skip to Content
ハードウェア概要

はじめに

Web アプリとネイティブアプリに OneKey ハードウェアを統合する開発者向けドキュメント。

Hardware SDK 1.2.x は同じ JavaScript API で Protocol V1 と Protocol V2 に対応します。初めての方は次から始めてください: はじめに.

このページは 導入案内 — プラットフォームに適した SDK パッケージを選んでインストールします。一連の手順 (検索 → イベント → PIN/パスフレーズ → 最初の署名呼び出し) と、パラメーター、イベント、エラー処理は次を参照してください: Core API ガイド.

トランスポートを選択

USB 統合では @onekeyfe/hd-common-connect-sdk を使用してください。@onekeyfe/hd-web-sdk は、ホストが iframe/プラグイン構成を要求する場合にのみ使用します。

接続方法

メソッド説明対応デバイス
USB / WebUSB有線 USB。ブラウザーは WebUSB、Node.js / CLI は node-usb互換性のある USB インターフェースとファームウェアを持つデバイス
Bluetooth BLE (ネイティブ)BLE を使うネイティブアプリ (Web Bluetooth ではありません)。OS の Bluetooth と権限が必要Pro, Pro 2, Neo, Touch, Classic 1s / Classic 1s Pure; Mini は BLE に対応していません
Air-Gap (QR)オフライン QR 署名OneKey Pro と Pro 2; Neo にはカメラがありません

プラットフォームガイド

プラットフォーム (スタック)トランスポートSDK パッケージガイド
Web (ブラウザー)WebUSB@onekeyfe/hd-common-connect-sdk WebUSB 接続ガイド
React NativeBLE@onekeyfe/hd-ble-sdk React Native BLE
Android (ネイティブ)BLE@onekeyfe/hd-common-connect-sdk Android BLE
iOS (ネイティブ)BLE@onekeyfe/hd-common-connect-sdk iOS BLE
FlutterBLE@onekeyfe/hd-common-connect-sdk Flutter BLE

低レベルプロトコルとカスタムチャネル: 低レベルトランスポートプラグインとプロトコル

SDK をインストール

実行環境に応じて 1 つのエントリーを選択します:

# Web / desktop WebUSB (recommended) npm i @onekeyfe/hd-common-connect-sdk # React Native BLE npm i @onekeyfe/hd-ble-sdk # Native host with low-level plugin (Android/iOS/Flutter bridge) npm i @onekeyfe/hd-common-connect-sdk # Plugin iframe host only (plugin-only) npm i @onekeyfe/hd-web-sdk

トランスポートの詳細:

SDK を初期化

実行環境に対応する初期化メソッドを使用し、SDK エントリーを混在させないでください。

Web / デスクトップ WebUSB

@onekeyfe/hd-common-connect-sdk を使用する場合:

import HardwareSDK from '@onekeyfe/hd-common-connect-sdk'; const initialized = await HardwareSDK.init({ env: 'webusb', debug: false, fetchConfig: true, }); if (!initialized) throw new Error('SDK initialization failed');

React Native BLE

@onekeyfe/hd-ble-sdk を使用する場合:

import HardwareSDK from '@onekeyfe/hd-ble-sdk'; const initialized = await HardwareSDK.init({ debug: false, }); if (!initialized) throw new Error('SDK initialization failed');

ネイティブブリッジ / 低レベル

@onekeyfe/hd-common-connect-sdk を使用する場合:

import HardwareSDK from '@onekeyfe/hd-common-connect-sdk'; import type { LowlevelTransportSharedPlugin } from '@onekeyfe/hd-transport'; // Provide an implemented native BLE bridge; this is a preparation fragment. declare const plugin: LowlevelTransportSharedPlugin; const initialized = await HardwareSDK.init({ env: 'lowlevel', debug: false, fetchConfig: true, }, undefined, plugin); if (!initialized) throw new Error('SDK initialization failed');
環境ユースケース
webusbブラウザー WebUSB (iframe なし)
lowlevel低レベルアダプター経由で JS を橋渡しするネイティブアプリ
react-native独自の RN ブリッジまたは Electron BLE
emulator組み込みのエミュレータートランスポート

プラグインの iframe ホスト

@onekeyfe/hd-web-sdk を使用します (プラグインのみ)。SDK のデフォルトの iframe ホストは、getSDKVersion() から取得したバージョンを使う https://jssdk.onekey.so/<installed-package-version>/ です。iframe を自分でホストする場合を除き、connectSrc を省略します。

このドキュメントのビルドは次の Hardware SDK に対応しています: 1.2.8-alpha.12. デフォルトの iframe ホストは https://jssdk.onekey.so/1.2.8-alpha.12/. connectSrc を省略すると、SDK はインストール済みパッケージのバージョンを使います。iframe を自分でホストする場合のみ上書きし、インストール済みの @onekeyfe/hd-web-sdk のバージョンに合わせてください。

import HdWebSdk from '@onekeyfe/hd-web-sdk'; const HardwareSDK = HdWebSdk.HardwareWebSdk; const initialized = await HardwareSDK.init({ debug: false, // omit connectSrc — SDK fills https://jssdk.onekey.so/<installed-version>/ }); if (!initialized) throw new Error('SDK initialization failed');

次の手順

HardwareSDK.init(...) が返ったら、はじめにに従って最初のアドレスを取得します。続いて Core API ガイドで残りのフローを進めます:

デバイスとトランスポートの互換性

Bluetooth、USB、Air-Gap、プロトコルファミリーの対応状況

デバイスプロトコルBluetoothUSBAir-Gap
OneKey Classic 1s
OneKey Classic 1s
OneKey Classic 1s
V1対応対応未対応
OneKey Classic 1s Pure
OneKey Classic 1s Pure
バッテリー非搭載モデル
V1対応対応未対応
OneKey Mini
OneKey Mini
コンパクトな USB 専用ウォレット
V1未対応対応未対応
OneKey Touch
OneKey Touch
全面タッチスクリーンの操作体験
V1対応対応未対応
OneKey Pro
OneKey Pro
指紋認証で保護するプレミアムモデル
V1対応対応対応
OneKey Pro 2
OneKey Pro 2
Protocol V2 プロフェッショナルモデル
V2対応対応対応
OneKey Neo
OneKey Neo
Protocol V2 のコンパクトモデル、カメラなし
V2対応対応未対応

Air-Gap モード: OneKey Pro と Pro 2 は QR コードによるエアギャップ署名に対応します。USB や Bluetooth の接続は不要で、署名前にデバイス上で詳細を確認します。参照: Air-Gap 統合 で詳細を確認してください。

主要パッケージ

パッケージ目的NPMバージョン
@onekeyfe/hd-common-connect-sdkWeb/Native 共通の SDK インターフェース。トランスポート利用の推奨エントリーnpm npm
@onekeyfe/hd-ble-sdk純粋な React Native BLE スタック (RN プロジェクトに推奨)npm npm
@onekeyfe/hd-transport-react-nativeReact Native トランスポートの副作用/ブリッジnpm npm
@onekeyfe/hd-transport-web-deviceWeb 環境でデバイスにアクセスする Web トランスポートnpm npm
@onekeyfe/hd-transport-emulatorエミュレータートランスポート (実機なしで開発・テスト)npm npm
@onekeyfe/hd-transport-httpHTTP ブリッジトランスポートnpm npm
@onekeyfe/hd-transport-lowlevel低レベルのホストアダプター仕様 (ネイティブ統合用)npm npm
@onekeyfe/hd-coreCore イベント、定数、メッセージの接続npm npm
@onekeyfe/hd-shared共通ユーティリティと型npm npm
@onekeyfe/hd-web-sdkWeb SDK ラッパー (非推奨。hd-common-connect-sdk を優先)npm npm

関連ドキュメント

サポート

ユーザーの方へ: このドキュメントは主に開発者向けです。製品の使用中に問題が発生した場合は、ヘルプセンターを参照するか、サポートチケットを送信してください。


試してみる

最終更新日