测试向量
本站的每个二维码、签名和地址都来自这些文件。它们是使用公开的 BIP39 测试助记词运行 BitTool Signer 引擎(与 iOS App 内置的 JavaScript 包完全相同)生成的,而且每个签名都已用独立的库验证过。
测试助记词,无 BIP39 passphrase
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、三个 Solana 预设,以及纯地址导出 |
signing.json | 所有签名往返:请求帧和 CBOR、解码后的字段、响应帧和 CBOR、签名,以及组装好的交易 |
walletconnect.json | 七个完整示例的 WalletConnect 请求与结果 |
recovery-phrase.json | BIP39 种子、指纹和第一个地址,包括带与不带 passphrase 两种情况 |
签名向量
| 名称 | 链 | 内容 |
|---|---|---|
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 | Legacy EIP-155 交易(data-type 1) |
evm-avax-legacy | Avalanche | 带三字节 v 的 legacy 交易 |
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 转账,legacy 消息 |
sol-spl-transfer | Solana | USDC TransferChecked |
sol-message | Solana | 文本消息 |
ECDSA(Bitcoin SegWit v0、EVM、TRON)和 Ed25519(Solana)签名都是确定性的,因此用同一个密钥对相同的字节签名时,你的实现应能逐字节重现这些签名。Taproot 签名使用新的随机数,每次都不同:请验证签名,而不是比较字节。
使用方法
- 解码器测试。将每个导出或响应的
frames打乱顺序、加入重复帧后输入你的扫描器代码,再将结果与解码后的 JSON 进行比较。 - 编码器测试。用相同的输入构建相同的请求,并比较 UR CBOR 十六进制(
urCBORHex)。向量中的请求 ID 是固定的(5f1e9b2c…),因此字节可以复现。 - 组装测试。取响应中的签名并组装交易;与
signedTxHex、signedTransaction、signedTransactionBase64或finalTxHex进行比较。 - 端到端测试。在测试用的 iPhone 上将测试助记词导入 BitTool Signer(App 要求设备设置锁屏密码),配对你的钱包,然后扫描你自己的请求。
重新生成
文档仓库中包含生成器和经过测试的代码示例:
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 随附发布、两次安全评审都检查过的那个引擎。
BitTool Signer Android 1.0.0 随附同一引擎的较新构建(SHA-256 4b371759…00fa19)。它只改变了 Bitcoin 和 Solana 销毁的摘要方式;二维码格式和签名都相同。