MetaMaskの取引が保留中のまま進まない原因と対処法

MetaMaskで送金や承認を実行したあと、取引が「保留中」のまま一向に進まない場合、原因のほとんどはガス代不足か、同じアカウントで直前の取引が詰まっていることにある。まずブロックエクスプローラーで取引がネットワークに到達しているかを確認し、届いていればスピードアップ、届いていなければMetaMask側の表示不具合を疑うのが最短の解決ルートだ。

なぜ取引が保留中のまま進まないのか

なぜ取引が保留中のまま進まないのか

ガス代の競争力が下がっている

取引を送信した時点では適正だったガス代(取引手数料)が、その後の混雑で相対的に低くなり、処理の優先順位が下がってしまうケースだ。イーサリアム系のチェーンでは、手数料が高い取引から順にブロックへ取り込まれる仕組みのため、ガス代が不足すると待ち時間が一気に長引く。

要は、送信後に「相場」が上がってしまい、自分の取引が後回しになる状態だ。とくにNFTのミントや人気プロジェクトの開始直後は、数分のうちに適正なガス代が大きく変動する。

ネットワークが混雑している

イーサリアムやポリゴンなどのチェーンでは、短期間に大量の取引が集中するとブロック容量が逼迫する。手数料を高めに設定した取引ですら、処理までに時間がかかることがある。この場合、個人でできるのはガス代を引き上げるか、混雑が落ち着くのを待つかの二択になる。

同じアカウントで前の取引が詰まっている

イーサリアム系のチェーンでは、同じアカウントから送る取引に「ノンス(nonce)」という連番が付く。要は取引の整理券のようなもので、5番の取引が処理されない限り、6番以降の取引はその後ろで待ち続ける。

たとえば、ガス代を低く設定した取引が先にあり、その後に新しい取引を送信したとする。この場合、新しい取引のガス代が十分でも、前の取引が詰まっている限り処理されない。高速道路で先頭車が立ち往生すると後続車も進めない状態に似ている。

ブロックエクスプローラーで取引の状態を確認する方法

ブロックエクスプローラーで取引の状態を確認する方法

保留中の取引が動かないときは、最初にブロックエクスプローラーで取引の状態を確認する。ここで判明するのは、取引がネットワークに実際に届いているかどうかだ。届いている場合と届いていない場合では、対処法がまったく異なる。

確認手順は次のとおりだ。

  1. MetaMaskを開き、保留中の取引をクリックする
  2. 取引詳細画面で「ブロックエクスプローラーで表示」をクリックする
  3. 取引の状態を確認する

エクスプローラーに取引が表示されれば、取引はネットワークにブロードキャストされている。ガス代の見直しや、前の取引の解消で解決できる可能性が高い。一方、表示されない場合は、MetaMaskのローカルデータに問題がある可能性が高い。

前の取引が詰まっている場合の対処法

前の取引が詰まっている場合の対処法

ブロックエクスプローラーで確認したとき、若い番号のノンスを持つ取引が保留中のままなら、その取引を先に解消する必要がある。古い取引をスピードアップするか、不要ならキャンセルするのが基本だ。

たとえば、ノンス5の取引が詰まっていて、6番以降が待たされている場合、まず5番の取引をスピードアップして処理を促す。5番が不要な取引ならキャンセルして、後続の取引を先へ進める。

キャンセル操作は、元の取引と同じノンスで「0 ETHの自分への送金」を高いガス代で送信し、元の取引を実質的に無効化する仕組みだ。元の取引がまだ処理されていなければ、置き換えが成功して後続の取引が動き出す。

ガス代を上げてスピードアップする手順

ガス代を上げてスピードアップする手順

ネットワークの状況は短時間で変わる。送信時には十分だったガス代が、混雑の進行で不足するケースは多い。MetaMaskのスピードアップ機能で、同じ取引をより高い手数料で置き換えるのが有効だ。

  1. MetaMaskで保留中の取引をクリックする
  2. 取引詳細画面で「スピードアップ」をクリックする
  3. 提案された新しいガス代を確認して確定する

スピードアップは、元の取引と同じノンスでより高いガス代の取引を送信し、置き換える仕組みだ。置き換えが成功すると、元の取引はなかったものとして扱われ、新しい取引が優先的に処理される。

ガス代の目安がわからない場合は、エクスプローラーの推奨値を参考にするか、ガス代トラッカー系のサービスで現在の相場を確認するのが確実だ。

それでも直らないときに試すリセット方法

それでも直らないときに試すリセット方法

取引がブロックエクスプローラーに表示されない場合や、スピードアップしても状況が変わらない場合は、MetaMaskのローカルデータが原因の可能性がある。この場合はアカウントのリセットを検討する。

注意点として、取引がブロックエクスプローラーに表示されている間は、リセットしてもオンチェーンの取引自体は消えない。リセットはあくまでMetaMaskのローカルな取引履歴を消すだけの操作だ。エクスプローラーに取引があるなら、まずスピードアップやキャンセルを試す方が先になる。

  1. MetaMaskの設定を開く
  2. 「詳細設定」を開く
  3. 「アカウントをリセット」を実行する

リセットしても、オンチェーンの資産や秘密鍵には一切影響がない。消えるのはローカルの取引履歴だけで、リセット後にMetaMaskはブロックチェーンから最新の状態を再取得する。

よくある質問

スピードアップとキャンセルの違いは何?

スピードアップは同じ取引内容をより高いガス代で再送信する操作、キャンセルは0 ETHの自分への送金に置き換えて元の取引を無効化する操作だ。どちらも元の取引と同じノンスを使うため、置き換えが成功すれば元の取引は処理されない。取引を続行したいならスピードアップ、不要になったならキャンセルを選ぶ。

アカウントをリセットすると資産は失われる?

失われない。リセットで消えるのはローカルの取引履歴だけで、オンチェーンの資産や秘密鍵には影響しない。リセット後にMetaMaskがブロックチェーンから最新の状態を同期し直すため、残高はそのまま表示される。

保留中の取引が消えないと新しい取引はできない?

同じアカウントの場合、保留中の取引のノンスより後ろの取引は待たされる。新しい取引自体は送信できるが、処理順序が後になる。別のアカウントからの取引は影響を受けないため、急ぎなら別アカウントを使う手もある。

スピードアップを押しても取引が置き換わらないのはなぜ?

スピードアップは、元の取引と同じノンスでより高いガス代の取引を送信する仕組みだ。ネットワークが極端に混雑しているときや、元の取引がすでに処理済みの場合は置き換えが失敗することがある。その場合はブロックエクスプローラーで実際の状態を確認し、すでに処理済みなら取引は成功している。

保留中の取引が何日も放置されるとどうなる?

多くのネットワークでは、十分な時間が経過すると取引はメモリプール(未処理の取引プール)から削除され、実質的に取り消された状態になる。ただしネットワークによって挙動が異なるため、早めにスピードアップかキャンセルで対処する方が安全だ。MetaMask上では取引が「保留中」と表示され続けることがあるため、その場合はリセットで履歴を消す。

この記事のポイント

  • 保留中の取引は、ガス代不足か前の取引の詰まりが主な原因
  • ブロックエクスプローラーで取引の状態をまず確認する
  • 前の取引が詰まっているなら、それを先にスピードアップかキャンセルする
  • エクスプローラーに表示されないなら、アカウントのリセットを検討する
  • リセットしてもオンチェーンの資産は消えない
共有:

コメントする

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