Skip to main content

Visão Geral

Transações pré-processadas são transações Solana pré-execução entregues antes de alcançarem o nível de compromisso processed. O Helius agrega múltiplas fontes de pré-execução — principalmente fragmentos decodificados diretamente à medida que chegam ao validador, complementados por sinais de pré-confirmação — e os entrega como um fluxo único deduplicado, sem pacotes de fragmentos brutos para receber ou infraestrutura de desfragmentação para operar do seu lado. Transações originadas de sinais de pré-confirmação chegam mais tarde neste feed do que no produto dedicado Pré-confirmações, que continua sendo o acesso mais cedo a elas. A forma de consumir transações pré-processadas é o método preprocessedSubscribe WebSocket (Beta Público) — disponível em todos os planos pagos a 0,1 créditos por mensagem.

preprocessedSubscribe (WSS)

A maneira recomendada para transmitir transações pré-processadas: filtragem de contas, payloads binários compactos, todos os planos pagos.

Onde as transações pré-processadas se encontram no ciclo de vida

Na arquitetura Solana, as transações passam por várias etapas antes de serem totalmente processadas:
  1. Recepção de Fragmentos → O validador recebe fragmentos de transações (fragmentos de dados). ← Fragmentos brutos (UDP) são entregues aqui.
  2. Decodificação de Fragmentos → Fragmentos são decodificados em transações brutas. ← As transações pré-processadas são entregues principalmente aqui.
  3. Execução de Transações → A transação é executada pelo runtime.
  4. Geração de Metadados → Saldos pré/pós, logs e informações de erro são computados.
  5. Compromisso → A transação atinge o estado processado/confirmado/finalizado. ← LaserStream gRPC e LaserStream WebSocket entregam aqui.
Assinaturas pós-execução entregam dados no estágio 5 — após a execução completa e geração de metadados. Transações pré-processadas são entregues no tempo do estágio 2 — após a decodificação do fragmento, antes de a execução ser concluída. Para um sinal ainda mais cedo, a Pré-confirmação transmite transações antes de se tornarem fragmentos. A troca: você recebe dados de transação mais cedo, mas sem metadados de execução como alterações de saldo, logs ou informações de erro.
Este é um fluxo somente de transações. Atualizações de estado de conta e programa não existem até que o runtime execute a transação. Se você precisar de atualizações em tempo real de conta ou programa — saldos de tokens, estado de curva de ligação, contas de programa — use LaserStream gRPC em compromisso processed em vez disso.

Quais dados estão disponíveis?

As transações pré-processadas incluem a transação assinada completa, mas não possuem metadados de execução:

Dados Disponíveis

  • ✅ Assinatura da transação - Identificador único da transação
  • ✅ Chaves de conta - Todas as contas referenciadas pela transação
  • ✅ Instruções - Dados completos de instrução e chamadas de programa
  • ✅ Hash do bloco recente - Referência de expiração da transação
  • ✅ Assinaturas - Todas as assinaturas de transação
  • ✅ Número do slot - Em qual slot a transação foi observada

Dados Ausentes

  • ❌ Metadados da transação - Alterações de saldo de tokens, saldos pré/pós, status da transação
  • ❌ Erros de transação - Não podemos determinar se a transação falhou
  • ❌ Instruções internas - Invocações entre programas (CPIs) não são incluídas
  • ❌ Mensagens de log - Logs de programas são gerados durante a execução
  • ❌ Unidades de computação consumidas - Métricas de execução indisponíveis
Pense nas transações pré-processadas como receber a “proposta” sem o “resultado”. Você vê o que o remetente tentou fazer, mas não o que realmente aconteceu.

Garantias de entrega

A entrega é por melhor esforço, não garantida, e não há repetição histórica. Uma transação transmitida é um sinal pré-execução, não um nível de compromisso — ela pode falhar, ser descartada ou cair em um fork diferente. Deduplicate por assinatura e reconcilie contra um fluxo processado ou confirmado quando os resultados da execução forem importantes. Para aplicações críticas que requerem entrega garantida e dados completos, use LaserStream gRPC em vez disso.

Quando usar transações pré-processadas

Aplicações sensíveis a latência que desejam transações decodificadas, pré-execução sem operar um decodificador de fragmentos:
  • propAMMs
  • Snipers
  • Traders de cópia
  • Bots de liquidação
  • Arbitragem
Se cada microssegundo importa e você pode desmontar na velocidade da linha, use fragmentos brutos (UDP). Se você precisar do sinal mais cedo possível, use Pré-confirmaciones.

Preços

preprocessedSubscribe está disponível em todos os planos pagos e tarifado a 0,1 créditos por mensagem — uma mensagem por transação entregue. Veja Créditos para detalhes.

Perguntas Frequentes

Não, o filtro é fixo pela preprocessedSubscribe inicial. Para evitar um gap, recomendamos abrir uma segunda conexão com o novo filtro, aguardar o reconhecimento da assinatura e então mudar o seu serviço para o novo filtro.
O limite de 10 conexões concorrentes é aplicado por chave de API. Cada chave de API em um projeto tem seu próprio limite de 10 conexões.

Próximos passos

Inscrever-se com preprocessedSubscribe

Endpoint, filtragem de contas, layout de payload binário e exemplos de código.

Pré-confirmações

Transações transmitidas antes de se tornarem fragmentos — o sinal de transação mais precoce.

Fragmentos Brutos (UDP)

Pacotes de fragmentos não processados via UDP. Você implementa a desfragmentação.

Helius Sender

Aja sobre o que você vê com o pouso de transação mais rápido.