ウォレット

ウォレット別イーサリアムのトランザクション詰まり解消法!

あああああ!!
半日前に送ったイーサリアムの送金がまだ完了してない!
時間かかりすぎだろ!
いったいどうなってんだ!!

最近イーサリアムのGAS代が高くてトランザクション詰まりが頻発してるよねえ。

トランザクションが1つ詰まってしまうと、後から送ったものもすべて止まってしまうからとても困るな。

困ってる人も多いし、ここらで主要なウォレット別にトランザクション詰まりの解消法をまとめて説明しておきますかね。

そいつは助かる!

「トランザクション詰まり」とは?

イーサリアムで送金やスマートコントラクトを実行しようとすると、毎回「トランザクション」と呼ばれる命令書のようなものが発行されるよ。
トランザクションが実行されるにはガス代という手数料が必要なんだけど、このガス代を安く設定しすぎるとトランザクションがいつまでたっても実行されないということがおきる。

これが「トランザクション詰まり」だな。

ガス代の相場が5GWEIなのに1GWEIで送ったりすると、高確率でトランザクション詰まりがおきるよ。

オレのトランザクションがいつまでたっても完了しないのはこれかー。

いくらのガス代で送ったのさ?

0.1GWEI!

そんなの承認されるわけないでしょ!

トランザクション詰まり解消の基本的な流れ

じゃあ、トランザクション詰まり解消の基本的な流れを説明するね。

1.Etherscanでトランザクションの状態をチェック

問題を解決するには正しい状況を知ることから。
まずはトランザクションがどうなっているか状態をチェックしよう。

Etherscanというサイトにアクセスしよう。
このサイトで自分のトランザクションを調べられるよ。
よく使うことになるサイトだからブックマークしておくといいよ。

Etherscanにアクセスしたら、検索窓に自分のイーサリアムアドレスを入力して検索しよう。

そうすると自分がこれまでイーサリアムを利用した履歴がずらっと表示されるよ。
ここで「pending」と書かれているトランザクションを探そう。

2.詰まってるトランザクションのナンス値を確認

pendingになっているトランザクションの詳細ページにアクセスしよう。
英語がずらずら並んでるけど、途中の情報はすっ飛ばして「Click to see More」をタップだ。

大切なのはこれ!
「Nonce」(ナンス)と書かれているところだよ。
ここにある番号、「ナンス値」を覚えておこう。

ナンスってなんすか!?

…………………………。

…………………………。

あれ!?
今のダジャレ、そんなにダメだった!?

ダメすぎる。
これをおもしろいと思えるなら死んだほうがいい。

そこまで!?

気を取り直して「ナンス値」について説明すると、これは自分のイーサリアムアドレスが持ってるトランザクションの通し番号のようなものだよ。

イーサリアムのトランザクションは必ずナンス値の順番通りに実行されていくんだ。
なので、100番のナンス値を持ったトランザクションが詰まってる場合、それが実行されるまで101以降のナンス値を持ったトランザクションは実行されない。

その100番のトランザクションがいつまでたっても実行されないから困ってるんだよ。

その解決方法を今から説明するよ。

3.ウォレットでガス代を上げたトランザクションを送って上書き

解決方法はかんたんにいうと、今100のナンス値のトランザクションが詰まってるなら、新たに同じ100のナンス値を持ったトランザクションを発行して、それを先に通してしまえばいい。
これで先に発行されて詰まっていたナンス値100のトランザクションが無効になって、その後101以降のトランザクションが通るようになるよ。

そんなことができるのか!

うん。
後から発行するナンス値100のトランザクションはガス代をうんと上げて、すぐ通るようにするのが大切だよ。
そこでガス代をケチるとそれも詰まっちゃうからね。

ガス代を上げると言っても、いくらまで上げるといいのかな?

それを調べるにはETH GAS STATIONというサイトを使おう。
現在のガス代の相場がわかるサイトだよ。

後から上書き用で発行するトランザクションはETH GAS STATIONの「FAST」に設定するといいよ。
FASTは「2分以内に実行される見込み」のガス代価格だ。

このサイトもブックマークしておいたほうがいいな。

ガス代の相場は常に動いているから、早く通したいトランザクションがあるときはETH GAS STATIONを見て確認しておこうね。

ガス代もわかったところで、ナンス値を上書きするトランザクションってどうやって作るの?

使ってるウォレットごとにやり方が違ったり、ウォレットによってはできなかったりするから、ウォレット別にやり方を説明するよ。

Metamaskの場合

MetamaskはPCでよく利用されてるイーサリアムウォレットだね。

トランザクション詰まりを解消する方法は2つあるよ。
「SPEED UP」の機能を使う方法と、トランザクションをキャンセルしてしまう方法だ。

「SPEED UP」を使う方法

Metamaskを起動して、詰まっているトランザクションを表示させよう。
「SPEED UP」というボタンがあるから、それをクリックだ。

ガス代を再設定する画面が表示されるよ。

「Fast」のボタンをクリックして、「保存」ボタンをクリックしよう。
これで自動的に詰まってるトランザクションと同じナンス値を持った新しいトランザクションが発行されて、ガス代の高いそちらが先に承認されることでトランザクション詰まりが解消するよ。

詰まってるトランザクションが複数あるときは、一番ナンス値が低いトランザクションからSPEED UPの機能を使うようにしてね。

トランザクションキャンセルする方法

次は詰まってるトランザクションをキャンセルして無しにしてしまう方法だよ。
Metamaskを起動して、詰まっているトランザクションを表示させよう。
「キャンセル」というボタンがあるから、それをクリックだ。

確認画面が表示されるから、「Yes, let’s try」をクリック。

なんて書いてあるの?

「キャンセルを試みますが成功は保証できません。キャンセルに成功すると上記の手数料がかかります」って書いてある。

手数料は安いからいいとして、成功は保証できないのかよ。

実際、このキャンセル機能はあんまりあてにならないんだよね。
キャンセル用に発行した新しいトランザクションがいつまでたっても実行されなくて、トランザクション詰まりが結局解消できないなんてことがある。

ダメダメだなー。

なので、私としてはさっきの「SPEED UP」か、この後説明するGO!Walletを使ってナンス値を上書きする方法をおすすめするよ。

詰まってるトランザクションはMetamaskのだよ?

Metamaskのイーサリアムアドレスを別のウォレットにインポートするんだよ。
異なるウォレットで0x123….とかの同じイーサリアムアドレスを使うことができる。

Metamaskで発行したナンス値100のトランザクションが詰まってるなら、GO!Walletに同じアドレスをインポートして、同じナンス値100のトランザクションを発行して上書きしてしまえばいいんだ。

そんなことができるんだ!

GO!Walletの場合

というわけで、GO!Walletを使ってトランザクション詰まりを解消する方法だよ。

GO!Walletへの他のウォレットからのアドレスのインポート方法は「GO!WALLETの使い方」の記事でくわしく説明してるから、まずこれを参照してアドレスをインポートしてね。
あわせて読みたい
GO!WALLETの使い方 - ポイントを貯めてブロックチェーンゲームで遊ぼう! GO!WALLETの特徴 ...

さて、アドレスのインポートが完了してGO!WAlletを立ち上げたら、「送信する」ボタンをタップだ。

送信先アドレスと金額を指定する画面が表示されるので、ここに自分が持ってる別のイーサリアムアドレスを入力しよう。
金額はごく少額でいいよ。0.00001ETHとか。

どうしてそういう設定にするんだ?

トランザクション詰まり解消目的の送金だから、すぐ通りさえすれば内容はなんでもいいんだよ。
なので送金先は自分の別アドレスにして、金額もごくわずかにしてる。

なるほどな。

アドレスと金額が入力できたら「次へ」をタップすると、送金の確認画面が表示されるよ。
ここで「詳細」をタップだ。

この画面でナンス値を設定するよ。
「Nonce」と書いてある欄をタップして、詰まってるトランザクションのと同じナンス値を入力する。
100番のが詰まってるなら、100と入力だ。

ガス代もETH GAS STATIONで調べて高めに設定しよう。
ガス代とナンス値が入力できたら「保存」をタップして、あとは普通に送信すればいい。

これで後から送った同じナンス値のトランザクションが通れば、トランザクション詰まりが解消するよ。

GO!Wallet、便利だな!

Metamaskをメインで使ってる人は特にGO!Walletにアカウントをインポートしておくと、トランザクション詰まりがおきたときに対応しやすいね。

TRUSTの場合

TRUSTもGO!Walletと同じで、直接ナンス値を指定してイーサリアムを送信できるよ。
この機能を使ってトランザクション詰まりを解消できる。
あらかじめイーサリアムアドレスはインポートしておいてね。

イーサリアムの送信画面を表示させたら、自分が持ってる別のイーサリアムアドレスを入力して、ごく少額のETHを設定しよう。
入力できたら「次へ」をタップ。

確認画面が表示されるので右上の歯車マークをタップしよう。

ここでガス代とナンス値を設定できるよ。
詰まってるトランザクションと同じナンス値を入力して、ガス代も高めに設定して「保存」をタップだ。

あとは普通に送信して、しばらくすると後から送った同じナンス値のトランザクションが実行されてトランザクション詰まりが解消されるよ。

GO!Walletとほとんど同じだな。

マイクリAppの場合

iOS版

マイクリプレイ用によく使われているマイクリAppだけど、iOSの場合、実はこのウォレットだけではトランザクション詰まりが解消できない。

えー、ダメじゃん。

アプリの審査とかいろいろ事情があるんだよ。

マイクリAppそのものではトランザクション詰まりは解消できないけど、GO!WalletにマイクリAppで使ってるアドレスをインポートすることで解決することができるよ。
手順としては以下の通り。
  1. マイクリAppのバックアップファイルを保存する
  2. バックアップファイルを利用してGO!Walletにアドレスをインポートする
  3. GO!Walletから詰まってるトランザクションと同じナンス値の新しいトランザクションを送る

マイクリAppのバックアップ方法についてはこの記事に説明があるので参照してね。

GO!WalletにマイクリAppのアカウントをインポートできたら、Etherscanでトランザクション詰まりをおこしているトランザクションのナンス値を調べよう。
それがわかったら、GO!WAlletで同じナンス値のトランザクションをガス代を高めに設定して送ればOKだよ。

マイクリAppのアカウントをインポートすればTRUSTでもいいんでしょ?

うん、TRUSTでももちろんいいよ。
ナンス値を指定してトランザクションを送るのがポイントだからね。

Android版

Android版の方はナンス値を直接指定してトランザクションを送ることができるよ。
ウォレットの画面から「送金」をタップ。

このイーサリアム送信の画面で、アドレス、金額、ナンス値、ガス代を設定できる。
全部設定して送信すれば、しばらくして新しいトランザクションが実行されて詰まりが解消されるよ。

クリスペAppの場合

マイクリAppと同じ会社が開発してるウォレットだけど、クリスペAppではiOS版もAndroid版もナンス値を指定してトランザクションを送ることができるよ。

アプリを立ち上げたら、ウォレットのページに移動して「送金」ボタンをタップしよう。

この画面でガス代とナンス値を設定できるよ。
iOS版はGO!WalletやTRUSTと違ってプラスマイナスボタンで調整する方式だけど、詰まってるトランザクションと同じナンス値に設定してトランザクションを送るというのは同じだよ。
Android版は直接ナンス値を入力できる。

この送信画面で、自分が持ってる別のイーサリアムアドレスと少額のETHを入力して、高めのガス代、ナンス値を設定したら送信しよう。
しばらくしたら後から送ったトランザクションが実行されてトランザクション詰まりが解消されるよ。

Token Pocketの場合

Token PocketはマイクリAppやクリスペAppと同じ会社が開発してるウォレットだよ。
使い方もほとんど同じだ。

iOS版とAndroid版で少し設定方法が違うけど、イーサリアムの送信画面でナンス値を設定できるよ。
この送信画面で、自分が持ってる別のイーサリアムアドレスと少額のETHを入力して、高めのガス代、ナンス値を設定したら送信しよう。
しばらくしたら後から送ったトランザクションが実行されてトランザクション詰まりが解消されるよ。

というわけで日本で使われてる主要なウォレットでのトランザクション詰まりの解消法を説明したよ。

オレの詰まってたトランザクションもようやく通ったぞ!

それはよかった。
最後にもう一度トランザクション詰まり解消のステップをまとめておくね。
  1. Etherscanで詰まってるトランザクションのナンス値を調べる
  2. ETH GAS STATIONでガス代の相場を調べる
  3. ウォレットを立ち上げて、詰まってるトランザクションと同じナンス値、ガス代高めで新しいトランザクションを送信する

まとめると意外とかんたんな気がするな。

うん。
トランザクションが詰まってるようならイライラしてないで、この方法を使ってさっさと解消してしまうのがおすすめだよ。