メインコンテンツまでスキップ

BitTool Signer 開発者ドキュメント

ウォレット開発者向け

BitTool Signer は、使っていない iPhone や Android スマートフォンをオフラインの署名デバイスに変えます。鍵がそのスマートフォンから出ることはありません。あなたのウォレットとのやり取りは QR コード だけで、ネットワーク通信は一切ありません。このドキュメントでは、そのやり取りをバイト単位で、背後にあるセキュリティ設計とともに説明し、あなたのウォレットに BitTool Signer を組み込めるようにします。

仕組み​

ウォレットはオンラインのまま、ネットワークが必要な処理をすべて担います。残高、手数料、nonce の取得、トランザクションの作成、ブロードキャストなどです。BitTool Signer はオフラインのまま、秘密鍵が必要なただ 1 つの処理を担います。リクエストを検査し、署名することです。

ウォレットアプリオンライン、ウォッチオンリー
BitTool Signerオフライン、鍵を保持
  1. 1ペアリング QR コードを表示します(公開鍵のみ)。
  2. ◀ ur:bytes · ur:crypto-account · ur:crypto-hdkey …
  3. 2アカウントをウォッチオンリーウォレットとしてインポートし、残高を表示します。
  4. 3未署名のトランザクションまたはメッセージを作成し、QR コードとして表示します。
  5. ur:crypto-psbt · ur:eth-sign-request · ur:tron-sign-request · ur:sol-sign-request ▶
  6. 4デコードしてすべてのフィールドを表示し、ウォレットパスワードを求めて署名します。
  7. ◀ ur:crypto-psbt · ur:eth-signature · ur:tron-signature · ur:sol-signature
  8. 5署名を検証し、トランザクションを組み立ててブロードキャストします。

やり取りされるデータはすべて公開情報です。拡張公開鍵、アドレス、未署名トランザクション、署名だけが行き来します。ペアリング QR コードにリカバリーフレーズ、シード、秘密鍵が含まれることはありません。

統合できる機能​

対応チェーンとフォーマット​

チェーンペアリング(コインレベル)署名リクエスト → レスポンス署名対象
Bitcoinur:crypto-account(アカウント xpub)ur:crypto-psbt → ur:crypto-psbt(ur:psbt、BBQr、Base64 にも対応)PSBT v0/v2:P2WPKH、P2TR、P2SH-P2WPKH、P2PKH、マルチシグ
EVMur:crypto-hdkey(アカウント xpub)ur:eth-sign-request → ur:eth-signatureLegacy、EIP-2930、EIP-1559 トランザクション、personal_sign、EIP-712
TRONアドレスのみur:tron-sign-request → ur:tron-signatureraw_data トランザクション、TIP-191 メッセージ
Solanaur:crypto-multi-accountsur:sol-sign-request → ur:sol-signatureLegacy および v0 メッセージ(ルックアップテーブルなし)、テキストメッセージ

EVM の署名は 8 つのネットワークに対応しています。Ethereum (1)、BNB Chain (56)、Arbitrum One (42161)、Base (8453)、OP Mainnet (10)、Polygon PoS (137)、Gnosis (100)、Avalanche C-Chain (43114) です。

トランスポートには BC-UR を使います。CBOR を Bytewords でエンコードしたもので、1 つの QR コードに収まらない場合はアニメーションする「ファウンテン」フレームに分割されます。リクエストとレスポンスの型は公開されている Keystone UR レジストリのものなので、QR 方式のハードウェア署名デバイスにすでに対応しているウォレットなら、新たに書くコードはごくわずかです。BitTool 独自のフォーマットは、任意で使える ウォレットレベルのペアリング QR だけです。これを使うと、1 回のスキャンで 4 チェーンすべてをインポートできます。

対象読者​

16 進数、Base58、JSON の扱いに慣れており、拡張公開鍵(xpub)と導出パスが何かを理解していることを前提とします。各ページには実際のバイト列を使った完全な例を掲載しています。これらは公開テストフレーズ abandon … about から BitTool Signer のエンジンで生成したものです。まずこれらの例に合わせて実装し、その後アプリでテストしてください。

テスト用データ専用

このサイトに掲載しているテストフレーズ、アドレス、トランザクションは公開されています。誰でもそこから資金を引き出せます。絶対に資金を送らないでください。

ソースコード​

BitTool Signer はどちらのプラットフォームでもオープンソースです:bittool-signer-ios、bittool-signer-android。両アプリは同じエンジンで動くため、このサイトの QR 形式と署名はどちらにも当てはまります。QR プロトコルのコードは engine/protocols.js に、チェーンごとのパーサーと署名処理は engine/src/ にあります。両プラットフォームのバージョン 1.0.0 に対する AI 支援のセキュリティレビューを全文公開しています。組み込みに関するご質問は support@bittool.com まで。