getTransactionsForAddress da Helius, e transmitirá novas atividades ao vivo via transactionSubscribe. Você experimentará primeiro como uma demonstração incorporada e depois construirá como um aplicativo Next.js completo.
Experimente ao vivo
Cole sua chave de API e qualquer endereço de carteira para ver as três partes funcionando juntas: portfólio, histórico e um feed ao vivo. Estes são os mesmos dados que seu aplicativo renderizará.Construa como um aplicativo Next.js
Obtenha o aplicativo completo no GitHub
Clone o iniciador completo — o aplicativo Next.js finalizado deste walkthrough, pronto para
npm install && npm run dev.Pré-requisitos: Node.js 18+ e uma chave de API Helius.
1
Estruturar o projeto
ws para o feed WebSocket ao vivo.Adicione sua chave a .env.local:.env.local
2
Proxiar chamadas RPC através de um manipulador de rota
Isso mantém sua chave de API no lado do servidor. O cliente posta um método e parâmetros aqui, e o manipulador os executa através do Helius SDK, que anexa sua chave e constrói a solicitação para você.
app/api/helius/route.ts
3
Retransmitir o feed ao vivo por Eventos Enviados pelo Servidor
O navegador não pode abrir um WebSocket Helius sem a chave. Em vez disso, abra o WebSocket no servidor e transmita assinaturas para o cliente com SSE.
app/api/stream/route.ts
4
Renderizar o painel
A página carrega o portfólio e o histórico através do proxy, depois se inscreve no feed de SSE para atualizações ao vivo.
app/page.tsx
5
Execute-o
O que está acontecendo
Uma chamada DAS para todo o portfólio
getAssetsByOwner com showFungible: true e showNativeBalance: true retorna tokens fungíveis, NFTs (padrão e comprimidos), e o saldo nativo SOL em uma única resposta, então você não precisa de chamadas getBalance ou getTokenAccountsByOwner separadas. Divida items por interface para agrupar tokens versus NFTs.
Cada item carrega seus próprios metadados, então a mesma chamada alimenta ambas as listas. Use content.metadata.name para o nome e content.links.image para o logotipo ou obra de arte. Tokens fungíveis também incluem um objeto token_info com o bruto balance, decimals, e symbol — divida balance por 10 ** decimals para a quantidade legível por humanos. Nem todo token possui um nome ou logotipo, então lide com os casos em que estão ausentes de forma adequada.
Histórico completo em uma solicitação
getTransactionsForAddress retorna o histórico de transações para a carteira, e com filters.tokenAccounts: "balanceChanged" também inclui transferências nas contas de token associadas à carteira, a atividade que uma getSignaturesForAddress simples perderia. Use transactionDetails: "full" para obter dados completos de transação em vez de apenas assinaturas.
Atualizações em tempo real sem polling
transactionSubscribe envia uma mensagem sempre que uma transação toca a carteira, então você nunca precisa fazer polling. Adicionando tokenAccounts: "balanceChanged" ao filtro também corresponde às contas de tokens da carteira, então transferências SPL de entrada aparecem no feed — a mesma atividade que a chamada de histórico conta. Retransmitir a assinatura através de um manipulador de rota no lado do servidor mantém sua chave de API fora do cliente.
Próximos passos
getAssetsByOwner
Todas as opções de exibição, paginação e o formato completo de resposta de ativos.
getTransactionsForAddress
Filtragem avançada por tempo, slot, token, direção e quantidade.
transactionSubscribe
Opções de filtro e formato de payload para o feed WebSocket ao vivo.
Implante seu próprio programa
Próxima etapa: implante um programa Solana no devnet através do Helius.