Skip to main content

Visão Geral

getTransfersByAddress é um método RPC exclusivo do Helius que retorna objetos de transferência de tokens e SOL nativo em formato legível para um endereço de carteira. Não faz parte do RPC padrão do Solana. Focado em atividades de transferência, ele retorna registros concisos de transferências ao invés de cargas de transação completas. Cada registro é normalizado com contas de proprietário e de token analisadas, mints, quantias brutas, decimais, quantias UI, posições de instruções e status de confirmação, para que você possa reconciliar o movimento de saldo sem reimplementar a análise de token do Solana. Este método requer um Plano Desenvolvedor ou superior e custa 10 créditos por solicitação.

Objetos de transferência analisados

Retorna registros de transferência legíveis com contas analisadas, quantias, decimais e tipos de transferência.

Pronto para reconciliação

Modela taxas SOL, WSOL, Token-2022, mints, queimas e alterações de proprietário de conta para que os saldos possam ser reconciliados com precisão.

Filtros de mint, tempo e quantia

Restringe o histórico de transferências pelo endereço do mint, intervalo de tempo do bloco ou intervalo de quantia bruta.

Filtros de contraparte

Filtra transferências por remetente ou destinatário com with e direction.

Quando usar isso

Use getTransfersByAddress quando precisar de:
  • Histórico de transferências de carteira para pagamentos ou monitoramento de transferências
  • Análise de atividade de portfólio e movimento de token
  • Reconciliação de saldo confiável para livros e contabilidade
  • Relatórios de transferência específicos de contraparte (quem enviou ou recebeu o quê)
  • Manipulação normalizada de taxas SOL/WSOL, Token-2022, mint e queima sem escrever um analisador
Use getTransactionsForAddress em vez disso quando precisar de dados completos de transação, histórico apenas de assinaturas ou atividades não relacionadas a transferências. Um padrão comum é percorrer transferências aqui e, em seguida, buscar as transações completas subjacentes com chamadas em lote getTransaction (veja Buscar transações completas para linhas de transferência).

Precisão e reconciliação

getTransfersByAddress é projetado para aplicativos que precisam de histórico de transferências confiável para livros, rastreamento de pagamentos, atividade de portfólio e reconciliação de saldos. Em vez de retornar cargas de transação brutas e deixar todos os casos de borda para o seu analisador, a API retorna objetos de transferência normalizados. A resposta modela explicitamente os casos de transferência que tornam o histórico do Solana difícil de reconciliar:
  • Transferências padrão de token SPL e SOL nativo.
  • Transferências Token-2022 com taxas retidas, representadas como linhas transfer comuns com campos de taxas separados.
  • Mints e queimas, representados como transferências com um remetente ou destinatário null.
  • Comportamento de empacotamento e desempacotamento de SOL, com um modo padrão projetado para evitar linhas de ciclo de vida ruidosas.
  • Alterações de proprietário de conta de token via SetAuthority.
  • Retiradas de taxas retidas Token-2022.
  • Fluxos de contas intermediárias, retornados como os registros de transferência subjacentes em vez de serem colapsados em um movimento líquido estimado.
Para eventos de transferência visíveis suportados, isso permite reconciliação do movimento de saldo sem reimplementação da lógica de análise de token do Solana. Exclusões conhecidas, como movimentos ocultos de SOL inferidos apenas a partir de mudanças de saldo, são mencionadas em Limitações.

Início Rápido

Parâmetros de solicitação

Passe o endereço do proprietário da carteira, não uma conta de token associada (ATA). A API encontra atividades de transferência para contas de token de propriedade dessa carteira.
string
obrigatório
Endereço de carteira do proprietário codificado em Base58 para consultar transferências. Passe o endereço do proprietário da carteira, não uma conta de token associada (ATA).
object
Objeto de configuração opcional para filtragem, paginação, compromisso, ordenação e comportamento SOL/WSOL.
string
Filtra por endereço de contraparte. Retorna apenas transferências para ou deste endereço.
string
padrão:"any"
Filtra por direção de transferência em relação a address.
  • in: transferências recebidas por address
  • out: transferências enviadas por address
  • any: transferências de entrada e saída
string
Filtra por endereço de mint de token. Use So11111111111111111111111111111111111111111 para SOL nativo e So11111111111111111111111111111111111111112 para WSOL.
string
padrão:"merged"
Controla como SOL nativo e WSOL são representados.
  • merged: WSOL é tratado como SOL nativo. Linhas de ciclo de vida de empacotar e desempacotar são excluídas, e valores de mint WSOL são reescritos para o mint nativo de SOL.
  • separate: WSOL é preservado como um mint distinto, e linhas de ciclo de vida de empacotar e desempacotar são incluídas.
object
Filtros adicionais para quantia, tempo de bloco e slot.
number
padrão:"100"
Número máximo de transferências a serem retornadas. Intervalo: 1 a 100.
string
Cursor da resposta anterior para paginação.
string
padrão:"finalized"
Nível de compromisso dos dados.
  • finalized
  • confirmed
number
O slot mínimo em que a solicitação pode ser avaliada
string
padrão:"desc"
Ordenação de resultados.
  • desc: mais recente primeiro
  • asc: mais antigo primeiro

Resposta

Detalhes dos campos da resposta

  • fromUserAccount e toUserAccount estão sempre presentes. Quando um lado não existe, o valor é null.
  • fromTokenAccount e toTokenAccount são incluídos apenas quando pontos terminais de conta de token são significativos para a linha. Eles são completamente omitidos para transferências de SOL nativo.
  • Transferências de mint são unilaterais: fromUserAccount é null, e só podem ser retornadas como transferências de entrada para o destinatário.
  • Transferências de queima são unilaterais: toUserAccount é null, e só podem ser retornadas como transferências de saída para o proprietário queimador.

Filtros

Use filtros de comparação para consultas de intervalo numérico. Todos os campos de comparação são opcionais e podem ser combinados.

Tipos de transferência

O campo type identifica o comportamento de transferência representado por cada linha.

Tipos de transferência e instruções

Comportamento SOL e wSOL

SOL existe no Solana em duas formas que geralmente aparecem juntas em atividades reais dos usuários:
  • SOL Nativo é o ativo nativo da blockchain. Ele vive diretamente em uma carteira ou conta como lamports. Um SOL é 1.000.000.000 lamports.
  • SOL Empacotado (WSOL, frequentemente escrito wSOL) é uma representação de token SPL do SOL. Ele usa o mint WSOL So11111111111111111111111111111111111111112 e vive em uma conta de token, como o USDC ou qualquer outro token SPL.
Usuários e aplicativos empacotam SOL quando precisam que o SOL se comporte como um token SPL, geralmente para DeFi, trocas, contabilidade baseada em conta de token ou interfaces de programa que aceitam apenas tokens SPL. O empacotamento geralmente financia uma conta de token com SOL nativo e a sincroniza com WSOL. O desembrulho fecha a conta de token WSOL e retorna o SOL a um destino de lamports. Esse ciclo de vida pode criar um histórico confuso se você está tentando responder a uma pergunta simples como “quanto SOL foi movido entre esta carteira e outra pessoa?” Um empacotamento ou desembrulho frequentemente move SOL entre contas controladas pelo mesmo proprietário. Se essas linhas de ciclo de vida forem mostradas como transferências comuns por padrão, aplicativos podem contar duas vezes a atividade ou mostrar contabilidade interna como pagamentos externos. Por padrão, getTransfersByAddress usa solMode: "merged". Neste modo:
  • SOL nativo e WSOL são tratados como um ativo SOL ao consultar por So11111111111111111111111111111111111111111.
  • Linhas de transferência de WSOL são normalizadas para o mint nativo de SOL para que o histórico denominado em SOL seja mais fácil de reconciliar.
  • Linhas de ciclo de vida de empacotar e desempacotar são excluídas porque geralmente representam movimento entre contas controladas pelo mesmo proprietário, não um pagamento a outro usuário.
  • Transferências de SOL e WSOL entre diferentes proprietários ainda são representadas como transferências.
  • Aluguel recuperado de CloseAccount é representado como uma linha unwrap de SOL nativo quando linhas de ciclo de vida de fechamento de conta são retornadas.
Use solMode: "separate" quando você precisar do WSOL como um mint de token SPL distinto ou quiser inspecionar registros de ciclo de vida de empacotar e desempacotar. Neste modo, WSOL mantém o mint So11111111111111111111111111111111111111112, e registros de empacotar/desempacotar são retornados com type: "wrap" ou type: "unwrap". Para fechamentos de contas WSOL em solMode: "separate", registros unwrap para o mint WSOL representam o saldo restante do token WSOL retornado como SOL. O aluguel reembolsado da conta de token fechada é retornado como uma linha separada unwrap de SOL nativo.

Taxas de transferência Token-2022

Instruções TransferCheckedWithFee Token-2022 são representadas como um registro de transferência com type: "transfer". O valor de destino é retornado em amount; detalhes de taxa retida são retornados em feeAmount e feeUiAmount. Para transferências com taxas, a origem é debitada amount + feeAmount, enquanto o destino é creditado amount.

Exemplos

Filtrar por USDC

Transferências de entrada de um remetente

Intervalo de quantia e tempo

Solicitação paginada

Buscar transações completas para linhas de transferência

getTransfersByAddress retorna linhas de transferência analisadas, não cargas de transação completas. Se você precisar da transação completa para cada transferência, percorra as transferências primeiro, elimine duplicatas por signature e, em seguida, busque as transações completas com chamadas em lote getTransaction. getTransfersByAddress não é agrupável em várias endereços de proprietário. Consulte um endereço de proprietário por vez e, em seguida, agrupe as solicitações getTransaction resultantes por assinatura. Uma única transação pode emitir várias linhas de transferência, então sempre elimine assinaturas duplicadas antes de buscar transações.

Limitações

  • Transações falhas não estão incluídas na V1.
  • Movimentos ocultos de SOL inferidos apenas a partir de alterações de saldo não são suportados na V1.
  • harvestWithheldTokensToMint não é suportado na V1 porque não indica a quantia coletada.
  • Fluxos de contas intermediárias não são reduzidos. Se uma transação movimenta fundos através de contas intermediárias, os registros de transferência subjacentes são retornados.
  • Não agrupável em vários endereços de proprietário. Consulte um proprietário por vez.

Próximos passos

getTransactionsForAddress

Histórico completo de transações com filtragem, ordenação e suporte a conta de token.

Referência de API

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

Guia de Indexação

Preencha e sincronize dados de transferência em seu próprio índice.

Visão geral de dados históricos

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