MetaMaskでdAppに接続するアカウントを切り替える方法

MetaMaskで複数のアカウントを作成しても、特定のDeFiサイトやdAppに接続すると常に同じアドレスが選択されてしまう場合、原因はサイト側が以前許可した接続情報を保持していることにある。ブラウザ側で接続を一旦切断し、改めて目的のアカウントで接続し直すことで解決できる。

なぜdAppは特定のウォレットにしか繋がらないのか

なぜdAppは特定のウォレットにしか繋がらないのか

多くのDeFiサイトやdAppは、ユーザーが一度ウォレット接続を許可すると、その情報をブラウザのローカルストレージやセッションデータとして保存する。次回以降、MetaMask側で別のアカウントを表示していても、サイト側は前回許可されたアドレスを自動的に呼び出して接続を確立してしまう。これが「どのアカウントを選んでも同じアドレスに接続される」主な仕組みだ。

MetaMaskは複数の「アカウント」を同じシークレットリカバリーフレーズ(秘密鍵のバックアップフレーズ)から派生させて管理する。ウォレット内でアカウント3を表示していても、それはMetaMaskのUI上で表示を切り替えているだけであり、ブラウザ内のサイト接続情報が自動的に追随するわけではない。

ただし、質問者のようにアカウントごとに異なるシークレットリカバリーフレーズで管理している場合、根本的な原因は同じでも解決手順に追加のステップが必要になる点に注意が必要だ。

接続するアカウントを切り替える具体的な手順

接続するアカウントを切り替える具体的な手順

サイト側でウォレット接続を切断する

まず、問題のDeFiサイトやdAppにアクセスし、現在接続されているウォレットを明示的に切断する。多くのサイトでは画面右上やサイドバーにウォレットアドレスが表示されており、クリックすると「切断(Disconnect)」や「ログアウト」の選択肢が現れる。

サイト側に切断ボタンが見当たらない場合は、MetaMaskの拡張機能自体から接続を解除できる。手順は以下のとおりだ。

  1. MetaMask拡張機能を開く
  2. 右上の3点メニューをクリックし「接続済みサイト」を選択する
  3. 該当サイトの横にあるゴミ箱アイコンをクリックして手動で切断する

目的のアカウントをMetaMask上で事前に選択する

続いて、MetaMaskのアカウント一覧から、接続したい対象のアカウントをあらかじめ選択しておく。アカウント一覧は拡張機能上部のアカウント名が表示された領域をクリックすることで展開できる。ここで接続したいアカウントを選び、その状態を維持したままサイトに戻る。

改めてサイト側でウォレット接続を実行する

サイトで「ウォレットを接続」や「ログイン」などをクリックし、MetaMaskのポップアップが表示されたら、表示されているアカウントが意図したものであることを確認してから「接続」を承認する。ここで表示されるアカウントが目的のものと異なる場合は、MetaMaskのポップアップ内でもアカウントを切り替えられる。

アカウントごとにシークレットリカバリーフレーズが異なる場合の注意

質問者のように、各アカウントが独立したシークレットリカバリーフレーズで作成されている場合は、MetaMaskの「アカウントを切り替える」だけでは内部的に別のウォレットとして認識される。この場合、拡張機能のプロファイル機能や別のブラウザプロファイルを使い、完全に独立した環境で目的のウォレットにログインし直すのが最も確実な方法だ。

どうしても切り替わらない時の最終手段

どうしても切り替わらない時の最終手段

ブラウザのキャッシュとサイトデータを消去する

サイト側に保存された接続情報が強固に残っているケースでは、ブラウザのキャッシュやサイトデータを消去するのが効果的だ。Chrome系ブラウザの場合、アドレスバー左の鍵アイコンをクリックし、「サイトの設定」から「データを消去」を実行する。これにより、当該サイトに保存された接続許可情報がリセットされ、まっさらな状態で再接続できる。

MetaMaskのアクティビティをリセットする

MetaMaskの設定メニューにある「詳細設定」から「アクティビティとノンスデータをリセット」を実行する方法もある。これは取引履歴の表示や保留中のトランザクションをクリアする機能だが、一部のサイト接続状態にも影響を与えることがある。実行前にシークレットリカバリーフレーズが安全に保管されていることを必ず確認する。

よくある質問

MetaMaskで複数のアカウントを作成する正しい方法は何か

MetaMaskでは「アカウントを作成」から追加のアカウントを作成できる。これらは全て同一のシークレットリカバリーフレーズから派生する。一方、まったく別のシークレットリカバリーフレーズで管理したい場合は、MetaMaskを一度ロックし「ウォレットのインポート」から別のフレーズを読み込むか、別のブラウザプロファイルで新規にMetaMaskをインストールする必要がある。

dAppが正しいアカウントを認識しないのはMetaMask側の問題か

多くのケースではdApp側の接続情報キャッシュが原因であり、MetaMask自体の不具合ではない。サイトがウォレット接続時に要求する権限や、過去の許可状態が強く影響する。

自分が送ったアドレスに着金しない場合の確認ポイントは

まずトランザクションが実際にブロックチェーン上で承認されているかブロックエクスプローラーで確認する。次に、受信側のウォレットが正しいネットワーク(例: Ethereumメインネット、Polygonなど)に設定されているかを確かめる。ネットワークの不一致は着金が表示されない最大の原因の一つだ。

ハードウェアウォレットを併用している場合のアカウント切り替えはどうなるか

LedgerやTrezorをMetaMaskに接続している場合、アカウントの選択肢はハードウェアウォレット側で管理されるアドレスから選ぶことになる。dAppに接続する際は、MetaMask上で該当のハードウェアウォレットアカウントを選択した状態で接続操作を進める。この構成でも、サイト側のキャッシュによるアドレス固定問題は同様に発生する。

この記事のポイント

  • dAppが特定アドレスに接続し続ける原因は、サイト側に保存された過去の接続許可情報にある
  • サイト側でウォレット接続を切断し、目的のアカウントを選んで再接続することで解決できる
  • MetaMaskの「接続済みサイト」メニューから手動切断する方法も有効
  • 異なるシークレットリカバリーフレーズのウォレットを使い分けたい場合は、ブラウザプロファイルを分けるのが最も確実
  • ブラウザのサイトデータ消去で接続情報を強制的にリセットする手段も用意されている
共有:

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)