
Apresentamos os filtros de contas de token para gTFA
Em outubro passado, lançamos getTransactionsForAddress, uma nova chamada RPC da Solana para consultar dados históricos que combina getSignaturesForAddress e getTransaction em um único método.
Hoje, temos o prazer de anunciar que getTransactionsForAddress (gTFA) agora pode consultar o histórico de transferências de tokens de uma carteira com uma única chamada RPC.
O novo recurso tokenAccounts permite incluir transações das contas de token associadas à carteira — que antes eram omitidas do gTFA e de seu antecessor, getSignaturesForAddress.
Antes, os desenvolvedores precisavam consultar getTokenAccountsByOwner e depois getSignaturesForAddress para cada conta de token.
Isso era lento e caro, muitas vezes exigindo centenas de chamadas RPC adicionais.
Agora, basta uma única chamada a getTransactionsForAddress com tokenAccounts.
O problema
Na Solana, sua carteira não armazena tokens diretamente.
Em vez disso, sua carteira possui Associated Token Accounts (ATAs), e essas contas de token armazenam seus tokens.
Por exemplo, quando alguém envia USDC para você, ele vai para sua conta de token USDC, não para o endereço principal da sua carteira.
Isso cria um grande problema ao consultar o histórico de transações de uma carteira:
Quando você chama getSignaturesForAddress em uma carteira, recebe apenas as transações que fazem referência direta ao endereço dessa carteira.
As transferências de tokens que interagem com suas contas de token, mas não mencionam sua carteira, simplesmente não aparecem.
A solução alternativa
Até agora, os desenvolvedores precisavam implementar uma solução alternativa trabalhosa:
- Chamar
getTokenAccountsByOwnerpara obter as contas de token de uma carteira - Chamar
getSignaturesForAddresspara a própria carteira - Chamar
getSignaturesForAddresspara cada conta de token - Combinar todos os resultados
- Remover duplicatas (muitas transações envolvem várias contas)
- Ordenar cronologicamente
Essa abordagem é problemática por vários motivos:
1. O desempenho é lento
Uma carteira com 50 contas de token exige mais de 51 chamadas RPC apenas para criar um histórico completo. Traders profissionais, usuários frequentes de DeFi ou traders casuais de memecoins podem ter centenas de contas de token.
2. A paginação é ineficiente
Quer as 20 transações mais recentes? Não basta buscar 20 de cada fonte e combinar os resultados — você precisa buscar tudo, remover duplicatas, ordenar e só então selecionar as primeiras 20 transações.
Não há como paginar com eficiência sem buscar dados em excesso.
3. Os custos de RPC se acumulam
Cada chamada RPC tem um custo adicional. Multiplicar esse custo por mais de 100 chamadas para cada solicitação de usuário fica caro rapidamente, especialmente em grande escala.
A solução
Com o novo filtro tokenAccounts, você pode obter o histórico completo de uma carteira em uma única solicitação RPC:
{
"jsonrpc": "2.0",
"id": "helius-example",
"method": "getTransactionsForAddress",
"params": [
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"filters": {
"tokenAccounts": "all"
},
"sortOrder": "asc",
"limit": 100
}
]
}É só isso. Uma chamada. Histórico completo.
Opções de filtragem
O filtro tokenAccounts oferece três opções: none, balanceChanged e all.
none (padrão)
Quando o filtro tokenAccounts é definido como none, as transações devem fazer referência ao endereço da carteira.
balanceChanged (recomendado)
Quando balanceChanged é aplicado, as transações fazem referência ao endereço da carteira ou alteram o saldo de uma conta de token pertencente à carteira.
all
Definir tokenAccounts como all exige que as transações façam referência ao endereço da carteira ou a uma conta de token pertencente à carteira.
Casos de uso
Esse novo recurso é essencial para:
- Carteiras que exibem o histórico completo de transações
- Rastreadores de portfólio que precisam registrar toda movimentação de tokens
- Softwares fiscais que calculam ganhos e perdas em todos os tokens
- Painéis de análise que exibem a atividade dos usuários
Comece agora
O recurso tokenAccounts já está disponível.
Basta adicionar tokenAccounts: balanceChanged (ou all) ao seu objeto de filtros e pronto!
Ainda não usa getTransactionsForAddress?
Confira nossa documentação e nossos SDKs para saber mais e começar.
Artigos relacionados
Assine a Helius
Acompanhe as novidades mais recentes do desenvolvimento Solana e receba atualizações quando publicarmos


