Skip to main content
Este é o caminho de envio de transações básico — cobrado por envio e melhor quando a confiabilidade importa mais que a velocidade bruta (pagamentos, carteiras, apps). Se você estiver negociando e precisar da menor latência, use o Helius Sender em vez disso.
Construir sua própria lógica de envio de transações é a melhor maneira de garantir o máximo desempenho, controle e confiabilidade para sua aplicação. Embora o Helius SDK forneça uma camada conveniente para começar, entender e implementar este fluxo de trabalho manual é altamente recomendável para sistemas de produção. Este guia irá orientá-lo pelas etapas necessárias para construir sua própria solução.

O Fluxo de Trabalho Manual

Enviar uma transação manualmente envolve as seguintes etapas:
1

Construir a Transação Inicial

Monte suas instruções e assine a transação para que possa ser simulada.
2

Otimizar Unidades de Computação

Simule a transação para determinar as CUs precisas necessárias e adicione uma pequena margem.
3

Adicionar Taxas de Prioridade

Obtenha uma estimativa de taxa da Helius Priority Fee API e adicione à sua transação.
4

Enviar e Reenviar

Envie a transação final e implemente uma estratégia de polling robusta para lidar com a confirmação.
Os SDKs da Helius são de código aberto. Você pode ver o código subjacente para o método sendSmartTransaction em nosso Node.js SDK e Rust SDK para ver uma implementação de nível de produção deste fluxo de trabalho.

1. Construir a Transação Inicial

Primeiro, reúna todas as instruções que você deseja incluir em sua transação. Em seguida, crie um objeto Transaction ou VersionedTransaction. Você também precisará buscar um blockhash recente. Este exemplo prepara uma transação com versão. Neste estágio, você também deve assiná-la para que possa ser simulada na próxima etapa.

2. Otimizar o Uso de Unidades de Computação (CU)

Para evitar desperdiçar taxas ou ter sua transação falhando, você deve definir o limite de unidades de computação (CU) o mais precisamente possível. Você pode fazer isso simulando a transação usando o método RPC simulateTransaction. É uma boa prática simular primeiro com um limite de CU alto para garantir que a simulação seja bem-sucedida, e então use o unitsConsumed da resposta para definir seu limite real.
Agora você tem uma instrução que define o limite de computação precisamente. Você adicionará isso à sua transação final.

3. Definir a Taxa de Prioridade Correta

Em seguida, determine a taxa de prioridade ideal a ser adicionada à sua transação. Usar a Helius Priority Fee API é a melhor maneira de obter uma estimativa em tempo real com base nas condições atuais da rede. Você precisará chamar o método RPC getPriorityFeeEstimate. Para a maior chance de inclusão via conexões apostas da Helius, use a opção recommended: true.

4. Construir, Enviar e Confirmar

Agora, monte a transação final com as novas instruções de orçamento de computação, envie-a e implemente um mecanismo de polling robusto para confirmar que foi processada.
Não confie na lógica de retry padrão do provedor RPC (maxRetries em sendTransaction). Embora as conexões apostas da Helius encaminhem sua transação diretamente para o líder, ela ainda pode ser descartada. Você deve implementar sua própria lógica de reenvio para confirmação confiável.
Um padrão comum é reenviar a mesma transação periodicamente até que o blockhash expire. Reassine a transação apenas se você também estiver buscando um novo blockhash. Reassinar com o mesmo blockhash pode levar a transações duplicadas sendo confirmadas.
Este exemplo fornece um loop de polling básico. Uma aplicação de nível de produção requereria uma lógica mais sofisticada, incluindo o tratamento de diferentes status de confirmação e potenciais timeouts.

Proteja-se contra ataques de sanduíche

Para desviar sua transação de validadores estatisticamente ligados a ataques de sanduíche, adicione o parâmetro de consulta mev-protect=true ao seu URL RPC — sem alterações na lógica da sua transação:

MEV Protect

Veja como o MEV Protect funciona, quais métodos ele suporta e suas desvantagens.

Ganhe reembolsos em suas transações

Você pode optar por ganhar uma parte do MEV que suas transações criam, pago automaticamente em SOL — sem alterações na lógica da sua transação.

Reembolsos de Transação

Adicione um parâmetro às suas chamadas sendTransaction para começar a ganhar reembolsos em SOL.

Métodos Relacionados

sendTransaction

Envie uma transação assinada para a rede

simulateTransaction

Simule uma transação para estimar unidades de computação

getSignatureStatuses

Verifique o status de confirmação das transações

getLatestBlockhash

Obtenha um blockhash recente para assinatura de transação

getBlockHeight

Obtenha a altura atual do bloco para verificações de expiração