---
title: "Transfers API: transações históricas 500x mais rápidas em uma única requisição"
description: "Aprenda a usar a Alchemy Transfers API para buscar transações históricas 500x mais rápido em uma única requisição!"
---

### De "0x0" até "latest" rapidinho: a forma mais rápida e eficiente de acessar transfers históricos de ETH, ERC20 e ERC721 em uma única chamada de API.

Imagine se houvesse um método capaz de responder: "Quanto ETH, SUSHI, USDT, … \(você entendeu\), Vitalik Buterin enviou para Elon Musk?" Bom, com a [Transfers API da Alchemy](https://www.alchemy.com/docs/reference/transfers-api-quickstart), agora existe \(desde que você saiba os endereços das carteiras deles\). Com uma única chamada de API, você pode buscar transações históricas de _qualquer_ endereço e qualquer token, sem precisar varrer a chain inteira para cada um dos seus usuários.

Seja você um desenvolvedor da mais nova DEX ou do dApp de games mais badalado, você sabe que acessar transações históricas é um baita desafio.

Se você usa os métodos nativos do cliente Ethereum, provavelmente está consultando cada bloco para obter transfers de ETH, depois filtrando transfers de [ERC20](https://www.alchemy.com/overviews/erc20-solidity) e ERC721 ao analisar milhares de logs, e mantendo todas essas informações em algum datastore subjacente. Além de ser trabalhoso, construir essa infraestrutura de forma escalável e consistente consome muitos recursos de engenharia e é extremamente lento. Nem vamos entrar no assunto de analisar traces de transação para acessar transações internas de endereços de contrato - como Nikola Vuković, da DefiSaver, coloca: "transfers internos são quase impossíveis de obter".

Depois de conhecer esse processo doloroso para um caso de uso tão simples e universal, decidimos construir nossa Transfers API que faz todo esse trabalho nos bastidores. Agora, tudo que você precisa fazer é chamar um único endpoint e ver os transfers de ETH, ERC20 e ERC721 chegando. Como bônus e otimização adicional, essa API suporta paginação, para que você possa reduzir a latência de rede e buscar resultados sequencialmente sem atingir timeouts ou ter que juntar os resultados manualmente.

<ImageBlock
  src="https://media.alchemy.com/1704734966-diagram-of-alchemy-transfer-api-infrastructure.png"
  alt="diagrama da infraestrutura da Transfers API da Alchemy"
  width={2880}
  height={2048}
  caption="Infraestrutura da Transfers API"
/>

Infraestrutura da Transfers API

Depois de acessar todas as transações que seus usuários já fizeram no passado, você pode facilmente configurar as[ Address Activity Notifications](https://www.alchemy.com/docs/reference/notify-api-quickstart) para continuar recebendo transfers de ETH, ERC20 e ERC721 em tempo real. Juntas, a Transfers API e as Address Activity Notifications da Alchemy formam um conjunto de ferramentas poderoso para qualquer desenvolvedor interessado em construir um backend para transações de usuários.

<VideoCta
  title="Veja o dashboard da Alchemy em ação"
  description="Tour guiado de 30 minutos: todas as ferramentas do dashboard, demonstradas ao vivo."
  ctaHref="/resources/dashboard-demo"
  thumbnail={{
    src: "https://media.alchemy.com/alchemy-dashboard-demo-thumbnail.png",
    alt: "Alchemy Dashboard Demo",
  }}
/>


Certo, agora para a parte legal - uma demo ao vivo. Para ver nossa Transfers API em ação, confira este[ exemplo de query](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) em nosso Public Composer para visualizar transfers enviados de Uniswap V2: Router 2 para Yearn: Deployer - é super simples e vai te ajudar a começar!

Nossos resultados mostram que uma chamada a alchemy_getAssetTransfers é até 500x mais rápida \(e, para alguns casos de uso, literalmente 1.000.000x mais rápida\) do que usar os métodos do [geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one) eth_getBlockByNumber e eth_getLogs concorrentemente para consultar 10 mil blocos em busca de todos os transfers de ETH, ERC20 e ERC721 enviados para WETH. Não acredita na gente? Um cético - eu gosto disso. Ainda bem que você sempre pode testar o desempenho você mesmo com este [script](https://github.com/alchemyplatform/alchemy-asset-transfers-benchmark). Se quiser ver a otimização realmente entrar em ação, tente consultar mais blocos. Se há um ganho de 500x para 10 mil blocos, imagine o ganho que você vai ver para 10 milhões de blocos 🚀!

‍
Se você tem interesse em explorar a Transfers API, pode começar hoje mesmo [se cadastrando gratuitamente na Alchemy](https://dashboard.alchemy.com/signup?referral=affiliate:18a41366-5a36-4300-8b7b-31bfc8cda175) e conferindo a [documentação](https://www.alchemy.com/docs/reference/transfers-api-quickstart).
‍
