Mempool Explorerで流動性の追加を確認する方法
この記事は仮想通貨コミュニティ、Crypto流星街によって運営されています。
こんにちは、Crypto流星街の0x_Riceです。
こちらでは文字数制限の関係でツイッターには書きづらい内容や、比較的アーカイブする価値のありそうな情報を不定期で投稿できたらいいなと思っています!
ぜひフォローしていただけると嬉しいです!
※本記事はリリース時より¥500の有料記事でしたが、Mempool Explorerのアップデートによって内容が古くなってきたため2023/10/30をもって無償公開へと切り替えさせていただきます。
これまでにご購入いただいた皆様に深く感謝いたします。
※Mempool Expolorerのアップデートにより、Ethereum Mainnet/Testnet以外のチェーンは有料プランのみとなりました。ご注意ください。
概要
いつもニッチなツールネタばっかり書いてますが、今回ははじめて魔界っぽい話題について書こうと思います。「Mempool Explorer」を使って特定のトークンに流動性が追加されたことをリアルタイムで確認する方法について紹介します。
さて、皆さん。Mempool Explorerって知ってますか?
Mempool Explorerとは、Mempool上に存在するTxについてリアルタイムで監視することのできる監視ツールです。
この例えはネットワーク機器とか扱う方にしか刺さらないですが、イメージ的にはブロックチェーン版のWireSharkみたいなもんです。
ちなみにMempoolとはメモリプールのことで、ユーザーによって送信された取引のTxが一時的に置かれるプールのことを言います。
このMempool Explorerを使うことでブロックチェーンネットワーク上に流れている膨大なTxを監視し、必要な条件に沿ってフィルタリングしていくことで特定のイベント(今回で言うと流動性の追加)を最速で見つけよう!というのが本記事の大筋になります。
Mempool Explorerの使い方
ここからはざっくりMempool Explorerの使い方を解説します。
ちなみに僕も達人ではないので基礎的な内容になります。詳しい人いたら教えてください!
基本GUIについて
ここではMempool Explorer(リンクはこちら)のGUIについてファンクションごとにざっくり紹介します。
アカウント作成することで作ったSubscription(プリセット的な)を保存しておいたりできます。無料で作れるので、取り急ぎまずはアカウント作っておきましょう。
ちなみに有償版だともっと色々できるみたいです。詳しくはこちらを参照。
②Create Subscription
ここからSubscriptionを作成することができます。監視対象のコントラクトアドレスを入力することで監視をスタートすることができます。
③Configurationサイドバー
ConfigurationとはSubscriptionをAPI キーに保存してプリセット化なものです。
APIごとに別々のSubscriptionを割り当てて管理したり、Webhookを吐いたりできます。
ちなみにConfigurationはネットワークごとに別々の物を作る必要があります。
④テンプレート選択
みんながよく使うであろうテンプレートがあらかじめいくつか用意されています。これらを使用することで1から作り始めるより楽にスタートできます。また既に組まれたテンプレートの中身を見ることで「何をやってるのか」を理解しやすいので、一度触ってみることをオススメします!
Mempool Explorerの基本操作
さて、GUIの解説もしたことですし、まずは基本操作を覚えてみましょう。
おそらく一番単純であると思われる、自分のウォレットのTxの監視をやってみましょう。
①Subscriotionを作成する
まずは、自分のウォレットアドレスを入力してSubscriptionを「Create」してください。
これでSubscriptionが完成しました。ちなみに左端の「・・・」メニューからSubscriotionに名前をつけられます。
ここではわかりやすいように「My Wallet」とでもしておきましょう。
②Networkを選択する。
次に自分が監視を行いたいネットワークを選択してください。
赤枠のボタンからネットワークを選べます。今回はbsc:mainnetを選択。
Listeining・・・になっていればTxを監視する準備は完了です。
③自分宛に適当なTxを流す。
あとは同じウォレットから同じウォレットへ適当なTxを流してみてください。リアルタイムで反応するはずです。
反応めっちゃ速くて草ですね。
ちなみに今のログはこんな感じ。(画像はみ出ててごめんね)
2021-08-26T04:31:12.425ZにTxがPending状態としてMempoolにあがり、
2021-08-26T04:31:16.497ZにTxがconfirmedになる様子がわかります。
更にその際のGasがいくらでーTx hashが何でーナンスが何番でーといったBSCScanで確認できるような諸々が全部リアルタイムで見れる感じです。
ちなみにログ上のHash関連はクリック可能で、クリックするとBSCScanの該当ページに遷移可能です。便利!
④フィルタリングして情報を整理する
でもぶっちゃけ全部の情報とかいらなくないですか?
ここではフィルターとセレクトの2つを使って情報を整理する方法について解説します。
まず上記の概念について。
フィルター
セレクト
フィルターは検索条件自体の指定、セレクトは表示される情報の整理に使うイメージです。
先ほど上に貼ったログをセレクトで整理したらこんな感じに。
めっちゃスッキリ!
基本の使い方は大体こんな感じで、後は応用です。
調べるの大変だったので、恐縮ながらこの先は有料記事になります!
特定のトークンの流動性追加を検知するには
さて、ここからが本番です。
さっきの基本操作をよく理解した方はもうピンときているかもしれませんが、ざっくりアウトラインをまとめると、
というフローになります。
今回はBSCでやりますのでPancake Swapを使いますが、ETHの方はUniswapだったりと読み替えてくださいますと幸いです。
なおこれには前提条件として、トークンのコントラクトアドレスが事前にわかっている必要があります。ですのでギリギリまでコントラクトアドレスが出てこないタイプのステロン/フェアロンでは使えません。
さて、では実際に設定していきましょう。
①Pancake Swap Router V2のSubscriptionを作成する。
Pancake Swap Router V2のコントラクトアドレスは以下。
0x10ed43c718714eb63d5aa57b78b54704e256024e
上記入力してSubscriptionを作成すると、Pancake Swap Router V2に関連する全てのTxが洪水のように流れ始めます。
あっという間にイベントがカンストしました。(イベントは50個まで表示可能)
これからフィルタリングを行いますが、その前に一旦セレクトを使って見たい項目をある程度絞っておきましょう。(シンプルに見辛い)
例:
僕は以下のようにセレクトを設定しています。最後まで読めばそれぞれ意味わかると思いますので一旦この通り設定してみてください!
"hash"
"contractCall.methodName"
"status"
"timeStamp"
"contractCall.params.token" ※
※場合によってtokenではなくtoken A,token Bなどの場合あり(後述します)
②フィルターを作成する 1/2 addLiquidityETH
上記から洪水の中から特定のトークンの流動性追加Txを抽出するため、フィルターを設定していきます。
なおフィルターに設定できる項目値はまじでアホほどあるので今回は関係あるパラメーターだけ紹介します。
{ "contractCall.methodName": "addLiquidityETH" }
上記のように設定してください。
なおそれぞれざっくりこんな感じのニュアンスです。
・contractCall → 関数を呼び出し
・methodName → どの関数か
・matches → マッチする
・addLiquidityETH → 流動性追加(WBNBやETHペア)
つまり、「””addLiquidityETHという関数を呼び出す””を行なったTx」を条件として定義する感じです。
※スマートコントラクト自体の知識は浅いのでざっくりですいません。
ちなみに留意点として、
addLiquidity ETHはWETH/WBNBなど基軸通貨とのペアのときに使う関数
addLiquidity はBUSDペアなどBEP20(ERC20)トークン同士のペアとのときに使う関数です。
これで「addLiquidity ETHの関数を呼び出したTx」を絞り込めます。
実際にフィルタリングして待ってみたところ、適当なトークンの流動性が追加されたようでイベントにひっかかりました。
Tx hash(リンク)を辿ってみると・・・
確かにBNBペアで流動性が追加されていることがわかります。
③フィルターを作成する 2/2 トークンコントラクト
②で流動性追加Txをフィルタリングすることができました。これに加えてコントラクトアドレスによるフィルターを追加することで、特定のコントラクトアドレスの流動性が追加されたタイミングを最速で知ることができると言うわけです。
早速フィルターを追加します。以下のように設定してください。
なお、この"token"は "addLiquidity ETH" の場合に使える関数です。
"addLiquidity" を使いたい場合は "token A"を使用してください。
token Bもあります。「token A/token B = xxx/BUSD」 みたいなイメージ。
おわりに
これでSubscriptionの設定が完了です!お疲れ様でした。あとはListeingさせながら全裸待機しておけばOKです。
スマートコントラクトの使用上、Txが送信されると実際に流動性が追加される前にPendingが発生し、その数秒後にTxが承認されますよね?
つまりPendingのTxがMempoolに上がったタイミングで直コン待機しておけば物理的にかなり有利にTxを飛ばすことができるというわけです。
皆さんの魔界ライフが少しでも快適になることを祈ります!(ハニーポットにはくれぐれも気をつけて・・・)
最後までお付き合いいただきましてありがとうございました!
コミュニティ紹介
Crypto流星街(Crypto Meteor City)は、仮想通貨コミュニティおよび投資グループです。
Crypto流星街は常に新しいコミュニティメンバーを募集しています。
仮想通貨(暗号資産)やNFTについて質問や困ったことがあればお気軽に初心者部屋へお越しください。
Crypto流星街 初心者部屋🔰オープンチャット
Crypto流星街 ディスコードサーバー
Crypto流星街 コミュニティ紹介note