BitTool Signer 開発者ドキュメント
BitTool Signer は、使っていない iPhone や Android スマートフォンをオフラインの署名デバイスに変えます。鍵がそのスマートフォンから出ることはありません。あなたのウォレットとのやり取りは QR コード だけで、ネットワーク通信は一切ありません。このドキュメントでは、そのやり取りをバイト単位で、背後にあるセキュリティ設計とともに説明し、あなたのウォレットに BitTool Signer を組み込めるようにします。
仕組み
ウォレットはオンラインのまま、ネットワークが必要な処理をすべて担います。残高、手数料、nonce の取得、トランザクションの作成、ブロードキャストなどです。BitTool Signer はオフラインのまま、秘密鍵が必要なただ 1 つの処理を担います。リクエストを検査し、署名することです。
- 1ペアリング QR コードを表示します(公開鍵のみ)。
- ◀ ur:bytes · ur:crypto-account · ur:crypto-hdkey …
- 2アカウントをウォッチオンリーウォレットとしてインポートし、残高を表示します。
- 3未署名のトランザクションまたはメッセージを作成し、QR コードとして表示します。
- ur:crypto-psbt · ur:eth-sign-request · ur:tron-sign-request · ur:sol-sign-request ▶
- 4デコードしてすべてのフィールドを表示し、ウォレットパスワードを求めて署名します。
- ◀ ur:crypto-psbt · ur:eth-signature · ur:tron-signature · ur:sol-signature
- 5署名を検証し、トランザクションを組み立ててブロードキャストします。
やり取りされるデータはすべて公開情報です。拡張公開鍵、アドレス、未署名トランザクション、署名だけが行き来します。ペアリング QR コードにリカバリーフレーズ、シード、秘密鍵が含まれることはありません。
統合できる機能
対応チェーンとフォーマット
| チェーン | ペアリング(コインレベル) | 署名リクエスト → レスポンス | 署名対象 |
|---|---|---|---|
| Bitcoin | ur:crypto-account(アカウント xpub) | ur:crypto-psbt → ur:crypto-psbt(ur:psbt、BBQr、Base64 にも対応) | PSBT v0/v2:P2WPKH、P2TR、P2SH-P2WPKH、P2PKH、マルチシグ |
| EVM | ur:crypto-hdkey(アカウント xpub) | ur:eth-sign-request → ur:eth-signature | Legacy、EIP-2930、EIP-1559 トランザクション、personal_sign、EIP-712 |
| TRON | アドレスのみ | ur:tron-sign-request → ur:tron-signature | raw_data トランザクション、TIP-191 メッセージ |
| Solana | ur:crypto-multi-accounts | ur:sol-sign-request → ur:sol-signature | Legacy および 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 まで。