
「シードをインポートしたら残高がゼロ」:派生パスの仕組み
新しいウォレットに 12 語または 24 語を入力すると、インポートは成功したのに残高はゼロと表示される。ひやりとする瞬間ですが、ほとんどの場合、何も失われていません。単語は正しく、新しいウォレットが別の場所を見ているだけです。
このガイドでは、その理由、コインの在りかを突き止める方法、そして SSP のシード単体では挙動が異なる理由を説明します。
1 つのシード、多数のウォレット
リカバリーフレーズそのものはアドレスを保持していません。フレーズからマスターキーが生成され、ウォレットはそのマスターキーから派生パス(鍵のツリーをたどる経路)を進んで各アドレスに到達します。経路のどこか 1 か所でも変われば、まったく別の、完全に有効で、たいていは空のアドレス群にたどり着きます。何も間違っていないので、エラーも表示されません。
パスは次のような形をしています。
m / purpose' / coin_type' / account' / change / index
purpose は規格を、coin_type はチェーンを選び、account はアカウントを区別し、change は受取用(0)とお釣り用(1)のアドレスを分け、index は 0 から順にアドレスを数えます。ツリーについて詳しくは BIP-48 の解説をご覧ください。
よくある原因
インポート後に残高がゼロになる場合、原因はほぼ必ず次のいずれかです。
アドレスの種類(ビットコイン)。 同じシードから、4 系統のビットコインアドレスが生成されます。
- BIP-44、
m/44'/0'/0':レガシーアドレス、1で始まる - BIP-49、
m/49'/0'/0':ラップド SegWit、3で始まる - BIP-84、
m/84'/0'/0':ネイティブ SegWit、bc1qで始まる - BIP-86、
m/86'/0'/0':Taproot、bc1pで始まる
以前のウォレットがネイティブ SegWit を使い、新しいウォレットの既定がレガシーなら、何も表示されません。昔の受取アドレスの先頭文字を見れば、どれを選ぶべきかがわかります。
イーサリアムの派生方式の違い。 ほとんどのイーサリアムウォレットは m/44'/60'/0'/0/i を使い、新しいアドレスごとに最後の数字を 1 つずつ増やします。一方、Ledger Live はアカウント階層を増やします:m/44'/60'/i'/0/0。どちらも最初のアドレスは一致するため、2 番目や 3 番目のアドレスを探すまで食い違いに気づかないことがよくあります。
パスフレーズ。 BIP-39 のパスフレーズ(いわゆる「25 番目の単語」)は、同じシードをまったく別のウォレットに変えます。入力を忘れたり 1 文字でも打ち間違えたりすると、警告もなく別の空のウォレットが開きます。パスフレーズの利点と注意点のガイドでは、これがこの機能の強みであると同時に危うさでもある理由を説明しています。
アカウント番号。 以前のウォレットで「アカウント 2」を使っていた場合、資金は account' = 1 の下にあり、0 ではありません。多くのウォレットは、自分で追加しない限り最初のアカウントしか復元しません。
ギャップリミット。 ウォレットはすべての番号を際限なく確認することはできないため、アドレスを順番にスキャンし、未使用のアドレスが一定数続いたところで止めます。慣例ではその数は 20 です。もし 35 番のアドレスを人に渡したことがあり、15 番から 34 番が未使用のままなら、標準的なスキャンはそこに届く前に止まってしまいます。ウォレットの設定でギャップリミットを引き上げられる場合は、引き上げることでたいてい見つからなかったコインが見つかります。
落ち着いて原因を突き止める手順
- 慌てず、何も動かさないでください。 インポート後の残高ゼロは、ほぼ必ずパスの問題であり、盗難ではありません。
- 資金があったと確実にわかっているアドレスを 1 つ探します。 古い領収書、取引所の出金記録、自分のメモなどが手がかりになります。ブロックエクスプローラーで確認し、コインがまだそこにあることを確かめましょう。
- その形式を控えます。 先頭文字(
1、3、bc1q、bc1p、0x)でアドレスの系統がわかるので、新しいウォレットで同じ系統を選びます。 - シードを作成したウォレットを確認します。 そのウォレットのドキュメントに、使っているパスが記載されています。
- アカウント番号、Ledger 方式、ギャップリミットを 1 つずつ試し、表示されたアドレスを既知のアドレスと照らし合わせます。
- 資金を「見つける」とうたうウェブサイトには、決してシードを入力しないでください。 信頼できる、オフラインでも動作するウォレットソフトだけを使いましょう。
SSP のシード単体では空のウォレットしか表示されない理由
SSP は 2/2 のマルチシグウォレットであり、これによって事情はまったく変わります。ブラウザーの SSP Wallet とスマートフォンの SSP Key は、それぞれ独自のシードを持っています。コード上では、どちらも BIP-48 に従って m/48'/coin'/0'/script' の下で鍵を派生させます。ビットコインの場合、スクリプト種別はネイティブ SegWit マルチシグ(P2WSH)なので、アカウントは m/48'/0'/0'/2' に位置します。そして各 SSP アドレスは、双方から 1 つずつ出した2 つの公開鍵を 2/2 スクリプトにまとめて作られます。EVM や Solana のボールトも同様に、両方の鍵を入力として使います。
そのため、SSP Wallet のシードを通常のシングルシグウォレットにインポートすると、SSP が一度も使ったことのない単一鍵のアドレスが派生されます。それらは空ですが、それで正常です。あなたのコインはマルチシグアドレスにあり、どのシードも単独ではそのアドレスを再構築できません。ウォレットはアドレスを知るだけでも相手側の公開鍵を必要とし、そこから送金するには両方の署名が必要です。
SSP を復元するには、SSP の中で両方を復元します。まずシードから SSP Wallet を復元し、次に SSP Key と同期して、ウォレットが鍵側の公開データを再び受け取れるようにします。失ったのがブラウザーだけなら、SSP Key を使えばシードなしで元に戻せます。詳しくはブラウザーを失ったときの SSP の復元方法をご覧ください。復元の基本では、状況ごとに何が必要かをまとめています。
アドレスのスキャンについて、SSP ならではの点を 1 つ補足します。SSP Wallet はギャップリミットによるスキャンを行いません。各チェーンには自分で追加したアドレスが保持され、チェーンごとに最大 20 個まで、番号 0 から順に作成されます。復元後、以前使っていたアドレスが見当たらない場合は、もう一度アドレスを追加すれば、同じアドレスが同じ順番で再生成されます。
率直なまとめ
シードは 1 本のアドレス一覧ではなく、ツリー全体を開く鍵です。アドレスの種類、コインのパス、パスフレーズ、アカウント番号、ギャップリミットのすべてが、ウォレットがどの枝を見るかを決めます。インポート後の残高ゼロは、たいていコインが消えたのではなく、違う枝を見ているということです。
SSP では、1 つのシードだけでウォレット全体になることはありません。資金は SSP Wallet と SSP Key の両方から作られた 2/2 アドレスにあるため、復元とは 1 つのシードを別の場所にインポートすることではなく、SSP の中で両方を復元することを意味します。


