Skip to Content
QR 署名概要

Air-Gap (オフライン QR 署名)

UR エンコードされた QR コードを使い、デバイスをオフラインのまま保つ署名フローを構築します。

仕組み

  1. リクエストを構築: チェーンごとに署名リクエストの UR ペイロードを作成し、アニメーション QR フレームとして描画
  2. デバイスでスキャン: デバイスが QR をスキャンし、画面上で詳細を確認して、オフラインで署名
  3. 署名を取得: デバイスが署名の UR をアニメーション QR として表示
  4. ブロードキャスト: アプリがレスポンスをスキャンして検証し、ネットワーク経由でブロードキャスト

チェーン別クイックスタート

チェーンリクエストタイプ (アプリ → デバイス)レスポンスタイプ (デバイス → アプリ)
Ethereum と EVMeth-sign-requesteth-signature
Bitcoin (PSBT)crypto-psbtcrypto-psbt
Solanasol-sign-requestsol-signature
Trontron-sign-requesttron-signature

アカウントのエクスポートタイプ (デバイス → アプリ)

これらの UR タイプは、初期設定時にデバイスからアプリへアカウント情報をエクスポートする際に使用します:

UR タイプ説明
crypto-hdkey単一の HD キーのエクスポート (BCR-2020-007 )
crypto-multi-accounts複数チェーンのアカウントをまとめてエクスポート

API リファレンス

  • 基本 API – 基本 UR タイプ: CryptoHDKey, CryptoCoinInfo, CryptoKeypath

パッケージ

# Keystone SDK & UR registries npm install @keystonehq/keystone-sdk @keystonehq/bc-ur-registry-eth # UR primitives npm install @ngraveio/bc-ur

サードパーティウォレットとの統合

既存のウォレットに OneKey Air-Gap を統合する場合は、QR スキャナーがこれらの UR タイプを次のデコーダーに振り分けるようにしてください: BC-UR v2 デコーダー (ファウンテン符号化)。従来の v1 デコーダーは使用しないでください。

スキャナーで受け付ける必要がある UR タイプ

方向UR タイプ使用場面
デバイス → アプリcrypto-psbtBTC 署名済み PSBT
デバイス → アプリcrypto-hdkey接続時の HD キーのエクスポート
デバイス → アプリcrypto-multi-accounts接続時の複数アカウントのエクスポート
デバイス → アプリeth-signatureETH 署名レスポンス
デバイス → アプリsol-signatureSOL 署名済みトランザクション
デバイス → アプリbtc-signatureBTC 署名 (PSBT 以外)
アプリ → デバイスeth-sign-requestETH 署名リクエスト
アプリ → デバイスsol-sign-requestSOL 署名リクエスト
アプリ → デバイスcrypto-psbtBTC 未署名 PSBT
デバイス → アプリtron-signatureTRON 署名レスポンス
アプリ → デバイスtron-sign-requestTRON 署名リクエスト

よくある落とし穴: UR タイプの振り分け

一部のウォレットは 許可リスト を使用して、最新の BC-UR v2 デコーダーでデコードする UR タイプを決めます (ファウンテン符号には次を使用: @ngraveio/bc-ur)。許可リストにないタイプは、まったく異なるエンコード方式を使う従来の v1 デコーダーに渡され、スキャンが進まなくなることがあります。

スキャナーが「スキャンを続けてください」と表示したまま完了しない場合, その UR タイプが v2 の許可リストに含まれているか確認してください。

onekey-app-call-device (非公開プロトコル)

この onekey-app-call-device UR タイプは OneKey 内部用プロトコル で、デバイス管理操作に使用されます (例: getMultiAccounts, verifyAddress)。サードパーティウォレットでは このタイプを実装しないでください — 予告なく変更される場合があります。代わりに標準の Keystone SDK メソッドを使用してください。

デモと使用例

注記: Air-Gap は設計上オフラインで動作します。オンラインのブラウザープレイグラウンドはありません。

最終更新日