Skip to main content

Visão Geral

getTransactionsForAddress é um método RPC exclusivo do Helius que retorna o histórico de transações de um endereço com filtragem avançada, ordenação flexível e paginação eficiente. Não faz parte do RPC padrão do Solana. Diferentemente do getSignaturesForAddress, que só retorna assinaturas e ignora contas de tokens associadas, o getTransactionsForAddress pode retornar dados completos de transações, incluindo a atividade da conta de token associada (ATA) de uma carteira, em uma única chamada. Isso o torna o caminho mais rápido para um histórico completo de endereços para retroalimentação, indexação e análises. Este método retorna até 1.000 transações completas por chamada.

Ordenação flexível

Ordenar cronologicamente (mais antigo primeiro) ou inverso (mais recente primeiro).

Filtragem avançada

Filtrar por intervalos de tempo, slots, assinaturas, status e transferências de tokens.

Dados completos de transações

Obtenha detalhes completos das transações em uma única chamada, sem necessidade de getTransaction de acompanhamento.

Contas de tokens

Incluir transações para contas de tokens associadas a um endereço.

Quando usar isso

Use getTransactionsForAddress quando você precisar de:
  • Histórico completo de tokens de carteira, incluindo contas de tokens associadas
  • Um retrocesso rápido em uma única chamada para um indexador ou pipeline de dados
  • Análise e relatórios de transações baseados em tempo ou slot
  • Filtragem de status para manter apenas transações bem-sucedidas ou apenas falhas
  • Reprodução histórica cronológica (ordenação do mais antigo para o mais recente)
  • Análise de lançamento de tokens: primeiras transações de mint e primeiros detentores
  • Histórico de financiamento de carteiras e descoberta de contrapartes
  • Relatórios de conformidade e auditoria para um período de tempo específico
Para histórico analisado e somente transferência (pagamentos, reconciliação de saldo), use getTransfersByAddress em vez disso.

Suporte de rede

Início Rápido

1

Obtenha sua chave API

Obtenha sua chave API no Painel do Helius.
2

Consulta com recursos avançados

Obtenha todas as transações bem-sucedidas para uma carteira entre duas datas, ordenadas cronologicamente:
3

Compreender os parâmetros

Este exemplo mostra os recursos chave:
  • transactionDetails: defina como 'full' para obter dados completos de transações em uma única chamada
  • sortOrder: use 'asc' para ordem cronológica (mais antigo primeiro) ou 'desc' para o mais recente primeiro
  • filters.blockTime: defina intervalos de tempo com gte (maior ou igual) e lte (menor ou igual)
  • filters.status: filtre apenas 'succeeded' ou 'failed' transações
  • filters.tokenAccounts: inclua transferências, mints e queimas para contas de tokens associadas

Parâmetros de solicitação

string
obrigatório
Chave pública codificada em Base-58 da conta para consultar o histórico de transações
string
padrão:"signatures"
Nível de detalhe da transação a ser retornado:
  • signatures: Informações básicas de assinatura (mais rápido)
  • full: Dados completos da transação (elimina a necessidade de chamadas getTransaction, suporta limite de até 1.000)
string
padrão:"desc"
Ordem de classificação dos resultados:
  • desc: Mais recente primeiro (padrão)
  • asc: Mais antigo primeiro (cronológico, ótimo para análise histórica)
number
padrão:"1000"
Máximo de transações a serem retornadas:
  • Até 1000 quando transactionDetails: "signatures"
  • Até 1000 quando transactionDetails: "full"
string
Token de paginação da resposta anterior (formato: "slot:position")
string
padrão:"finalized"
Nível de comprometimento: finalized ou confirmed. O compromisso processed não é suportado.
object
Opções avançadas de filtragem para restringir os resultados.
object
Filtrar por número de slot usando operadores de comparação: gte, gt, lte, ltExemplo: { "slot": { "gte": 1000, "lte": 2000 } }
object
Filtrar por timestamp Unix usando operadores de comparação: gte, gt, lte, lt, eqExemplo: { "blockTime": { "gte": 1640995200, "lte": 1641081600 } }
object
Filtrar por assinatura de transação usando operadores de comparação: gte, gt, lte, ltExemplo: { "signature": { "lt": "SIGNATURE_STRING" } }
string
Filtrar por status de sucesso/fracasso da transação:
  • succeeded: Apenas transações bem-sucedidas
  • failed: Apenas transações falhas
  • any: Ambas bem-sucedidas e falhas (padrão)
Exemplo: { "status": "succeeded" }
string
padrão:"none"
Filtrar transações para contas de tokens relacionadas:
  • none: Apenas retornar transações que fazem referência ao endereço fornecido (padrão)
  • balanceChanged: Retornar transações que fazem referência ao endereço fornecido ou modificam o saldo de uma conta de token de propriedade do endereço fornecido (recomendado)
  • all: Retornar transações que fazem referência ao endereço fornecido ou a qualquer conta de token de propriedade do endereço fornecido
Exemplo: { "tokenAccounts": "balanceChanged" }
object
Filtrar para transações onde o endereço consultado participou de uma transferência de token que corresponde a uma contraparte, direção, mint ou faixa de quantidade bruta. Todos os campos são opcionais e combinados com semântica AND.Exemplo: { "tokenTransfer": { "direction": "in", "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } }
string
Endereço da contraparte. Combina transferências cuja outra parte é este endereço.
string
padrão:"any"
Filtrar por direção da transferência em relação ao endereço consultado:
  • in: Transferências recebidas pelo endereço consultado
  • out: Transferências enviadas pelo endereço consultado
  • any: Transferências de entrada e saída
string
Mint do token para filtrar.
object
Comparação de valores usando a quantidade bruta on-chain, não a quantidade ajustada pela UI ou por decimais. Suporta gt, gte, lt, e lte.
string
Formato de codificação para dados de transação (apenas aplica-se quando transactionDetails: "full"). O mesmo que getTransaction API. Opções: json, jsonParsed, base64, base58
number
Defina a versão máxima da transação a ser retornada. Se omitido, apenas transações legadas serão retornadas. Defina como 0 para incluir todas as transações versionadas.
number
O slot mínimo em que a solicitação pode ser avaliada

Medição

Respostas bem-sucedidas são medidas pelo que é retornado:

Resposta

O formato da resposta depende de transactionDetails. O modo de assinaturas retorna registros de assinatura leves; o modo completo retorna objetos completos de transação e metadata.

Campos de Resposta

O campo transactionIndex é exclusivo para getTransactionsForAddress. Outros endpoints semelhantes como getSignaturesForAddress, getTransaction e getTransactions não incluem este campo.

Filtros

Você pode usar operadores de comparação para slot, blockTime, e signature, além dos filtros especiais status, tokenAccounts, e tokenTransfer. A combinação de múltiplos filtros reduz o resultado à sua interseção.

Operadores de comparação

Esses operadores funcionam como consultas de banco de dados para dar a você controle preciso sobre seu intervalo de dados.

Filtros de Enumeração

Exemplos de filtros combinados:

Contas de tokens associadas

No Solana, uma carteira não segura tokens diretamente. Em vez disso, a carteira possui contas de tokens, e essas contas de tokens armazenam os tokens. 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. Este método é exclusivo porque pode consultar histórico completo de tokens, incluindo contas de tokens associadas (ATAs) de uma carteira. Métodos RPC nativos como getSignaturesForAddress não incluem ATAs. O filtro tokenAccounts controla esse comportamento:
  • none (padrão): Retorna apenas transações que referenciam diretamente o endereço da carteira. Use isso quando você só se importa com interações diretas da carteira.
  • balanceChanged (recomendado): Retorna transações que referenciam o endereço da carteira ou modificam o saldo de uma conta de token de propriedade da carteira. Isso elimina spam e operações não relacionadas como coletas de taxas ou delegações, fornecendo uma visão limpa da atividade significativa da carteira.
  • all: Retorna todas as transações que referenciam o endereço da carteira ou qualquer conta de token de propriedade da carteira.
O filtro tokenAccounts não suporta transações anteriores a dezembro de 2022. Ele depende de metadados de transferência de tokens introduzidos no Solana no slot 111,491,819. Para cobrir atividades anteriores, veja a solução alternativa de conta de token histórica.

Filtro de transferência de tokens

O filtro tokenTransfer restringe os resultados para transações onde o endereço consultado participou de uma transferência de token que corresponde a critérios específicos: uma contraparte particular, mint, direção ou faixa de valores. Use-o para responder a perguntas como:
  • Quando esta carteira recebeu USDC de uma contraparte específica?
  • Mostrar todas as transferências de saída acima de 1.000 tokens.
  • Quando esta carteira já interagiu com este mint específico?
O filtro é um campo opcional dentro do objeto filters da configuração da solicitação:
Todos os campos dentro de tokenTransfer são opcionais. A combinação de múltiplos campos é tratada como AND. Operadores de faixa de valores: Você pode combinar operadores de valor, como { "gte": 1000000, "lte": 5000000 } para um intervalo fechado. tokenTransfer compõe-se com os outros filtros de nível superior (slot, blockTime, status, e tokenAccounts); o resultado final é a interseção.

Exemplos

Análise baseada no tempo

Gerar relatórios mensais de transações:
Processo para análise:

Criação de mint de token

Encontrar a transação de criação de mint para um token específico:
Para criação de pool de liquidez, consultar o endereço do pool:
Isso encontra o momento exato em que um mint de token ou pool de liquidez foi criado, incluindo o endereço do criador e os parâmetros iniciais.

Transações de financiamento

Descobrir quem financiou um endereço específico:
Em seguida, analisar os dados da transação para encontrar transferências de SOL:
As primeiras transações frequentemente revelam a fonte do financiamento e podem ajudar a identificar endereços relacionados ou padrões de financiamento.

Transferências de tokens

Filtrar por tokenTransfer para isolar movimentos específicos de tokens. Entradas de USDC para um endereço:
Grandes transferências de saída para uma contraparte específica:
Combinado com intervalo de slots e status:

Paginação

Quando você tem mais transações do que o seu limite, use o paginationToken da resposta para buscar a próxima página. O token é uma string simples no formato "slot:position" que informa a API de onde continuar. Use o token de paginação de cada resposta para buscar a próxima página:

Múltiplos endereços

Você não pode consultar vários endereços em uma única solicitação. Cada consulta de endereço conta como uma solicitação de API separada e é medida de acordo. Para buscar transações para múltiplos endereços, consulte cada endereço dentro do mesmo tempo ou janela de slots, depois mescle e ordene:
Para escaneamentos de histórico maiores, itere por janelas de tempo ou slots (por exemplo, 1000 slots de cada vez) e repita este padrão.

Melhores práticas

Desempenho. Use transactionDetails: "signatures" quando você não precisar de dados completos de transação. Use tamanhos de página razoáveis para melhores tempos de resposta, e filtre por intervalos de tempo ou slots específicos para consultas mais direcionadas. Filtragem. Comece com filtros amplos e vá estreitando progressivamente. Use filtros baseados em tempo para análises e fluxos de trabalho de relatórios, e combine múltiplos filtros para consultas precisas que visam tipos de transações específicos ou períodos de tempo. Paginação. Armazene tokens de paginação quando precisar retomar consultas grandes mais tarde. Monitore a profundidade da paginação para planejamento de desempenho, e use ordem ascendente quando precisar reproduzir eventos históricos em ordem cronológica. Tratamento de erros. Lide com limites de taxa de forma elegante com backoff exponencial. Valide endereços antes de fazer solicitações, e armazene em cache os resultados quando apropriado para reduzir o uso da API.

Limitações e casos extremos

Um pequeno conjunto de endereços roteia para arquivamento legado, são limitados à fallback de escaneamento de slots, ou retornam vazio. A descoberta de contas de tokens antes do slot 111.491.819 também requer uma solução alternativa. Expanda as seções abaixo para obter todos os detalhes.
Roteado para arquivamento antigo. Solicitações para estes endereços são roteadas para nosso sistema de arquivamento antigo.Fallback de escaneamento de slot. Solicitações para esses endereços são encaminhadas para nosso novo sistema de arquivamento, e podem ser consultadas através de uma abordagem de escaneamento slot a slot (máx. 100 slots). No entanto, esses dados não são indexados.Retorna vazio (is_reserved_address). Solicitações são encaminhadas para nosso novo sistema de arquivamento, entretanto, os dados não são indexados, e as consultas retornam vazio.
Para endereços com atividade de conta de token antes do slot 111,491,819, o filtro tokenAccounts não pode determinar a propriedade porque o campo owner nos metadados de balanço de tokens ainda não existia. Para obter resultados completos, você pode descobrir essas contas de tokens manualmente, analisando instruções de transações iniciais, depois consultar getTransactionsForAddress em paralelo para cada uma.

Como isso é diferente de getSignaturesForAddress?

Se você está familiarizado com o método padrão getSignaturesForAddress, o getTransactionsForAddress colapsa fluxos de trabalho em várias etapas em uma única chamada e adiciona filtragem, ordenação e suporte a contas de tokens.

Obtenha transações completas em uma única chamada

Com o getSignaturesForAddress, você precisa de duas etapas:
Com o getTransactionsForAddress, é uma chamada:

Obtenha histórico de tokens em uma única chamada

Com o getSignaturesForAddress, você precisa primeiro chamar getTokenAccountsByOwner e depois consultar para cada conta de token:
Com o getTransactionsForAddress, você só precisa definir filters.tokenAccounts:

Capacidades adicionais

Ordenação cronológica

Ordenar transações do mais antigo para o mais novo com sortOrder: 'asc'.

Filtragem baseada no tempo

Filtrar por intervalos de tempo usando filtros blockTime.

Filtragem de status

Obtenha apenas transações bem-sucedidas ou falhas com o filtro status.

Paginação mais simples

Use paginationToken em vez de before / until assinaturas confusas.

Próximos passos

Guia de Indexação

Use getTransactionsForAddress para retroalimentar e sincronizar um índice Solana.

getTransfersByAddress

Histórico analisado e apenas transferência para pagamentos e reconciliação.

Referência da API

Esquema completo de solicitação e resposta para getTransactionsForAddress.

Visão geral de dados históricos

Compare todos os métodos de dados históricos do Solana.