Consultar el historial
Filtra por token, contraparte, tiempo, cantidad o valor en USD.
Recibir transferencias en vivo
Sigue una wallet, un token, o un token para una wallet.
Consultar el historial de transferencias
GET /account/{address}/transfers devuelve las transferencias entrantes y salientes de una wallet, de más reciente a más antigua. Las transferencias SPL se buscan a través de las token accounts de la wallet, y cada lado muestra tanto la token account (address) como la wallet propietaria (owner).
Por defecto, el historial excluye las transacciones con actividad DEX, como swaps, depósitos y retiros de liquidez y cobros de comisiones de pools, así que obtienes las transferencias simples de la wallet. Usa dex=include para conservarlas o dex=only para obtener solo esas.
amountes la cantidad entera en bruto yuiAmountla cantidad decimal exacta, ambas como cadenas.timestampes la hora del bloque en segundos Unix.typeessolpara SOL nativo ysplpara transferencias de tokens. SOL usa el mint de wrapped SOLSo11111111111111111111111111111111111111112.statuses el resultado de la transacción,successofailed. Las transacciones fallidas se excluyen salvo que pidasstatus=failedostatus=any.priceyvaluesolo aparecen conhistoricPrices=trueo un filtro de valor.identityaparece enfromotocuando la wallet es conocida: un KOL, un exchange, un pool, un desarrollador o un nombre SNS.
Filtrar el historial
Cada parámetro tiene un solo nombre. Un nombre que el endpoint no conoce devuelve un 400 que te indica el correcto, por ejemplo
unknown parameter timeStart; use start, así que una errata nunca devuelve una página sin filtrar.
historicPrices=true añade price.usd y value.usd con el precio en USD del token en el momento de la transferencia, según la última vela de 1 minuto como máximo una hora antes. Sin precio, ambos son null.
Qué cuenta como actividad DEX
Una transacción tiene actividad DEX cuando una de sus transferencias va hacia o viene de un pool: una cuenta propiedad de un programa DEX o launchpad, como una bonding curve de pump.fun o un pool DLMM de Meteora, o una vault authority de Raydium o Meteora. Eso incluye swaps, depósitos y retiros de liquidez, y cobros de comisiones y recompensas. También cuenta una transacción en la que la wallet envió un token y recibió otro.dex=exclude y dex=only actúan sobre transacciones completas: todas las transferencias de la transacción se descartan o se conservan juntas. Solo se tienen en cuenta las transferencias que coinciden con direction y mint, así que, con esos filtros, una transacción cuyo tramo del pool queda filtrado cuenta como una transferencia simple.
Agrupar por transacción
Añadegrouped=true para obtener además transactions, las transferencias de la página agrupadas por firma. Cada transacción incluye sus transfers, el número de ellas en legs, totals.in, totals.out y totals.tokens, y dex. type es swap cuando dex es true, y swap indica el token entrante y el saliente cuando la wallet envió un token y recibió otro. Con historicPrices=true, los totales también incluyen USD: totals.value, totals.net y usd en cada lado.
Paginar los resultados
Envíapagination.next como cursor con los mismos filtros y detente cuando hasMore sea false. Una página nunca divide una transacción, así que puede tener algunas transferencias más o menos que limit; con grouped=true, limit normalmente cuenta transacciones. Con filtros, cada solicitud recorre un número limitado de transferencias, así que una página puede tener menos de limit filas, o ninguna, aunque hasMore siga siendo true. Sigue paginando.
Con minValue o maxValue, cada página valora las siguientes limit transferencias y devuelve las que coinciden. Si los precios no se pueden leer a tiempo, la solicitud devuelve un 503; vuelve a enviarla.
Usar el SDK de TypeScript
Instala@solana-tracker/data-api 0.6.0 o posterior. getAccountTransfers acepta los mismos filtros que el endpoint, y los filtros de direcciones admiten un array o una cadena separada por comas. El SDK los comprueba con las reglas de la API y lanza un ValidationError antes de enviar una solicitud que la API rechazaría. iterateAccountTransfers sigue pagination.next por ti y continúa aunque una página filtrada llegue vacía.
{ grouped: true }, TypeScript sabe que la respuesta incluye transactions.
Recibir transferencias en vivo
Conecta awss://datastream.solanatracker.io/{apiKey} con tu clave de Data API. Datastream está disponible en los planes Premium, Business y Enterprise.
Elegir una sala
transfer:wallet:{wallet}: todas las transferencias hacia o desde una wallet, en todos los tokens.transfer:{mint}: todas las transferencias de un token. No disponible para SOL.transfer:{mint}:{wallet}: un token hacia o desde una wallet. Funciona para SOL con el mint de wrapped SOL.
:enriched a cualquier sala para incluir token (nombre, símbolo, imagen, decimales), price.usd, value.usd y marketCap.usd en cada transferencia y cambio de saldo, e identity en el from y el to de cada transferencia y en cada cambio de saldo: las etiquetas de perfil KOL, bot, plataforma, desarrollador, pool o SNS de la wallet, como en las salas de trades, o null si la wallet no tiene. El marketCap.usd de SOL es su precio por el suministro circulante; USDC, USDT y USD1 no tienen. El mensaje enriquecido puede llegar hasta 250 ms después del normal; si una consulta tardó más, lleva enrichmentStatus: "partial" y null en lo que falte.
Suscribirse con el SDK
El SDK gestiona los heartbeats y las reconexiones.transfers.wallet, transfers.token y transfers.tokenWallet se unen a las tres salas; usa { enriched: true } para la sala :enriched. transfers.token lanza un error para SOL: usa transfers.wallet, o transfers.tokenWallet con el mint de wrapped SOL.
Leer un mensaje
Cada mensaje es una transacción:transfersson las transferencias de la sala en orden de instrucción.idessignature:instruction:innery es único por transferencia.directionaparece en las salas de wallet. Las transferencias de Token-2022 con comisión de transferencia incluyenfee, yamountes la cantidad antes de la comisión.balancesson los cambios de saldo de la sala en esa transacción: los de la wallet, los del token, o los de la wallet para ese token.causeestransfer,swap(los tokens negociados por el trader) uother. La entrada de SOL del pagador de la comisión tienefee, que está incluida enchange.- Los swaps se quedan en las salas de trades. Una transferencia que forma parte de un swap ya emitido no se vuelve a enviar. Lo que queda de un swap, como comisiones de plataforma, propinas o pagos a otras wallets, llega con
swapTx: true. - No son transferencias: wraps, unwraps y movimientos entre cuentas de la misma wallet. Las transacciones fallidas no se emiten.
:enriched, el mismo mensaje también incluye token, price, value, marketCap e identity. En este, un KOL vendió un token por SOL; la comisión en SOL pagada a otra wallet es lo que queda del swap, así que llega con swapTx: true.
Ejemplo de mensaje enriquecido
Ejemplo de mensaje enriquecido
Siguientes pasos
Referencia de transferencias de cuenta
Todos los parámetros y campos de respuesta.
Protocolo de Datastream
Conéctate, únete a salas y gestiona los latidos.