---
title: "Transfers API：一次請求取得歷史交易，速度提升 500 倍"
description: "了解如何使用 Alchemy Transfers API，一次請求就能以快上 500 倍的速度取得歷史交易！"
---

### 從「0x0」到「latest」快速瀏覽：在單一 API 呼叫中存取歷史 ETH、ERC20、ERC721 轉帳紀錄最快、最有效率的方式。

試想，如果有一個方法能回答這個問題：「Vitalik Buterin 總共傳送了多少 ETH、SUSHI、USDT……（你懂的）給 Elon Musk？」有了 [Alchemy’s Transfers API](https://www.alchemy.com/docs/reference/transfers-api-quickstart)，現在這是可以做到的（前提是你知道他們的錢包地址）。只要一次 API 呼叫，你就能取得任何地址、任何代幣的歷史交易紀錄，不必為了每個使用者去掃描整條鏈。

不論你是為最新的 DEX 還是最熱門的遊戲 dApp 開發，你都知道要存取歷史交易紀錄有多麻煩。

如果你使用原生的 Ethereum 用戶端方法，你大概得逐一查詢每個區塊來取得 ETH 轉帳紀錄，再透過解析成千上萬筆日誌來篩選 [ERC20](https://www.alchemy.com/overviews/erc20-solidity) 和 ERC721 轉帳紀錄，並將這些資訊儲存在某種底層資料庫中。這個過程說起來就已經很繁瑣了，而要以可擴展且一致的方式建置這套基礎設施，更會耗費大量的工程資源，而且速度極慢。至於解析交易 trace 來存取合約地址的內部交易，先別提了——正如 DefiSaver 的 Nikola Vuković 所說：「internal transfers 幾乎不可能取得」。

在了解到這個如此簡單且普遍的使用情境竟要經歷這麼痛苦的過程後，我們決定打造 Transfers API，把所有這些工作都在背後處理好。現在，你只需要呼叫單一端點，就能看到 ETH、ERC20 和 ERC721 轉帳紀錄源源不絕地出現。此外，這個 API 還支援分頁（pagination），讓你能降低網路延遲，依序取得結果，不會發生逾時，也不必自己拼湊結果。

<ImageBlock
  src="https://media.alchemy.com/1704734966-diagram-of-alchemy-transfer-api-infrastructure.png"
  alt="alchemy transfer api 基礎設施示意圖"
  width={2880}
  height={2048}
  caption="Transfers API 基礎設施"
/>

Transfers API Infrastructure

當你取得使用者過去所有交易紀錄後，你可以輕鬆設定[ Address Activity Notifications](https://www.alchemy.com/docs/reference/notify-api-quickstart)，持續即時接收 ETH、ERC20 和 ERC721 轉帳通知。Alchemy 的 Transfers API 與 Address Activity Notifications 兩者結合，對任何想要建置使用者交易後端系統的開發者來說，都是強大的工具組合。

<VideoCta
  title="看看 Alchemy 儀表板實際運作"
  description="30 分鐘導覽:即時示範儀表板中的每一項工具。"
  ctaHref="/resources/dashboard-demo"
  thumbnail={{
    src: "https://media.alchemy.com/alchemy-dashboard-demo-thumbnail.png",
    alt: "Alchemy Dashboard Demo",
  }}
/>


好了，接下來是有趣的部分——現場示範。想看看我們的 Transfers API 實際運作，可以到我們的 Public Composer 查看這個[範例查詢](https://www.alchemy.com/composer?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22alchemy_getAssetTransfers%22%2C%22paramValues%22%3A%5B%7B%22excludeZeroValue%22%3Atrue%2C%22fromBlock%22%3A%220x0%22%2C%22toBlock%22%3A%22latest%22%2C%22fromAddress%22%3A%220x7a250d5630B4cF539739dF2C5dAcb4c659F2488D%22%2C%22toAddress%22%3A%220x2D407dDb06311396fE14D4b49da5F0471447d45C%22%7D%5D%7D)，檢視從 Uniswap V2: Router 2 傳送到 Yearn: Deployer 的轉帳紀錄——非常簡單，能幫助你快速上手！

我們的結果顯示，呼叫 alchemy_getAssetTransfers 比同時使用 [geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one) 的 eth_getBlockByNumber 和 eth_getLogs 方法查詢 10K 個區塊中所有傳送到 WETH 的 ETH、ERC20 和 ERC721 轉帳紀錄，速度快上多達 500 倍（在某些使用情境下，甚至真的快了 1,000,000 倍）。不相信我們？懷疑論者——我喜歡。還好你隨時可以用這個[腳本](https://github.com/alchemyplatform/alchemy-asset-transfers-benchmark)自己測試效能。如果想看看這個優化效果真正發威，試著查詢更多區塊吧。如果 10K 個區塊就有 500 倍的速度提升，想像一下 10M 個區塊會快上多少 🚀！

‍
如果你對 Transfers API 有興趣，現在就可以[免費註冊 Alchemy 帳號](https://dashboard.alchemy.com/signup?referral=affiliate:18a41366-5a36-4300-8b7b-31bfc8cda175)並查看[文件](https://www.alchemy.com/docs/reference/transfers-api-quickstart)，馬上開始使用。
‍
