본문으로 건너뛰기

테스트 벡터

이 사이트의 모든 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, Solana 프리셋 3개, 일반 주소 내보내기
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 ChainLegacy EIP-155 트랜잭션(data-type 1)
evm-avax-legacyAvalanche3바이트 v를 갖는 legacy 트랜잭션
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 전송, legacy 메시지
sol-spl-transferSolanaUSDC TransferChecked
sol-messageSolana텍스트 메시지

ECDSA(Bitcoin SegWit v0, EVM, TRON)와 Ed25519(Solana) 서명은 결정적이므로, 같은 키로 같은 바이트에 서명하면 여러분의 구현도 바이트 단위로 같은 결과를 내야 합니다. Taproot 서명은 매번 새 난수를 사용하므로 결과가 달라집니다. 이 경우에는 서명을 검증하세요.

사용 방법​

  1. 디코더 테스트. 각 내보내기나 응답의 frames를 순서를 섞고 중복을 넣어 스캐너 코드에 입력하고, 결과를 디코딩된 JSON과 비교합니다.
  2. 인코더 테스트. 같은 입력으로 같은 요청을 만들어 UR CBOR hex(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에 포함되어 출시되었으며, 두 보안 검토에서 모두 검토한 엔진입니다.

Android용 BitTool Signer 1.0.0에는 같은 엔진의 더 새로운 빌드(SHA-256 4b371759…00fa19)가 포함되어 있습니다. 바뀐 것은 Bitcoin과 Solana 소각의 요약 방식뿐이며, QR 형식과 서명은 같습니다.