Alchemy、フィルタ付きPending Transaction Notificationsをリリース
著者: Ben Godlove
初めて、開発者は自分のスマートコントラクトへのエンゲージメントをリアルタイムで確認できるようになり、エンドユーザーはトランザクションのライフサイクルに関するリアルタイムの更新を受け取れるようになります。
あなたがスマートコントラクトのオーナーで、自分のコントラクトに対する保留中のトランザクションをすべて確認したいとします。コントラクトのヘルスモニタリングを構築しているのかもしれません。あるいは、保留中の通知をユーザーにルーティングしようとしているのかもしれません。いずれにせよ、現状のエコシステムではこれを行うのは大きな手間です。
Alchemyを使わずにコントラクトのトランザクションをストリーミングする場合
まず、Alchemyを使わずにどのように行うかを見てみましょう。Ethereumはeth_newPendingTransactions APIを公開しており、これは保留中のトランザクションハッシュのストリームを提供します。その後、これらのトランザクションハッシュそれぞれについて完全なトランザクションペイロードを取得し、コントラクトアドレスを抽出して、そのアドレスが自分のコントラクトと一致する場合にビジネスロジックを実行することになります。
このプロセスは、1秒あたり数十件のトランザクションをチェックすることになり、そのほとんどは自分に無関係であるにもかかわらず、それぞれに対してネットワークコールを行うため、すぐにコストがかさみます。
Alchemyのフィルタ済みトランザクションAPIのご紹介
保留中のトランザクションハッシュの完全なストリームを受け取ってから各々をチェックするのではなく、Alchemyがストリーミングの前にそのチェックを代わりに行います。alchemy_pendingTransactionsエンドポイントにアドレスを渡すと、そのアドレスとの間で送受信される保留中のトランザクションをストリーミングします。
実際に動作を見てみましょう。SushiSwapのルーターアドレスに対する保留中のトランザクションを観察します。

ご覧の通り、SushiSwapはかなりアクティブです。
これを使って何を構築できるか
皆さんがどんなものを作ってくるか楽しみにしています!発想のきっかけとして、これによって格段に構築しやすくなったアプリケーションの例をいくつか挙げます。
スマートコントラクトのアクティビティモニターを作成する。自分のスマートコントラクトへの保留中のトランザクションをストリーミングするサブスクリプションを設定できます。一定の時間内にトランザクションを受信しなかった場合、アラートを発火させることができます。
特定のアドレスが「アクティブ」になったタイミングを検知する。誰かが検証済みの詐欺アドレスにETHを送った時を知りたいかもしれません。あるいは、ブラックハットハッカーが特定のアドレスからついに資金を引き出した時を知りたいかもしれません。
エンドユーザーに、自分のトランザクションが保留中であることを通知する。エンドユーザーがトランザクションを送信した際にクライアント側でサブスクリプションを設定し、トランザクションがmempoolに送信された時点でユーザーに通知します。おそらく近いうちに、ブロックエクスプローラーを何度もリロードする必要はなくなるでしょう。
その他のサブスクリプション機能やWebhookについては、Alchemy's Notifyをご覧ください。
Alchemy Newsletter
リリース情報をいち早く受け取る
ニュースレターに登録する
Alchemyの最新のプロダクト情報とリソースをお届けします
メールアドレスを入力すると、当社のマーケティング情報およびプロダクト最新情報の受信に同意したことになります。Alchemyが受け取った情報をプライバシー通知に従って取り扱うことに同意するものとします。購読はいつでも解除できます。
関連記事

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

Alchemyが東京リージョン対応を開始
Node RPC、WebSockets、Dedicated Clustersが東京で利用可能になりました。日本からのリクエストはレイテンシの中央値が最大8分の1に低減します。

エンタープライズ向けActivity Logのご紹介
Activity Logがエンタープライズチーム向けに利用可能になりました。ダッシュボードでアカウントの変更を確認するか、SIEMに送信できます。