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

上限とエラー

上限​

対象上限
1 回のスキャンあたりの 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)UTF-8 テキストで 1〜1,024 バイト
Solana のトランザクション命令 1〜64 個、1,232 バイトのパケット

よくある拒否​

BitTool Signer はリクエストを拒否すると、スキャナーまたは確認画面に短いメッセージを表示します(アプリの表示は英語です)。統合時によく遭遇するものは次のとおりです。

メッセージ原因対処法
Unsupported signing UR typeUR 型が crypto-psbt、psbt、eth-sign-request、sol-sign-request、tron-sign-request のいずれでもない公開レジストリの型を使う。ペアリング QR コードには署名できない
Unsupported signing request fieldマップのキーが 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 payload型付きトランザクションに data-type 1、またはレガシー RLP に 4 を指定レガシー RLP には 1、0x01/0x02 エンベロープには 4
Unprotected or missing-chain-ID EVM transactions are refusedEIP-155 のチェーン ID のないレガシートランザクションチェーン ID を含めてシリアライズする(v = chainId、r = s = 0)
Chain ID does not match the signing requestトランザクション、キー 4、EIP-712 ドメインの間で値が一致しないすべてのチェーン ID を一致させる
Unsupported networkチェーン ID が対応する 8 つの EVM ネットワーク以外、またはメインネット以外のリクエスト対応ネットワーク を使う
Typed message has extra unsigned or missing fieldsmessage のフィールドが宣言された型と異なる宣言されたフィールドを過不足なく送る
Use strings for large typed integersEIP-712 データ内に 253 を超える JSON の数値がある10 進文字列としてエンコードする
Full previous transactions (nonWitnessUtxo) are required …SegWit v0 またはレガシーのインプットに 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 個または複数1 トランザクションにつき 1 コントラクト
TRON contract calls require an explicit fee limitfee_limit のない TriggerSmartContractfee_limit を設定する
Invalid TRON timestamp or expirationtimestamp がない、または expiration ≤ timestampノードから得た値を使う
Address lookup tables require independently trusted account data …ルックアップテーブルを使う 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 payloads1 回のスキャンに 2 つの異なる QR コードのフレームが混在リクエストは一度に 1 つだけ表示する

エラーメッセージは、エンジン自身のチェックからのみ生成されます。想定外の例外は汎用的なエラーとして報告されるため、悪意あるペイロードが署名デバイスの画面に任意のテキストを差し込むことはできません。

照合結果​

パスワードの入力を求める前に、リクエストは iPhone 上のウォレットと照合されます。署名できるのは ready の場合だけです。

ステータス意味
readyちょうど 1 つのウォレットが鍵を保持しており、署名タスクが確定している
noMatchこの iPhone のどのウォレットも要求された鍵を持っていない(フィンガープリントやパスの誤り、またはウォレットが未インポート)
missingSignerどの鍵で署名すべきかがリクエストに示されていない(導出情報もアドレスもない)
ambiguous該当するウォレットが複数ある(たとえば同じフレーズを 2 回インポートしている)
setupRequiredウォレットの公開データの再構築が必要(パスワードを 1 回入力)
invalidリクエストの構造が不正