コンテンツへスキップ
0%

Transfers API:履歴トランザクションを1回のリクエストで500倍高速に取得

著者: Omar Ceja

最終更新日: 2021年5月13日1分で読めます

「0x0」から「latest」まで一瞬で— ETH、ERC20、ERC721の履歴取引を1回のAPIコールで取得する、最速かつ最も効率的な方法

「Vitalik ButerinはElon Muskに対して、これまでどれだけのETH、SUSHI、USDT…(想像はつくと思います)を送っただろうか?」という問いに答えられるメソッドがあったら、と考えたことはないでしょうか。Alchemy’s Transfers APIを使えば、それが実現します(ただし両者のウォレットアドレスを知っている必要はあります)。1回のAPIコールで、_任意の_アドレス、任意のトークンについて履歴取引を取得できます。ユーザーごとにチェーン全体をスキャンする必要はありません。

最新のDEXであれ、話題のゲームdAppであれ、開発者であれば履歴取引へのアクセスがいかに大変か身をもって知っているはずです。

ネイティブのEthereumクライアントメソッドを使う場合、各ブロックをクエリしてETH転送を取得し、次に数千件のログを解析してERC20とERC721の転送をフィルタリングし、さらにこれらの情報を何らかのデータストアに保持する、という流れになるでしょう。言葉で言うのも一苦労ですが、このインフラをスケーラブルかつ一貫性のある形で構築するには、多くのエンジニアリングリソースを要し、非常に遅い作業になります。コントラクトアドレスからinternal transactionsを取得するためにtransaction traceを解析する話は、ここではあえて触れません — DefiSaverのNikola Vukovićが言うように、「internal transfersを取得するのはほぼ不可能」なのです。

このようにシンプルかつ汎用的なユースケースに対して、こんなに手間のかかるプロセスが必要だと知り、私たちは裏側でこの作業をすべて行うTransfers APIを構築することにしました。あとは単一のエンドポイントを呼び出すだけで、ETH、ERC20、ERC721の転送が次々と返ってきます。さらなるメリットとして、このAPIはページネーションに対応しているため、ネットワークレイテンシを抑えつつ、タイムアウトを起こしたり結果を自分で結合したりすることなく、結果を順次取得できます。

Alchemy Transfers API インフラストラクチャの図
Transfers API インフラストラクチャ

Transfers API Infrastructure

過去のユーザー取引をすべて取得した後は、Address Activity Notificationsを設定するだけで、ETH、ERC20、ERC721の取引をリアルタイムで受け取り続けられます。Alchemy’s Transfers APIとAddress Activity Notificationsを組み合わせれば、ユーザー取引のバックエンドを構築したい開発者にとって強力なツールセットとなります。

Alchemy Dashboard Demo
Free video demo

Alchemy ダッシュボードの動作を見る

30分のガイド付きウォークスルー:ダッシュボードの全ツールをライブでデモ

Watch the demo

ここからが本題です — ライブデモです。Transfers APIの実際の動きを見るには、Public Composerでこのexample queryをチェックしてみてください。Uniswap V2: Router 2からYearn: Deployerへの転送を確認できます。とてもシンプルなので、まずはここから始めるとよいでしょう。

私たちの計測結果では、alchemy_getAssetTransfersの呼び出しは、gethのeth_getBlockByNumberとeth_getLogsを並行して使い、WETHに送られたすべてのETH、ERC20、ERC721転送を1万ブロック分クエリする場合と比べて、最大500倍(ユースケースによっては文字通り100万倍)高速です。信じられませんか?懐疑的な人、嫌いじゃないです。だからこそ、このscriptで自分でパフォーマンスを検証できるようにしてあります。最適化の効果を本当に実感したければ、もっと多くのブロックをクエリしてみてください。1万ブロックで500倍の高速化なら、1000万ブロックではどれだけの高速化になるか、想像してみてください🚀!

‍ Transfers APIに興味を持たれた方は、signing up with Alchemy for freeして、documentationをチェックすることで、今すぐ始められます。 ‍

Alchemy Newsletter

リリース情報をいち早く受け取る

ニュースレターに登録する

Alchemyの最新のプロダクト情報とリソースをお届けします

A
O
D
+
80,000人以上が購読中

メールアドレスを入力すると、当社のマーケティング情報およびプロダクト最新情報の受信に同意したことになります。Alchemyが受け取った情報をプライバシー通知に従って取り扱うことに同意するものとします。購読はいつでも解除できます。