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

テストベクター

このサイトに掲載しているすべての QR コード、署名、アドレスは、これらのファイルから取得しています。公開されている BIP39 テストフレーズを使って BitTool Signer のエンジン(iOS アプリに同梱されているものと同じ JavaScript バンドル)を実行して生成し、すべての署名を独立したライブラリで検証しています。

テストフレーズ、BIP39 パスフレーズなし
abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
公開テストデータ

これらのアドレスの鍵は誰でも導出できます。絶対に資金を送らないでください。トランザクションはすべて合成したもの(架空の前のアウトプット、参照ブロック、blockhash)で、一度もブロードキャストされていません。

ダウンロード​

ファイル内容
wallet-pairing.jsonウォレットレベルのペアリングオブジェクト、内側の CBOR、UR CBOR、全フレーム、各アカウントの最初のアドレス
coin-level-exports.jsonすべてのコインレベルエクスポート:Bitcoin の全プロファイル、マルチシグ共同署名者、EVM、3 つの Solana プリセット、プレーンなアドレスのエクスポート
signing.jsonすべての署名の往復:リクエストのフレームと CBOR、デコードしたフィールド、レスポンスのフレームと CBOR、署名、組み立て後のトランザクション
walletconnect.json7 つの実例の WalletConnect リクエストと結果
recovery-phrase.jsonパスフレーズあり・なしの BIP39 シード、フィンガープリント、最初のアドレス

署名のベクター​

名前チェーン内容
btc-p2wpkhBitcoinおつり出力ありの P2WPKH の支払い
btc-p2trBitcoinTaproot キーパスの支払い(witness UTXO のみ)
evm-eth-transferEthereumEIP-1559 の ETH 送金(data-type 4)
evm-erc20-transferEthereumUSDT の transfer
evm-erc20-approveEthereumUSDC の approve(eth_sendTransaction の例)
evm-bsc-legacyBNB Chainレガシーの EIP-155 トランザクション(data-type 1)
evm-avax-legacyAvalanche3 バイトの v を持つレガシートランザクション
evm-personal-signEVMSign-In with Ethereum のメッセージ(data-type 3)
evm-eip712-permitEthereumERC-2612 Permit(data-type 2)
tron-trx-transferTRONTRX 送金
tron-trc20-transferTRONUSDT の TRC-20 送金
tron-messageTRONTIP-191 メッセージ
sol-transferSolanaSOL 送金、レガシーメッセージ
sol-spl-transferSolanaUSDC の TransferChecked
sol-messageSolanaテキストメッセージ

ECDSA(Bitcoin SegWit v0、EVM、TRON)と Ed25519(Solana)の署名は決定的なので、同じ鍵で同じバイト列に署名すれば、実装はそれらをバイト単位で再現できるはずです。Taproot の署名は毎回新しい乱数を使うため、毎回異なります。こちらは比較ではなく検証してください。

使い方​

  1. デコーダーのテスト。 各エクスポートやレスポンスの frames を、順序をシャッフルし重複も含めてスキャナーのコードに渡し、結果をデコード済みの JSON と比較します。
  2. エンコーダーのテスト。 同じ入力から同じリクエストを作成し、UR CBOR の 16 進(urCBORHex)を比較します。ベクター内のリクエスト ID は固定(5f1e9b2c…)なので、バイト列を再現できます。
  3. 組み立てのテスト。 レスポンスの署名を使ってトランザクションを組み立て、signedTxHex、signedTransaction、signedTransactionBase64、finalTxHex のいずれかと比較します。
  4. エンドツーエンド。 テスト用 iPhone の BitTool Signer にテストフレーズをインポートし(アプリには端末のパスコード設定が必要です)、ウォレットとペアリングして、自分で作成したリクエストをスキャンします。

再生成​

ドキュメントリポジトリには、ジェネレーターとテスト済みのコードサンプルが含まれています。

cd devdocs
npm run vectors -- /path/to/bittool-signer-ios/engine # rewrites src/data/vectors.json and static/vectors/*.json
cd examples && npm install && node test.mjs /path/to/bittool-signer-ios/engine

test.mjs は、このサイトのすべてのコードサンプルをエンジンに対して実行します。サンプルが作成したリクエストをエンジンがデコード・照合・署名し、サンプル側でその結果を検証して組み立てます。

ベクターは 2026-10-18 に、SHA-256 が 6933d0d8a6f60faa8222506ac0bd7eef80eb884c9f73e31e9f354b4740f21077 のエンジンバンドルから生成されました。これは BitTool Signer 1.0.0 に同梱され、2 件の セキュリティレビュー の両方で調べられたエンジンです。

Android 版 BitTool Signer 1.0.0 には、同じエンジンの新しいビルド(SHA-256 4b371759…00fa19)が含まれています。変わったのは Bitcoin と Solana のバーンの要約だけで、QR 形式と署名は同じです。