Skip to main content
Melhores práticas e padrões recomendados para agentes usando o Helius TypeScript SDK. Para instalação e introdução, veja a visão geral.

Recomendações para Agentes

Use getTransactionsForAddress em vez de pesquisa em duas etapas

getTransactionsForAddress combina pesquisa de assinatura e busca de transação em uma única chamada com filtragem no servidor. Suporta intervalos de tempo/slot, filtragem de contas de token e paginação.

Use sendSmartTransaction para envios padrão

Simula automaticamente, estima unidades de computação, busca taxas de prioridade e confirma. Não construa manualmente instruções ComputeBudget — o SDK as adiciona automaticamente.

Use Helius Sender para latência ultrabaixa

Para transações sensíveis ao tempo (arbitragem, sniping, liquidações), use sendTransactionWithSender. Ele faz o roteamento através da infraestrutura multirregional da Helius e Jito.

Use getAssetBatch para múltiplos ativos

Ao buscar mais de um ativo, agrupe-os. Não chame getAsset em um loop.

Use webhooks ou WebSockets em vez de polling

Não faça polling de getTransactionsForAddress em um loop. Use webhooks para notificações de servidor para servidor ou WebSockets para streaming em tempo real no lado do cliente.

Paginação

O SDK usa diferentes estratégias de paginação dependendo do método.

Baseada em Token/Cursor (Métodos RPC V2)

Baseada em Página (API DAS)

Filtro tokenAccounts

Ao consultar getTransactionsForAddress, o filtro tokenAccounts controla se a atividade da conta de token está incluída:

changedSinceSlot — Busca Incremental de Contas

changedSinceSlot retorna apenas contas modificadas após um determinado slot. Útil para sincronização ou fluxos de indexação. Suportado por getProgramAccountsV2, getTokenAccountsByOwnerV2, getAccountInfo, getMultipleAccounts, getProgramAccounts, e getTokenAccountsByOwner.

Erros Comuns

  1. transactionDetails: "full" não é o padrão — Por padrão, getTransactionsForAddress retorna apenas assinaturas. Defina transactionDetails: "full" para obter dados completos da transação.
  2. Não adicione instruções ComputeBudget com sendSmartTransaction — O SDK as adiciona automaticamente. Adicionar as suas próprias causa instruções duplicadas e falha na transação.
  3. As taxas de prioridade são em microlamports por unidade de computação — Não em lamports. Os valores de getPriorityFeeEstimate já estão na unidade correta para SetComputeUnitPrice.
  4. A paginação DAS é indexada em 1page: 1 é a primeira página, não page: 0.
  5. blockTime é em segundos Unix, não milissegundos — Use Math.floor(Date.now() / 1000) ao filtrar por blockTime.
  6. getAsset oculta tokens fungíveis por padrão — Passe options: { showFungible: true } para incluí-los.
  7. Streams de WebSocket precisam de limpeza — Sempre use um sinal AbortController e chame helius.ws.close() quando terminar para evitar vazamentos de conexão.

Tratamento de Erros e Repetições

O SDK lança objetos Error nativos com o código de status HTTP embutido na string de mensagem (por exemplo, "API error (429): ..."). Não há propriedade .status no objeto de erro, então a detecção de status requer análise da mensagem.