Descripción general
getTransactionsForAddress es un método RPC exclusivo de Helius que devuelve el historial de transacciones de una dirección con filtrado avanzado, ordenamiento flexible y paginación eficiente. No forma parte del RPC estándar de Solana.
A diferencia de getSignaturesForAddress, que solo devuelve firmas y omite las cuentas de tokens asociadas, getTransactionsForAddress puede devolver los datos completos de las transacciones, incluida la actividad de las cuentas de tokens asociadas (ATA) de una billetera, en una sola llamada. Esto lo convierte en la forma más rápida de obtener el historial completo de una dirección para rellenar datos históricos, indexar y realizar análisis.
Este método devuelve hasta 1,000 transacciones completas por llamada.
Flexible sorting
Ordena cronológicamente (primero las más antiguas) o en orden inverso (primero las más recientes).
Advanced filtering
Filtra por intervalos de tiempo, slots, firmas, estado y transferencias de tokens.
Full transaction data
Obtén los detalles completos de la transacción en una sola llamada, sin necesidad de una llamada posterior a getTransaction.
Token accounts
Incluye las transacciones de las cuentas de tokens asociadas a una dirección.
Cuándo usarlo
UsagetTransactionsForAddress cuando necesites:
- El historial completo de tokens de una billetera, incluidas las cuentas de tokens asociadas
- Un relleno rápido de datos históricos en una sola llamada para un indexador o pipeline de datos
- Análisis e informes de transacciones basados en tiempo o slots
- Filtrado por estado para conservar solo las transacciones exitosas o solo las fallidas
- Reproducción histórica cronológica (orden de la más antigua a la más reciente)
- Análisis del lanzamiento de tokens: primeras transacciones de acuñación y primeros titulares
- Historial de financiamiento de billeteras y detección de contrapartes
- Informes de cumplimiento y auditoría para un periodo específico
getTransfersByAddress.
Compatibilidad con redes
Inicio rápido
1
Get your API key
Obtén tu clave de API en el panel de Helius.
2
Query with advanced features
Obtén todas las transacciones exitosas de una billetera entre dos fechas, ordenadas cronológicamente:
3
Understand the parameters
Este ejemplo muestra las funciones principales:
- transactionDetails: establécelo en
'full'para obtener los datos completos de las transacciones en una sola llamada - sortOrder: usa
'asc'para el orden cronológico (primero las más antiguas) o'desc'para mostrar primero las más recientes - filters.blockTime: define intervalos de tiempo con
gte(mayor o igual que) ylte(menor o igual que) - filters.status: filtra solo las transacciones
'succeeded'o'failed' - filters.tokenAccounts: incluye transferencias, acuñaciones y quemas de cuentas de tokens asociadas
Parámetros de la solicitud
string
requerido
Clave pública codificada en base 58 de la cuenta cuyo historial de transacciones quieres consultar
string
predeterminado:"signatures"
Nivel de detalle de la transacción que se devolverá:
signatures: información básica de la firma (más rápido)full: datos completos de la transacción (elimina la necesidad de llamadas a getTransaction y admite un límite de hasta 1,000)
string
predeterminado:"desc"
Orden de los resultados:
desc: primero los más recientes (predeterminado)asc: primero los más antiguos (orden cronológico, ideal para análisis históricos)
number
predeterminado:"1000"
Número máximo de transacciones que se devolverán:
- Hasta 1000 cuando
transactionDetails: "signatures" - Hasta 1000 cuando
transactionDetails: "full"
string
Token de paginación de la respuesta anterior (formato:
"slot:position")string
predeterminado:"finalized"
Nivel de confirmación:
finalized o confirmed. No se admite el nivel processed.object
Opciones de filtrado avanzado para restringir los resultados.
object
Filtra por número de slot mediante operadores de comparación:
gte, gt, lte, ltEjemplo: { "slot": { "gte": 1000, "lte": 2000 } }object
Filtra por marca de tiempo Unix mediante operadores de comparación:
gte, gt, lte, lt, eqEjemplo: { "blockTime": { "gte": 1640995200, "lte": 1641081600 } }object
Filtra por firma de transacción mediante operadores de comparación:
gte, gt, lte, ltEjemplo: { "signature": { "lt": "SIGNATURE_STRING" } }string
Filtra por el estado de éxito o fallo de la transacción:
succeeded: solo transacciones exitosasfailed: solo transacciones fallidasany: transacciones exitosas y fallidas (predeterminado)
{ "status": "succeeded" }string
predeterminado:"none"
Filtra las transacciones de cuentas de tokens relacionadas:
none: devuelve solo las transacciones que hacen referencia a la dirección proporcionada (predeterminado)balanceChanged: devuelve las transacciones que hacen referencia a la dirección proporcionada o modifican el saldo de una cuenta de tokens propiedad de esa dirección (recomendado)all: devuelve las transacciones que hacen referencia a la dirección proporcionada o a cualquier cuenta de tokens propiedad de esa dirección
{ "tokenAccounts": "balanceChanged" }object
Filtra las transacciones en las que la dirección consultada participó en una transferencia de tokens que coincide con una contraparte, dirección de transferencia, acuñación o intervalo de importes sin procesar. Todos los campos son opcionales y se combinan con semántica AND.Ejemplo:
{ "tokenTransfer": { "direction": "in", "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } }string
Dirección de la contraparte. Coincide con transferencias cuyo otro extremo es esta dirección.
string
predeterminado:"any"
Filtra por la dirección de la transferencia con respecto a la dirección consultada:
in: transferencias recibidas por la dirección consultadaout: transferencias enviadas por la dirección consultadaany: transferencias entrantes y salientes
string
Acuñación del token por la que se filtrará.
object
Comparación de importes mediante el importe sin procesar en cadena, no el importe de la IU ni el ajustado por decimales. Admite
gt, gte, lt e lte.string
Formato de codificación de los datos de transacciones (solo se aplica cuando
transactionDetails: "full"). Es el mismo que el de la API getTransaction. Opciones: json, jsonParsed, base64, base58number
Define la versión máxima de transacción que se devolverá. Si se omite, solo se devolverán transacciones heredadas. Establécelo en
1 para incluir transacciones heredadas, v0 y v1.number
El slot mínimo en el que se puede evaluar la solicitud
Medición
Las respuestas exitosas se miden según lo que se devuelve:Respuesta
La estructura de la respuesta depende detransactionDetails. El modo de firmas devuelve registros ligeros de firmas; el modo completo devuelve objetos completos de transacciones y metadatos.
- Signatures Response
- Full Transaction Response
Campos de la respuesta
El campo
transactionIndex es exclusivo de getTransactionsForAddress. Otros endpoints similares, como getSignaturesForAddress, getTransaction e getTransactions, no incluyen este campo.
En el modo completo, meta es el objeto completo de metadatos de la transacción, con una estructura idéntica a la que devuelve getTransaction. Incluye preTokenBalances e postTokenBalances, por lo que puedes calcular los cambios en los saldos de tokens (por ejemplo, para detectar intercambios) directamente desde la respuesta, sin llamadas posteriores.
Filtros
Puedes usar operadores de comparación paraslot, blockTime e signature, además de los filtros especiales status, tokenAccounts e tokenTransfer. Al combinar varios filtros, el resultado se restringe a su intersección.
Operadores de comparación
Estos operadores funcionan como consultas de bases de datos para darte un control preciso sobre el intervalo de datos.Filtros de enumeración
Ejemplos de filtros combinados:
Cuentas de tokens asociadas
En Solana, una billetera no almacena tokens directamente. En su lugar, la billetera posee cuentas de tokens, y esas cuentas almacenan los tokens. Cuando alguien te envía USDC, este se deposita en tu cuenta de tokens USDC, no en la dirección principal de tu billetera. Este método es único porque puede consultar el historial completo de tokens, incluidas las cuentas de tokens asociadas (ATA) de una billetera. Los métodos RPC nativos, comogetSignaturesForAddress, no incluyen las ATA.
El filtro tokenAccounts controla este comportamiento:
none(predeterminado): solo devuelve las transacciones que hacen referencia directa a la dirección de la billetera. Úsalo si solo te interesan las interacciones directas de la billetera.balanceChanged(recomendado): devuelve las transacciones que hacen referencia a la dirección de la billetera o modifican el saldo de una cuenta de tokens propiedad de la billetera. Esto excluye el spam y operaciones no relacionadas, como el cobro de comisiones o las delegaciones, para ofrecerte una vista clara de la actividad relevante de la billetera.all: devuelve todas las transacciones que hacen referencia a la dirección de la billetera o a cualquier cuenta de tokens propiedad de esta.
tokenAccounts no admite transacciones anteriores a diciembre de 2022. Depende de los metadatos de transferencia de tokens incorporados a Solana en el slot 111,491,819. Para cubrir la actividad anterior, consulta la solución alternativa para cuentas de tokens históricas.
Filtro de transferencias de tokens
El filtrotokenTransfer restringe los resultados a las transacciones en las que la dirección consultada participó en una transferencia de tokens que coincide con criterios específicos: una contraparte, acuñación, dirección de transferencia o intervalo de importes determinados.
Úsalo para responder preguntas como:
- ¿Cuándo recibió esta billetera USDC de una contraparte específica?
- Muestra todas las transferencias salientes superiores a 1,000 tokens.
- ¿Cuándo interactuó esta billetera con esta acuñación específica?
filters de la configuración de la solicitud:
tokenTransfer son opcionales. La combinación de varios campos se trata como AND.
Operadores de intervalo de importes:
Puedes combinar operadores de importes, como
{ "gte": 1000000, "lte": 5000000 } para un intervalo cerrado. tokenTransfer se combina con los demás filtros de nivel superior (slot, blockTime, status e tokenAccounts); el resultado final es la intersección.
Ejemplos
Análisis basados en tiempo
Genera informes mensuales de transacciones:Creación de acuñaciones de tokens
Busca la transacción de creación de la acuñación de un token específico:Transacciones de financiamiento
Averigua quién financió una dirección específica:Transferencias de tokens
Filtra portokenTransfer para aislar movimientos específicos de tokens.
Entradas de USDC a una dirección:
Paginación
Cuando tengas más transacciones que el límite, usa elpaginationToken de la respuesta para obtener la página siguiente. El token es una cadena simple con el formato "slot:position" que indica a la API desde dónde continuar.
Usa el token de paginación de cada respuesta para obtener la página siguiente:
Varias direcciones
No puedes consultar varias direcciones en una sola solicitud. Cada consulta de dirección cuenta como una solicitud independiente a la API y se mide como tal. Para obtener transacciones de varias direcciones, consulta cada dirección dentro del mismo intervalo de tiempo o slots y, después, combina y ordena los resultados:Prácticas recomendadas
Rendimiento. UsatransactionDetails: "signatures" cuando no necesites los datos completos de las transacciones. Usa tamaños de página razonables para mejorar los tiempos de respuesta y filtra por intervalos de tiempo o slots específicos para realizar consultas más focalizadas.
Filtrado. Comienza con filtros amplios y restrínge los resultados progresivamente. Usa filtros basados en tiempo para los flujos de análisis e informes, y combina varios filtros para crear consultas precisas dirigidas a tipos de transacciones o periodos específicos.
Paginación. Guarda los tokens de paginación cuando necesites reanudar consultas grandes más adelante. Supervisa la profundidad de paginación para planificar el rendimiento y usa el orden ascendente cuando necesites reproducir eventos históricos en orden cronológico.
Manejo de errores. Gestiona los límites de frecuencia con reintentos y espera exponencial. Valida las direcciones antes de realizar solicitudes y almacena en caché los resultados cuando corresponda para reducir el uso de la API.
Limitaciones y casos extremos
Un pequeño conjunto de direcciones se redirige al archivo heredado, se limita a una alternativa de análisis por slots o devuelve resultados vacíos. La detección de cuentas de tokens antes del slot 111,491,819 también requiere una solución alternativa. Expande las secciones siguientes para consultar todos los detalles.Unsupported and specially-routed addresses
Unsupported and specially-routed addresses
Redirección al archivo antiguo. Las solicitudes para estas direcciones se redirigen a nuestro sistema de archivo antiguo.
Alternativa de análisis por slots. Las solicitudes para estas direcciones se reenvían a nuestro nuevo sistema de archivo y pueden consultarse mediante un análisis slot por slot (máximo de 100 slots). Sin embargo, estos datos no están indexados.
Devuelve resultados vacíos (
is_reserved_address). Las solicitudes se reenvían a nuestro nuevo sistema de archivo; sin embargo, los datos no están indexados y las consultas devuelven resultados vacíos.Workaround: historical token account discovery (before slot 111,491,819)
Workaround: historical token account discovery (before slot 111,491,819)
Para las direcciones con actividad de cuentas de tokens anterior al slot 111,491,819, el filtro
tokenAccounts no puede determinar la propiedad porque el campo owner aún no existía en los metadatos de saldos de tokens. Para obtener resultados completos, puedes detectar manualmente esas cuentas de tokens mediante el análisis de las instrucciones de transacciones antiguas y, después, consultar getTransactionsForAddress en paralelo para cada una.¿En qué se diferencia de getSignaturesForAddress?
Si conoces el método estándargetSignaturesForAddress, getTransactionsForAddress reúne flujos de trabajo de varios pasos en una sola llamada y agrega filtrado, ordenamiento y compatibilidad con cuentas de tokens. Para convertir código existente paso a paso, consulta la guía de migración.
Obtén transacciones completas en una sola llamada
CongetSignaturesForAddress, necesitas dos pasos:
getTransactionsForAddress, solo necesitas una llamada:
Obtén el historial de tokens en una sola llamada
CongetSignaturesForAddress, primero debes llamar a getTokenAccountsByOwner y, después, consultar cada cuenta de tokens:
getTransactionsForAddress, solo necesitas establecer filters.tokenAccounts:
Funciones adicionales
Chronological sorting
Ordena las transacciones de la más antigua a la más reciente con
sortOrder: 'asc'.Time-based filtering
Filtra por intervalos de tiempo mediante filtros
blockTime.Status filtering
Obtén solo transacciones exitosas o fallidas con el filtro
status.Simpler pagination
Usa
paginationToken en lugar de las confusas firmas before/until.Próximos pasos
Indexing guide
Usa getTransactionsForAddress para rellenar datos históricos y sincronizar un índice de Solana.
getTransfersByAddress
Historial analizado que solo incluye transferencias para pagos y conciliación.
API reference
Esquema completo de solicitud y respuesta de getTransactionsForAddress.
Historical data overview
Compara todos los métodos de datos históricos de Solana.