
Presentamos los filtros de cuentas de tokens para gTFA
En octubre pasado, lanzamos getTransactionsForAddress, una nueva llamada RPC de Solana para consultar datos históricos que combina getSignaturesForAddress y getTransaction en un solo método.
Hoy nos complace anunciar que getTransactionsForAddress (gTFA) ya puede consultar el historial de transferencias de tokens de una wallet con una sola llamada RPC.
La nueva función tokenAccounts permite incluir las transacciones de las cuentas de tokens asociadas de la wallet. Antes, gTFA y su predecesor, getSignaturesForAddress, las omitían.
Antes, los desarrolladores tenían que consultar getTokenAccountsByOwner y luego getSignaturesForAddress para cada cuenta de tokens.
Esto era lento y costoso, y a menudo requería cientos de llamadas RPC adicionales.
Ahora solo necesitas una llamada a getTransactionsForAddress con tokenAccounts.
El problema
En Solana, tu wallet no almacena tokens directamente.
En su lugar, tu wallet es propietaria de cuentas de tokens asociadas (ATA), y esas cuentas almacenan tus tokens.
Por ejemplo, cuando alguien te envía USDC, este llega a tu cuenta de tokens USDC en lugar de a la dirección principal de tu wallet.
Esto genera un gran problema al consultar el historial de transacciones de una wallet:
Cuando llamas a getSignaturesForAddress en una wallet, solo obtienes las transacciones que hacen referencia directa a la dirección de esa wallet.
Las transferencias de tokens que interactúan con tus cuentas de tokens, pero no mencionan tu wallet, simplemente no aparecen.
La solución alternativa
Hasta hoy, los desarrolladores tenían que implementar una solución alternativa tediosa:
- Llamar a
getTokenAccountsByOwnerpara obtener las cuentas de tokens de una wallet - Llamar a
getSignaturesForAddresspara la propia wallet - Llamar a
getSignaturesForAddresspara cada cuenta de tokens - Combinar todos los resultados
- Eliminar duplicados (muchas transacciones afectan a varias cuentas)
- Ordenar cronológicamente
Este enfoque presenta varios problemas:
1. El rendimiento es lento
Una wallet con 50 cuentas de tokens requiere más de 51 llamadas RPC solo para crear un historial completo. Los traders profesionales, los usuarios frecuentes de DeFi o quienes operan con memecoins por diversión pueden tener cientos de cuentas de tokens.
2. La paginación es ineficiente
¿Quieres las 20 transacciones más recientes? No puedes limitarte a obtener 20 de cada fuente y combinarlas. Tienes que obtenerlo todo, eliminar duplicados, ordenar los resultados y solo entonces tomar las primeras 20 transacciones.
No existe una forma eficiente de paginar sin obtener datos de más.
3. Los costos de RPC se acumulan
Cada llamada RPC implica una sobrecarga. Multiplicarla por más de 100 llamadas por solicitud de usuario se vuelve costoso rápidamente, sobre todo a gran escala.
La solución
Con el nuevo filtro tokenAccounts, puedes obtener el historial completo de una wallet en una sola solicitud RPC:
{
"jsonrpc": "2.0",
"id": "helius-example",
"method": "getTransactionsForAddress",
"params": [
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"filters": {
"tokenAccounts": "all"
},
"sortOrder": "asc",
"limit": 100
}
]
}Eso es todo. Una llamada. Historial completo.
Opciones de filtrado
El filtro tokenAccounts ofrece tres opciones: none, balanceChanged y all.
none (predeterminado)
Cuando el filtro tokenAccounts se establece en none, las transacciones deben hacer referencia a la dirección de la wallet.
balanceChanged (recomendado)
Cuando se aplica balanceChanged, las transacciones hacen referencia a la dirección de la wallet o modifican el saldo de una cuenta de tokens propiedad de la wallet.
all
Establecer tokenAccounts en all exige que las transacciones hagan referencia a la dirección de la wallet o a una cuenta de tokens propiedad de la wallet.
Casos de uso
Esta nueva función es esencial para:
- Wallets que muestran el historial completo de transacciones
- Rastreadores de portafolios que necesitan registrar cada movimiento de tokens
- Software tributario que calcula ganancias y pérdidas de todos los tokens
- Paneles de análisis que muestran la actividad de los usuarios
Comienza ahora
La función tokenAccounts ya está disponible.
Solo agrega tokenAccounts: balanceChanged (o all) a tu objeto de filtros y listo.
¿Aún no usas getTransactionsForAddress?
Consulta nuestra documentación y nuestros SDK para obtener más información y comenzar.
Artículos relacionados
Suscríbete a Helius
Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos


