Pré-requisitos: Uma chave API Helius (Plano Business ou Professional para Mainnet LaserStream) e Node.js 18+. Familiaridade com Assinaturas de Conta e Monitoramento de Transações ajuda, mas não é obrigatório.
Configuração
Crie um projeto novo, instale o SDK +bs58 (usado para decodificar assinaturas de transações) e defina sua chave API:
O script
Salve isso comoindex.ts, então execute npx ts-node index.ts:
O que o script faz
Uma assinatura, dois blocos de filtro
Uma única chamadasubscribe(...) carrega dois grupos de filtros nomeados:
- O filtro
accountsrecebe cada conta pertencente ao programa Pump.fun (curvas de vínculo, estado de mint, etc.) sempre que seus dados mudam. - O filtro
transactionsrecebe cada transação que interage com o programa Pump.fun. Os flagsvote: false, failed: falsedescartam votos e transações falhadas antes que atinjam seu manipulador.
Lendo os campos brutos
Alguns valores no payload precisam de uma pequena conversão antes de serem fáceis de usar:tx.signatureé umBuffer. Passe-o porbs58.encode(...)para obter a assinatura base58 que você veria em um explorador ou em uma respostagetTransaction.tx.meta.feeé um u64 armazenado como string, para que valores acima deNumber.MAX_SAFE_INTEGERnão percam precisão em JavaScript. Envolva-o emNumber(...)antes de fazer aritmética. A mesma convenção string-para-u64 se aplica a vários campos de nível de bloco também — veja Monitoramento de Slot & Bloco para o formato completo dos dados.
Estatísticas contínuas
UmsetInterval imprime um instantâneo a cada 60 segundos: total de transações, sucessos versus falhas, taxa de transferência, pagantes de taxas únicos e taxas totais em SOL. Pressione Ctrl+C para um último instantâneo antes que o script termine.
Estendendo o script
Algumas direções para expandir isso:- Decodifique discriminadores de instrução para rotular transações como
buy/sell/create— veja Decodificando Dados de Transação para o padrão de análise. - Persista as estatísticas contínuas em um banco de dados (Postgres, Redis, ClickHouse) em vez de em memória
Set/ contadores. - Alerta sobre limites — grandes pagadores de taxas, picos de volume súbitos, novas contas de curva de vínculo.
- Reproduza a atividade perdida na inicialização definindo
fromSlotemSubscribeRequest(até 24 horas atrás — veja Reprodução Histórica). - Combine com Monitoramento de Slot & Bloco para contexto em nível de bloco.
Próximos Passos
Monitoramento de Transações
Os padrões gerais de filtragem de transações que este script usa.
Decodificando Dados de Transação
Analise o payload binário da transação em transações Solana legíveis.
Assinaturas de Conta
Observe mudanças específicas no estado da conta com filtros.
Reprodução Histórica
Reproduza até 24h da atividade passada do Pump.fun a partir de um slot inicial.