MetaMaskのトランザクションを無料で高速かつ安定させる方法
著者: Albert Hu
MetaMaskとは?どのような仕組みか?
MetaMaskは、最も広く使われているEthereumツールの1つです。暗号資産ウォレットとして、ブラウザ拡張機能やモバイルアプリを通じて複数のアカウントにアクセスできます。開発者はアプリのテストにMetaMaskを使い、トレーダーはDeFiプロトコルでの貸し借りに、コレクターはNFTの購入に使っています。今のWeb3の世界では欠かせない存在です。
とはいえ、MetaMaskがこれらのトランザクションをどのように処理しているかご存知でしょうか?ウォレットとして、アカウント残高、トランザクション履歴、ガス代の見積もりなど、重要な情報をユーザーに示す必要があります。また、ユーザーに代わってブロックチェーンにトランザクションを送信する役割も担っています。では、MetaMaskはこれらの重要な情報をどのように処理しているのでしょうか?
結論:Alchemyの無料の専用RPCエンドポイントの利用をおすすめします
MetaMaskはノードに接続することで、ブロックチェーンへの情報の読み書きを行っています。これは、すべてのMetaMaskユーザー間でリソースを共有するデフォルトのノードプロバイダーを使って接続します。デフォルトの共有プロバイダーがあることで、ユーザーはセットアップが簡単になりますが、多くのデメリットもあります。
- トランザクションの処理時間が遅く感じる場合がある
- ブロックデータの不整合が見られる場合がある
- 古いガス代の見積もりのせいで、必要以上のガス代を支払ってしまう場合がある
- そして最悪の場合、デフォルトのノードプロバイダーが完全に停止してしまうことがある
障害が発生したとき、最も重要なタイミングで重要なトランザクションが送信できずに立ち往生することは避けたいはずです。

ノードプロバイダーとしてAlchemyを使うメリットは?
Alchemyは、他のノードプロバイダーで一般的に起きているデータの不整合、スケーラビリティ、障害といった問題を解決する、まったく新しいWeb3インフラ技術Supernodeを開発しました。AlchemyをMetaMaskウォレットと接続することで、Mempool VisualizerやAlchemy Notifyといった、モニタリングとデバッグのための画期的なツールも利用できるようになります。
2つの短いシナリオで説明します。
シナリオ1: NFTのミント
MetaMaskを使って、最新のNFTドロップをミントするためにdappへトランザクションを送信しているとします。時間が経っても、トランザクションが完了せず、その理由もわからない場合、どうすればよいでしょうか?
Alchemyのmempoolウォッチャーを使えば、トランザクションがネットワークの他の部分にブロードキャストされる前の、保留中のトランザクションを確認できます。mempool内の各トランザクションをクリックすると、ガス代が不足しているために失敗したか、nonce値が競合するトランザクションがあるかなど、詳細な情報を確認できます。トランザクションがどこで、なぜ滞っているのかを把握できるため、トレードを最大限にコントロールしたい場合、この可視性は非常に重要です。

シナリオ2: トランザクションへのアラート設定
次に、重要なトランザクション(例:ウォレットから1 ETHを超える送金)が発生したときに自分宛にアラートを送りたい場合や、トランザクションがマイニングされた後にドロップされたことを知りたい場合を考えてみましょう。通常であれば、MetaMaskでトランザクションを送信した後、ブロックチェーンエクスプローラーを使って履歴を手作業で確認することになりますが、これは時間がかかり、ミスも起こりやすい方法です。
Alchemy Notifyを使えば、トランザクションが発生するたびに、オンチェーンのトランザクションデータを自分のアプリへ自動的にプッシュするWebhook機能を利用できます。この機能により、ブロックチェーンデータを必要な場所へ届けることができます -- Slack、Discord、税務会計アプリケーションなど、可能性は無限大です :)

では、MetaMaskのノードプロバイダーをどう変更するか?
さて、これらの優れたメリットをMetaMaskウォレットで得る方法が気になっているところでしょう。
ご安心ください :) 手順はとても簡単です。一緒に進めていきましょう。
Alchemyの無料アカウントを作成する
これは非常に重要なステップです。
次にMetaMaskでカスタムRPC設定を作成する
準備はよろしいでしょうか?
- MetaMaskウォレットに移動し、上部のネットワークのドロップダウンをクリックして、一番下にあるCustom RPCを選択します。


このカスタムRPCの情報欄を入力していきましょう。
-
Network Nameには、どのチェーンに接続しているかがわかる名前を自由につけることができます。例えば、Polygon Mainnetに接続する場合、この設定を「Alchemy - Polygon Mainnet」と名付けることができます。
-
New RPC URL欄には、Alchemy DashboardからHTTP APIキーのURLを取得して入力します。ダッシュボードのアカウントをお持ちでない場合は、上記の「Alchemyの無料アカウントを作成する」のステップに戻り、アカウントを作成してください。

- 接続したいネットワークのChain IDを調べます。
- Ethereum Mainnet - 1
- Ropsten Testnet - 3
- Rinkeby Testnet - 4
- Goerli Testnet - 5
- Kovan Testnet - 42
- Polygon (Matic) Mainnet - 137
- Mumbai Testnet - 80001
- Arbitrum One - 42161
- Optimism (Optimistic Ethereum) - 10
- Optimistic Kovan - 69
- Currency SymbolとBlock Explorer URLは任意です。ほとんどのチェーンでは、ここへの入力は不要です。L2やサイドチェーンの場合は、これらを設定しておくと便利です。
Polygon:
- Currency Symbol - MATIC
- Block Explorer URL - https://polygonscan.com/
Arbitrum:
- Currency Symbol - AETH
- Block Explorer URL - https://arbiscan.io
Optimism:
- Currency Symbol - ETH
- Block Explorer URL - https://optimistic.etherscan.io

次のような警告が出ても心配する必要はありません:
This Chain ID is currently used by the Polygon network.
これは、同じチェーンに対して別の設定がすでに存在することをMetaMaskが知らせているだけで、問題なく許可されています。入力欄をすべて埋めたら、Saveを押してください。

あとはゆったり構えて、トランザクションを送信するだけ
いつも通りにMetaMaskを使うだけです :)
そしてさらに...Alchemyの開発者プラットフォームを活用する
Alchemyを接続すると、Alchemy Dashboardであなたのアプリを確認し、MetaMaskが行っているAPI呼び出しを見ることができます:

または、Mempool Watcherで保留中および承認済みのトランザクションを追跡できます:

さらに、Alchemy NotifyでWebhookを設定すれば、ウォレットの活動について自動的にアラートを受け取ることもできます:

ご覧の通り、MetaMaskのトランザクションに関して何をしたいとしても、Alchemyがサポートします。
このガイドが役に立ったら、Twitterで@Alchemyにぜひ声をかけてください :)
Alchemy Newsletter
リリース情報をいち早く受け取る
ニュースレターに登録する
Alchemyの最新のプロダクト情報とリソースをお届けします
メールアドレスを入力すると、当社のマーケティング情報およびプロダクト最新情報の受信に同意したことになります。Alchemyが受け取った情報をプライバシー通知に従って取り扱うことに同意するものとします。購読はいつでも解除できます。
関連記事

Glamsterdam: Ethereum開発者のための完全ガイド
GlamsterdamはSepoliaで稼働中です。開発者にとって何を意味するか、Alchemyがネットワークアップグレードにどう備えたかをまとめた完全ガイドです。

東京で構築するなら、どのRPCプロバイダーを選ぶべきか
東京を提供するRPCプロバイダー5社を、5つのチェーンでベンチマークした。比較結果と、レイテンシに敏感なチームにとって差が出るポイントを示す。

業界最速クラスの速度と信頼性を実現するSolana RPC読み取りの設計
AlchemyはSolanaの読み取りレイテンシが最も低く、9.21ミリ秒で、次点のプロバイダーより約26%高速です。