ウォレット復元で残高0:復元高とギャップリミットの設定
復元後の残高0は、鍵ではなく走査開始点の誤りが多い。XMR・BTC・LTC・ZECの実測ブロック数と、古い入金を隠すBIP-44ギャップリミット、修正手順。
残高ゼロは、鍵を失ったのではなく走査設定の失敗であることが多い。 2026年11月7日10:20 UTC、Moneroのチェーンはブロック3,801,119。従来の25語シードで復元し、復元高を空欄にすると、ウォレットはブロック0から読む。380万ブロック、295,279,001,600バイト(275GiB)のチェーンDB、約14.5年分の履歴を、先週届いた出金を探すために。鍵は最初から正しい。ウォレットがどこを見ればいいか知らないだけだ。復元は一つの操作ではなく二つの設定——走査開始点(復元高またはウォレットの誕生日)と、アドレス派生を止める住所ギャップリミット——で決まる。どちらかを間違えると、残高は0、資金はオンチェーンに残る。
復元高とは何で、何ではないか。 ブロック番号であり、秘密でもシードの一部でもない。同じ語からは同じ鍵とアドレスが導かれ、高さは「どのブロックから読むか」だけを決める。Monero公式ガイドは両方向の失敗を明記する。最初の入金を含むブロックより高く設定すると全取引を検出できず残高が誤る。低く設定すると不要なブロックを走査し、初回同期が長くなる。前者は静かに起き、後者はただ遅いだけ。だから迷ったら低く、決して高くしない。
Monero:25語シードに誕生日はなく、16語Polyseedにはある。 wallet2.cppでは、埋め込み誕生日を使うのはPolyseedだけ。従来シードは指定した高さから走査し、空欄なら0から。CLIとGUIはYYYY-MM-DDの日付を受けけて高さに変換するので、番号を探すより簡単だ。執筆時点の高さは3,801,119、目標120秒で1日720ブロック、1年262,800ブロック。2年前に最初のXMRが届いたウォレットを0から復元すると約525,600ブロックを読む。最初の入金の前日に設定すれば720ブロックで済む。
数字の選び方。 ブロックエクスプローラでそのウォレットのいずれかのアドレスへの最初の入金を見つけ、ブロック高を読む。そこから余裕を引く。1日分のブロックはBitcoin 144、Monero 720、Litecoin 576、Zcash 1,152(Zcashは75秒目標)。Moneroで1,000ブロックの余裕は約33時間。ウォレット作成時に高さと日付の両方を記録する。日付だけでも互換ウォレットが変換する。古いウォレットファイルやキャッシュが残っているなら、消す前に高さを書き出す。月しか覚えていなければ数週間前に丸める。余分な走査は、入金を見落とすより安い。 (ZcashとMonero 2026比較)
BitcoinとLitecoinにはギャップリミットもある。 BIP-44は外部アドレスチェーンを走査し、未使用アドレスが20連続したら、その先はないとみなして止まる。各アドレスで受金すればカウンタはリセットされるので、1スワップごとに新しいアドレスを使い、実際に受金する限り安全だ。危険なのは先に大量生成する場合。将来のスワップ用に25個の受取アドレスを作り、25番目だけを使い、シードから復元すると、ウォレットは20番で止まり残高0を表示することがある。資金はオンチェーンだが、復元が派生しなかったパスにある。直し方は再インストールではなく、ギャップリミットを上げて再走査。Electrumには`getminacceptablegap`(既知の全アドレスを発見する最小値)と`changegaplimit`(確認フラグ付きで変更)がある。
Zcashは高さではなく誕生日を使う。 zcashdは最も早い鍵作成時刻からウォレット誕生日を導き、再走査では誕生日から時間窓を引いた時刻より古いブロックを飛ばす(wallet.cpp)。軽量ウォレットは誕生日の高さを尋ねる。同じ規則だ。高すぎれば古いnoteを隠し、低すぎれば全チェーンを読む。Zcashは75秒目標なので1日1,152ブロック、1年420,480ブロック——同じ1年でBitcoinの8倍以上のブロック数。シールド取引でも走査は省略できない。ウォレットはnoteを見つけるためにブロックを読む必要がある。 (ZcashとMonero 2026比較)
アカウント型のチェーンでは、高さが派生パスに置き換わる。 EVMウォレットはチェーンを走査せず、m/44'/60'/0'/0/0とアカウント索引からアドレスを導く。パスや索引が違えばアドレス集合が変わり、シードが正しくても復元先が空に見える。Solanaはウォレットごとにパス規約が異なるため、別のウォレットに復元するとアドレスが一致しないことがある。資金を動かす前に、復元したウォレットの最初の受取アドレスを、実際に使ったアドレスと比べる。違うなら残高ではなくパスと索引を疑う。 (SOL to XMR guide)
復元を信じる前の六つの確認。 一、高さまたは誕生日と作成日をシードと一緒に記録する。秘密ではないが、失うと走査時間を失う。二、低く、高くしない。Moneroのガイドは高すぎると静かに取引を逃すと明記する。三、既知のアドレスを一文字ずつ比較する。残高だけを見ない。四、入金前に予備機で復元を練習する。五、UTXOチェーンでアドレスを先に生成したならギャップリミットを確認。Electrumの`getminacceptablegap`が直接の検査。六、同期後に高さを変えたら再走査。フィールドを変えるだけでは古いブロックを読み直さない。よくある誤りは、古いウォレットに今日の高さを入れる、従来シードで空欄にする、BIP-39の12/24語をMoneroウォレットに復元する、seed offset passphraseを忘れる、取引所の入金アドレスを出金先や返金先にする——そのアドレスはあなたのものではない。
結び:鍵は変わっていない。 スワップの出金は、シードから派生したアドレスへの出力にすぎない。だから何年後でも同じ語で見つけられる。そして復元高とギャップリミットが、復元したウォレットにそれが見えるかを決める。執筆時点(2026年11月7日10:20 UTC)、1,000 USDT-TRC20は1.610578 XMR(2ルート、150bps優位)、0.01 BTCは1.223795 XMR(1 BTC=122.3795 XMR)、カタログは438資産・65ネットワーク、うち6種は追加IDが必要。相場は動く、ライブ見積が正。復元設定は動かない——ウォレット作成時に書き留めること。 (XMR→USDT 出口ルート)