跳至主要内容

限制與錯誤

限制​

項目限制
每次掃描的 QR 幀數2,048(BBQr:1,295)
每幀字元數4,300
每個工作階段保留的掃描文字1 MiB
解碼後的酬載(CBOR 或 PSBT)128 KiB
CBOR 巢狀層級/項目數24 層/20,000 個項目
錢包層級配對酬載(產生端)4,096 位元組
請求 ID16 位元組(eth-sign-request:1–64)
Origin256 個字元
Bitcoin 輸入與輸出各 1–100 個
EVM calldata64 KiB
EVM 個人訊息1–8,192 位元組
EIP-71232 個類型、每個類型 64 個欄位、陣列最多 128 個項目
TRON 訊息1–8,192 位元組
Solana 訊息(sign-type 2)1–1,024 位元組的 UTF-8 文字
Solana 交易1–64 個指令、1,232 位元組的封包

常見的拒絕訊息​

當 BitTool Signer 拒絕請求時,會在掃描器或審核畫面上顯示一則簡短訊息。以下是整合者最常遇到的訊息:

訊息原因修正方式
Unsupported signing UR typeUR 類型不是 crypto-psbt、psbt、eth-sign-request、sol-sign-request、tron-sign-request 之一使用公開 registry 中的類型;配對 QR Code 無法用於簽名
Unsupported signing request fieldmap 鍵超出 1–7(ETH)或 1–6(SOL/TRON)的範圍移除自訂欄位
Invalid request UUID tag / requestId has invalid length請求 ID 未以標籤 37 包裝,或在 SOL/TRON 中不是 16 位元組37(16 random bytes)
Signing path must be concrete含有 * 萬用字元、空的子節點,或索引 ≥ 231傳送完整的葉節點路徑,並附上 true/false 強化旗標
Transaction data type does not match payloaddata-type 1 搭配型別化交易,或 data-type 4 搭配 legacy RLPlegacy RLP 使用 1,0x01/0x02 封裝使用 4
Unprotected or missing-chain-ID EVM transactions are refused沒有 EIP-155 chain ID 的 legacy 交易帶入 chain ID 進行序列化(v = chainId,r = s = 0)
Chain ID does not match the signing request交易、鍵 4 和/或 EIP-712 domain 不一致讓所有 chain ID 保持一致
Unsupported networkchain ID 不在支援的八個 EVM 網路中,或為非主網請求使用支援的網路
Typed message has extra unsigned or missing fieldsmessage 欄位與宣告的類型不同只傳送與宣告完全相同的欄位
Use strings for large typed integersEIP-712 資料中有大於 253 的 JSON 數字將它編碼為十進位字串
Full previous transactions (nonWitnessUtxo) are required …SegWit v0 或 legacy 輸入沒有 nonWitnessUtxo加入完整的前一筆交易
Only SIGHASH_ALL or Taproot SIGHASH_DEFAULT is accepted某個輸入使用了其他 sighash 類型使用 SIGHASH_ALL
No unsigned input belongs to this wallet …沒有任何輸入帶有此錢包金鑰的 bip32Derivation加入具有正確指紋與路徑的衍生資料
Exactly one TRON contract is supported per transactionraw_data.contract 有 0 個或多個項目每筆交易只放一個合約
TRON contract calls require an explicit fee limitTriggerSmartContract 沒有 fee_limit設定 fee_limit
Invalid TRON timestamp or expiration缺少 timestamp,或 expiration ≤ timestamp使用你的節點提供的值
Address lookup tables require independently trusted account data …使用 lookup table 的 v0 Solana 訊息以靜態帳戶金鑰編譯
This wallet is not a required signer in the transaction鍵 4 不在訊息的必要簽名者之中使用必須簽名的帳戶
Solana message prefix could represent a transaction header對看起來像交易的位元組使用 sign-type 2交易請使用 sign-type 1
Mixed UR fountain sessions / Multiple unrelated QR payloads一次掃描中混入了兩個不同 QR Code 的幀一次只顯示一個請求

錯誤文字只來自引擎自身的檢查。非預期的例外會以通用錯誤回報,因此惡意酬載無法將文字注入簽名器的介面。

比對結果​

在要求輸入密碼之前,請求會先與手機上的錢包進行比對。只有 ready 狀態可以簽名:

狀態意義
ready恰好有一個錢包持有該金鑰;簽名工作已確定
noMatch這支手機上沒有任何錢包具有所請求的金鑰(指紋或路徑錯誤,或錢包尚未匯入)
missingSigner請求沒有指明應由哪把金鑰簽名(沒有衍生資料,也沒有地址)
ambiguous有多個錢包符合,例如同一組助記詞匯入了兩次
setupRequired某個錢包的公開資料需要重建(輸入一次密碼)
invalid請求的結構無效