MetaMaskでスワップした後に残高が更新されない場合、原因のほとんどはトークンがウォレットに追加されていない表示設定の問題だ。取引がブロックチェーン上で成功しているなら、資金は失われておらず、手動でトークンを追加すれば残高はすぐに表示される。
なぜMetaMaskに残高が表示されないのか

MetaMaskはウォレットアドレスに紐づいた残高を表示するが、すべてのトークンを自動で表示するわけではない。特にUSDTのようなERC-20トークンは、ウォレットに手動で追加するまで一覧に現れない。
スワップを実行すると、スワップ元のトークンが減り、スワップ先のトークンが増える。この時、両方のトークンがMetaMaskの表示対象に入っていないと、取引自体は成功していても残高の変化が画面に反映されない。
要は、ブロックチェーン上では正しく処理されているのに、MetaMaskが「どのトークンを表示すべきか知らない」状態ということだ。表示設定を修正すれば残高はすぐに見えるようになる。
Etherscanでトランザクションの成功を確認する

まずは取引が本当に成功しているかをブロックチェーンエクスプローラーで確認する。EtherscanはEthereumの取引履歴を誰でも閲覧できるサイトだ。
MetaMaskのウォレットアドレスをコピーして、Etherscanの検索欄に貼り付ける。するとそのアドレスの全取引履歴が表示される。「ERC-20 Token Txns」というタブを開くと、トークンの送受信履歴が確認できる。
最新の取引が「Success」と表示されていれば、ブロックチェーン上では取引が完了している。この場合、資金はウォレットアドレスに紐づいており、MetaMask側の表示の問題だと判断できる。
もし取引が「Pending」や「Failed」になっている場合は、別の問題がある。Pendingならネットワークの混雑で処理待ち、Failedならスワップが失敗している。この場合は取引の状況に応じた対応が必要になる。
トークンをMetaMaskに手動で追加する手順

残高が表示されない最大の原因は、トークンがMetaMaskに追加されていないことだ。USDTはEthereum上のERC-20トークンなので、手動でコントラクトアドレスを登録する。
手順は次の通りだ。
- MetaMaskを開き、ネットワークがEthereumメインネットになっているか確認する
- 「トークンを追加」を選択する
- 「カスタムトークン」を選ぶ
- トークンコントラクトアドレスを貼り付ける
- シンボルと小数点以下桁数が自動入力されるのを確認する
- 「追加」を押す
USDTのEthereum上のコントラクトアドレスは以下だ。
0xdAC17F958D2ee523a2206206994597C13D831ec7スワップ先のトークンも同じ手順で追加する。スワップ先トークンのコントラクトアドレスは、Etherscanの取引詳細ページで確認できる。取引詳細の「Tokens Transferred」欄に、スワップ元とスワップ先のトークンコントラクトアドレスが表示されている。
トークンコントラクトアドレスは必ず公式情報で確認する。偽のアドレスを追加すると、偽トークンが表示される恐れがある。
ネットワークの切り替えを確認する

MetaMaskは複数のブロックチェーンネットワークに対応している。Ethereum以外にもPolygonやArbitrumなどを切り替えて使える。
スワップをPolygon上で実行したのにMetaMaskのネットワークがEthereumメインネットのままになっていると、Polygon上のトークン残高は表示されない。逆も同じだ。
MetaMaskの画面左上または上部に表示されているネットワーク名を確認する。Etherscanで取引がどのネットワークに記録されたかも確認できる。Ethereum上の取引ならEtherscan、PolygonならPolygonScan、ArbitrumならArbiscanで検索する。
USDTは複数のチェーンに存在する。Ethereum上のUSDTとPolygon上のUSDTは別のトークンだ。それぞれのネットワークで別々のコントラクトアドレスを持つ。スワップしたネットワークと同じネットワークに切り替えてから、トークンを追加する必要がある。
それでも解決しないときの追加チェック

トークンを追加し、ネットワークを正しく設定しても残高が表示されない場合は、以下の点を確認する。
「スパムトークンとして非表示になっていないか」を確認する。MetaMaskには怪しいトークンを自動で非表示にする機能がある。設定画面からトークンの非表示リストを確認し、該当トークンがあれば表示をオンに戻す。
「正しいウォレットアドレスを見ているか」も確認する。複数のウォレットを使っていると、送金先と今見ているアドレスが違っていることがある。MetaMaskのアドレスバーで、Etherscanで確認したアドレスと一致するか照合する。
「RPC接続が遅延していないか」も可能性としてある。MetaMaskはイーサリアムネットワークと通信して残高を取得する。この通信窓口をRPC(リモートプロシージャコール)と呼ぶ。RPCノードが混雑していると、残高の反映が遅れることがある。MetaMaskの設定から別のRPCプロバイダに切り替えると解消することがある。ただし、通常は数分で解消するため、まずは時間を置いて再読み込みする。
最後に、フィッシングサイトで偽のスワップを実行していないかも確認する。Etherscanでスワップ先のトークンが予期しないアドレスに送られていないか、取引履歴を注意深く確認する。怪しいサイトでスワップを実行した場合は、ウォレットの秘密鍵が漏れている可能性も考慮する。
よくある質問
トークンを追加すれば残高は自動で戻るのか
トークンがブロックチェーン上に存在していれば、ウォレットに追加した瞬間に残高が表示される。追加したのに残高がゼロの場合は、ネットワークが違うか、別のアドレスを確認している可能性が高い。
EtherscanでSuccessでもトークンが届かないことはあるのか
Successの取引はブロックチェーン上で確定している。資金はウォレットアドレスに紐づいているため、正しく表示設定をすれば見えるようになる。ただし、悪意のあるトークンコントラクトで、見かけ上残高が出ない細工がされているケースはある。信頼できるトークンかどうかを必ず確認する。
MetaMaskは自動でトークンを検出しないのか
MetaMaskにはトークン自動検出機能があるが、すべてのトークンを検出できるわけではない。特にスワップ先のマイナーなトークンや新規発行トークンは、手動で追加する必要がある。USDTのような主要トークンでも、ネットワークによっては自動検出されないことがある。
スワップ先トークンのコントラクトアドレスはどこで調べられるのか
Etherscanの取引詳細ページにある「Tokens Transferred」欄で確認できる。また、スワップを実行したDEXの取引履歴にも表示されることが多い。トークン名だけでなく、コントラクトアドレスを必ず照合する。
残高が表示されないまま放置しても問題ないか
資金自体はブロックチェーン上に安全に存在するため、急いでいる必要はない。ただし、表示されないまま別の取引をすると、意図しない操作につながる恐れがある。先にトークンを追加して残高を確認しておく。
この記事のポイント
- MetaMaskでスワップ後の残高が表示されない原因の大半はトークン未追加だ
- Etherscanで取引の成功を確認し、資金がブロックチェーン上にあることを確かめる
- USDTやスワップ先トークンを手動で追加すれば残高はすぐ表示される
- ネットワークの切り替え忘れも残高非表示の原因になる
- コントラクトアドレスは公式情報で必ず確認する

「エミリーズ・クリプト・インサイダー」のリサーチ担当として、暗号資産の現場で日々生まれる疑問や悩みを丹念に追いかける。
Reddit や海外フォーラムに寄せられる声を読み解き、「初心者がつまずきやすいポイント」「経験者でも見落としがちな落とし穴
」を一つずつ記事として整理している。
専門的な話を誰もが理解できる言葉に置き換えることに全力を注ぐ。情報の正確さと読みやすさの両立を信条としている。
