Owlio
JA
← ブログ
ハウツー初級

Ethereum取引が保留中:再送信する前の確認手順

保留中という表示だけで送金を繰り返さず、取引の記録と順番を確認してから次の操作を選びます。

再送信する前に、元の取引を正しいネットワークで確認してください。 ウォレットの「保留中」は、ブロックへの取り込み待ち、先行する取引の後ろでの待機、または表示の更新遅れを意味することがあります。送金を繰り返すと、別の取引が作られ、後から実行される可能性があります。

この手順は、Ethereum Mainnetの通常のアカウント、外部所有アカウント(EOA)から送った一般的な取引が対象です。スマートアカウント、非公開の取引サービスやバンドル、ブリッジ送金、取引所からの出金には、それぞれの提供元の説明が必要です。自分が管理するアカウントから送っていない場合、送信者の取引を自分で置き換えようとしないでください。

ネットワークと完全な取引ハッシュを確認する

最初の確認は、ウォレットを接続したり署名したりせずにできます。送信したウォレットで取引の詳細を開き、次を記録します。

  1. ネットワーク: Ethereum Mainnetであることを確認します。別のチェーンでEthereum形式のアドレスを使っていても、その取引がMainnetの取引になるわけではありません。
  2. 取引ハッシュ: 宛先アドレスではなく、取引ID全体をコピーします。ウォレットのエクスプローラーへのリンクを使い、目的のサイトに移動するか確かめます。
  3. 送信者: Fromの完全なアドレスと送信に使ったアカウントを照合します。宛先と意図した操作も確認します。
  4. Nonce: 詳細で取引の順序番号を確認し、ハッシュと一緒に記録します。置き換え取引はハッシュが変わりますが、送信者とnonceは同じです。

Ethereumの取引ドキュメントでは、送信者、宛先、送金額、入力データ、nonceを別の項目として説明しています。コントラクト宛ての取引は、Toにあるアドレスへの単純な支払いとは限りません。読み解かれた詳細があれば確認し、すべての取引を単純なETH送金と考えないでください。

再試行ボタンがあっても元のハッシュを残します。変化する残高や消える通知に頼らず、同じ記録を後から確認できます。

対処を選ぶ前に状態を読む

エクスプローラーでは、状態とブロック情報を一緒に確認します。Etherscanの説明では、pendingはブロックへの取り込み待ちです。手数料の低さや混雑が待ち時間に影響することはありますが、pendingという表示だけでは原因は分かりません。

記録の表示 次に確認すること
Pending、格納先ブロックなし 置き換えを考える前に、送信者の先行する未解決nonceを確認します。
Success、ブロックあり 操作と結果を確認します。再送信すると二重送金になる可能性があります。
Failed、ブロックあり 失敗理由を読みます。取り込み済みの取引は待機や高速化で成功に変わりません。
Dropped and replaced 置き換え先のハッシュを開き、状態と操作を確認します。
ハッシュが見つからない ネットワークとハッシュ全体を再確認し、ウォレットと送信者の履歴を比べます。

失敗した取引と待機中の取引は別です。レシートの状態仕様は実行の成功と失敗を記録します。実行に失敗してもブロックに取り込まれていることがあります。ガスの説明にあるように、操作が失敗しても実行中に消費したガスは請求されます。新たな試行を承認する前に、エラーを調べてください。

ソフトウェアから確認する場合、JSON-RPCのレシート文書によると、保留中の取引にはレシートがありません。返されたレシートにはブロックと状態が含まれます。生のJSON-RPC応答では、0x1が成功、0x0が失敗を表します(数値では1と0)。レシートがないだけでは取引の所在は確定できません。提供元がそのハッシュを認識し、正しいネットワークを照会しているか確認します。

一つのエクスプローラーで見つからないことは、取引が今後実行されない証拠にはなりません。伝播や索引作成の遅れを考慮し、送信の詳細を再確認します。記録が食い違うままなら公式のウォレット窓口を使います。表示を試すために二度目の送金をしないでください。

待ち行列で最初の未解決nonceを探す

通常のアカウントの取引には順番があります。仮にnonceが42、43、44の保留中取引があり、それ以前の番号は取り込み済みだとします。これは説明用の例で、実在するアカウントの記録ではありません。最初に調べるのは42です。44の手数料を上げても、その前の欠落は解消しません。

同じネットワークで送信者の履歴を開き、ウォレットの保留中一覧と比べます。最も早い未解決nonceがまだ保留中なのか、取り込み済みなのか、置き換え先のハッシュと結び付いているのか確認します。ウォレット内の全アカウントではなく、同じ送信者について調べます。

Etherscanの置き換えの説明では、元の取引と置き換えは送信者とnonceが同じです。後の取引が実行されるには、先のnonceが取り込み済み取引で使われる必要があります。ブロックに取り込まれた失敗取引もnonceを消費します。プロトコルの規則は実行前に送信者のnonceを増やします。チェーン上で使われたnonceを置き換えようとし続けないでください。

最初の欠落が解消したら、後ろの取引も見直します。今は望まない操作が残っているかもしれません。最初の障害を解消することと、後続の全操作を承認することは別です。

待機、高速化、キャンセルを区別する

まだ保留中で操作も必要なら、待つ選択はあり得ます。すべてのEthereum取引が自動的に失敗する共通の期限はありません。現在の状態や手数料と、操作を終える必要性を比べて判断します。

ウォレットの**Speed up(高速化)**は、同じnonceとより高い手数料で置き換えを試みます。**Cancel(キャンセル)**も置き換えの試行であり、署名済みの指示をネットワークから消す操作ではありません。元の取引が先に取り込まれる可能性があります。キャンセル用の取引が取り込まれればガス代がかかり、無料で取り消せるわけではありません。

ウォレットの最新の公式説明に従います。MetaMaskのガイドは対応する操作とnonceの関係を説明しています。署名を決める前に確認画面のネットワーク、アカウント、操作、手数料を読んでください。古い画像の金額を写さず、現在の見積もりを使います。この手順は共通の手数料倍率を示すものでも、取り込みを保証するものでもありません。

新しいnonceで普通にSendを実行しても、宛先と金額が同じだけでは置き換えになりません。すでに再送したなら両方のハッシュを残し、さらに操作する前にそれぞれの状態を確かめます。

自分で手数料を払う通常の取引では、MainnetのネイティブETHを確認します。トークン残高や資産合計ではガス用の残高は分かりません。ETHとWETHの解説で違いを説明しています。

ウォレットのリセットはローカル履歴を変える

エクスプローラーでは取り込み済みなのにウォレットが保留中と表示する場合、更新するか開き直し、同じハッシュを再確認します。食い違いが続くなら、ネットワーク、公開の送信者アドレス、ハッシュ、nonceを添えて公式サポートに相談します。ローカルの履歴を変える前に記録を残してください。

MetaMaskのリセット説明は、サポートから指示があり、かつ取引がエクスプローラーに表示されない場合に限っています。履歴とnonceデータの消去は、ウォレットが持つローカル情報を削除します。送信済みの取引をキャンセルせず、アカウントのリセットはウォレット全体のリセットとも異なります。

資産合計が変わらないことは失敗の証拠ではなく、減ったことだけではどの取引が実行されたか分かりません。手数料、他の操作、データの遅れが影響します。取引記録を確認してから残高の不一致の確認手順を使ってください。新たな署名の前に、ネットワーク、送信者、元のハッシュ、nonce、置き換えを含めた確認済みの状態を説明できるようにします。

よくある質問

最初の取引が保留中でも、もう一度送金できますか?

まず元のハッシュ、ネットワーク、送信者、nonceを確認します。別のnonceで送る新たな支払いは、独立した取引として実行される可能性があります。ウォレットの置き換え機能は元のnonceを使う別の操作です。

MetaMaskの履歴を消すと保留中の取引はキャンセルされますか?

いいえ。消えるのはウォレット内の取引履歴とnonce情報であり、Ethereumに送った署名済み取引は撤回されません。MetaMaskは、公式サポートの指示があり、かつ取引がエクスプローラーに表示されない場合にのみリセットを使うよう案内しています。

成功済みのEthereum取引をキャンセルできますか?

確定済みの取引はウォレットのCancelボタンでは元に戻せません。キャンセルはまだ保留中の取引を置き換える試行で、元の取引が先に取り込まれることがあります。