---
title: "Presentamos la Multichain Transfers API (Beta)"
description: "Obtén el historial de transferencias de una wallet en hasta 5 redes con una sola llamada, ya combinado y ordenado por tiempo."
datePublished: "2026-11-04"
dateModified: "2026-11-04T09:00:00-06:00"
---

# Presentamos la Multichain Transfers API (Beta)

<ImageBlock
  src="https://media.alchemy.com/Alchemy-Multichain-transfers-API-(Beta).png"
  alt="Alchemy Multichain Transfers API (Beta)"
  width={3840}
  height={2160}
  priority
/>

Las wallets y las apps de portafolio son una de las categorías de más rápido crecimiento onchain. Se espera que el mercado de wallets cripto crezca de [$15.5B en 2025 a $100.8B en 2033, una CAGR del 26.6 %](https://www.grandviewresearch.com/industry-analysis/crypto-wallet-market-report). Nos enorgullece ayudar a wallets líderes como Zerion, Rainbow, Phantom, Trust Wallet y Coinbase Wallet a impulsar su historial de transferencias y el seguimiento de balances.

Uno de los métodos más usados por estos equipos es `alchemy_getAssetTransfers`. Decenas de miles de equipos lo llamaron en los últimos 30 días, lo que lo convierte en la segunda Data API más usada por volumen de solicitudes. Los equipos lo usan para obtener el historial de transferencias nativas, ERC-20, ERC-721 y ERC-1155 de una wallet, y para alimentar feeds de actividad, seguimiento de balances y vistas de portafolio.

Hoy mejoramos esa experiencia: la [Multichain Transfers API](https://www.alchemy.com/docs/data/portfolio-apis/portfolio-api-endpoints/portfolio-api-endpoints/get-transfers-by-address) devuelve el historial de transferencias de una sola wallet en hasta 5 redes con una sola llamada, ya combinado y ordenado por tiempo.

Ya está disponible en beta: [pruébala por tu cuenta](https://www.alchemy.com/docs/data/portfolio-apis/portfolio-api-endpoints/portfolio-api-endpoints/get-transfers-by-address).

## Una llamada, varias cadenas

Hoy, llamar a `alchemy_getAssetTransfers` te da una red por solicitud. Escalar a más cadenas significa multiplicar las llamadas, combinar los resultados tú mismo y decidir qué hacer cuando una red es lenta o devuelve un error.

Así que lo mejoramos. Cuatro mejoras clave en nuestra Multichain Transfers API:

- **Varias cadenas en una sola llamada.** Pasa una lista de redes y recibe una sola lista, ordenada por `blockTimestamp`.
- **Consulta en ambas direcciones a la vez.** Configura `direction` como `to`, `from` o `both` y obtén las transferencias entrantes y salientes juntas.
- **Filtrado por tiempo.** Filtra con `fromTimestamp` y `toTimestamp` en lugar de números de bloque, y ordena los resultados por `blockTimestamp` con `order` (`asc` o `desc`).
- **Una estructura de respuesta más limpia.** Los montos de tokens están en `fungible`, los datos de NFT en `nfts`, `blockTimestamp` siempre está en el nivel superior, y también `contractAddress` en las transferencias de tokens y NFT.

Si una de las redes que pediste no devuelve un resultado, la llamada igual responde con un 200 y todo lo que sí se cargó, además de un arreglo `error.partialErrors` que indica qué falló.

## Pruébalo

<CodeSnippet
  language="bash"
  code={`curl --request POST \\
  --url https://api.g.alchemy.com/data/v1/YOUR_API_KEY/transfers/by-address \\
  --header 'Content-Type: application/json' \\
  --data '{
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "direction": "both",
    "networks": ["eth-mainnet", "base-mainnet", "matic-mainnet"],
    "fromTimestamp": "2026-08-01T00:00:00Z",
    "toTimestamp": "2026-08-06T00:00:00Z",
    "category": ["external", "erc20", "erc721", "erc1155"],
    "order": "desc",
    "maxCount": 100
  }'`}
/>

La respuesta es un solo arreglo `transfers` que abarca todas las redes que pediste, de la más reciente a la más antigua, con un `pageKey` para obtener la siguiente página (recortada para facilitar la lectura):

<CodeSnippet
  language="json"
  code={`{
  "transfers": [
    {
      "network": "base-mainnet",
      "blockTimestamp": "2026-08-05T23:58:41Z",
      "category": "erc20",
      "from": "0x1f98abcd...",
      "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "contractAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "fungible": { "value": 250, "decimals": 6, "asset": "USDC" }
    },
    {
      "network": "eth-mainnet",
      "blockTimestamp": "2026-08-05T23:55:12Z",
      "category": "external",
      "from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "to": "0x7a250d...",
      "fungible": { "value": 0.5, "decimals": 18, "asset": "ETH" }
    }
  ],
  "pageKey": "eyJ0cyI6..."
}`}
/>

Las transferencias nativas, ERC-20, ERC-721 y ERC-1155 funcionan en las 14 redes admitidas (11 mainnets y 3 testnets), incluidas Ethereum, Base, Polygon, Arbitrum, Optimism y BNB Chain ([lista completa](https://www.alchemy.com/docs/data/portfolio-apis/portfolio-api-endpoints/portfolio-api-endpoints/get-transfers-by-address)). Las transferencias internas están disponibles en Ethereum, Base, Polygon y Arc (mainnet y testnet), y los NFT especiales en Ethereum. Estamos agregando más redes constantemente.

Algo que debes saber: `category` es obligatorio, así que pasa al menos una en cada solicitud.

## Cómo empezar

La Multichain Transfers API ya está en beta en `POST /data/v1/{apiKey}/transfers/by-address`. Pruébala por tu cuenta en el [playground de la documentación](https://www.alchemy.com/docs/data/portfolio-apis/portfolio-api-endpoints/portfolio-api-endpoints/get-transfers-by-address), sin necesidad de registrarte. O coloca tu propia API key en el ejemplo anterior y migra tu integración actual de `getAssetTransfers` al nuevo endpoint para eliminar el bucle por red.

### ¿En qué se diferencia de alchemy_getAssetTransfers?

`getAssetTransfers` devuelve las transferencias de una red por llamada. La Multichain Transfers API recibe una lista de hasta 5 redes y devuelve una sola lista combinada y ordenada por tiempo, en una dirección o en ambas, en una sola solicitud.

### ¿Qué pasa si falla una red?

Igual recibes una respuesta 200 con todas las transferencias que se cargaron correctamente, además de un arreglo `error.partialErrors` que indica qué redes o categorías no respondieron. Nada falla en silencio y nada se bloquea esperando a la red más lenta.
