テストベクター
このサイトに掲載しているすべての QR コード、署名、アドレスは、これらのファイルから取得しています。公開されている BIP39 テストフレーズを使って BitTool Signer のエンジン(iOS アプリに同梱されているものと同じ JavaScript バンドル)を実行して生成し、すべての署名を独立したライブラリで検証しています。
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.json | 7 つの実例の WalletConnect リクエストと結果 |
recovery-phrase.json | パスフレーズあり・なしの BIP39 シード、フィンガープリント、最初のアドレス |
署名のベクター
| 名前 | チェーン | 内容 |
|---|---|---|
btc-p2wpkh | Bitcoin | おつり出力ありの P2WPKH の支払い |
btc-p2tr | Bitcoin | Taproot キーパスの支払い(witness UTXO のみ) |
evm-eth-transfer | Ethereum | EIP-1559 の ETH 送金(data-type 4) |
evm-erc20-transfer | Ethereum | USDT の transfer |
evm-erc20-approve | Ethereum | USDC の approve(eth_sendTransaction の例) |
evm-bsc-legacy | BNB Chain | レガシーの EIP-155 トランザクション(data-type 1) |
evm-avax-legacy | Avalanche | 3 バイトの v を持つレガシートランザクション |
evm-personal-sign | EVM | Sign-In with Ethereum のメッセージ(data-type 3) |
evm-eip712-permit | Ethereum | ERC-2612 Permit(data-type 2) |
tron-trx-transfer | TRON | TRX 送金 |
tron-trc20-transfer | TRON | USDT の TRC-20 送金 |
tron-message | TRON | TIP-191 メッセージ |
sol-transfer | Solana | SOL 送金、レガシーメッセージ |
sol-spl-transfer | Solana | USDC の TransferChecked |
sol-message | Solana | テキストメッセージ |
ECDSA(Bitcoin SegWit v0、EVM、TRON)と Ed25519(Solana)の署名は決定的なので、同じ鍵で同じバイト列に署名すれば、実装はそれらをバイト単位で再現できるはずです。Taproot の署名は毎回新しい乱数を使うため、毎回異なります。こちらは比較ではなく検証してください。
使い方
- デコーダーのテスト。 各エクスポートやレスポンスの
framesを、順序をシャッフルし重複も含めてスキャナーのコードに渡し、結果をデコード済みの JSON と比較します。 - エンコーダーのテスト。 同じ入力から同じリクエストを作成し、UR CBOR の 16 進(
urCBORHex)を比較します。ベクター内のリクエスト ID は固定(5f1e9b2c…)なので、バイト列を再現できます。 - 組み立てのテスト。 レスポンスの署名を使ってトランザクションを組み立て、
signedTxHex、signedTransaction、signedTransactionBase64、finalTxHexのいずれかと比較します。 - エンドツーエンド。 テスト用 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 形式と署名は同じです。