getTransactionsForAddress, et diffuser en direct la nouvelle activité via transactionSubscribe. Vous l’essaierez d’abord sous forme de démo intégrée, puis le construirez comme une application complète Next.js.
Essayez-le en direct
Collez votre clé API et une adresse de portefeuille pour voir les trois éléments fonctionner ensemble : portefeuille, historique, et flux en direct. Ce sont les mêmes données que votre application affichera.Construisez-le en tant qu’application Next.js
Récupérez l'application complète sur GitHub
Clonez le projet de départ complet — l’application Next.js finale issue de ce guide, prête à
npm install && npm run dev.Prérequis : Node.js 18+ et une clé API Helius.
1
Préparer le projet
ws pour le flux WebSocket en direct.Ajoutez votre clé à .env.local :.env.local
2
Relayer les appels RPC via un gestionnaire de route
Cela garde votre clé API côté serveur. Le client publie une méthode et des paramètres ici, et le gestionnaire les exécute via le Helius SDK, qui attache votre clé et construit la requête pour vous.
app/api/helius/route.ts
3
Relayer le flux en direct via les événements envoyés par le serveur
Le navigateur ne peut pas ouvrir un WebSocket Helius sans la clé. Au lieu de cela, ouvrez le WebSocket sur le serveur et diffusez les signatures au client avec SSE.
app/api/stream/route.ts
4
Rendre le tableau de bord
La page charge le portefeuille et l’historique via le proxy, puis s’abonne au flux SSE pour les mises à jour en direct.
app/page.tsx
5
Exécutez-le
Ce qui se passe
Un appel DAS pour l’ensemble du portefeuille
getAssetsByOwner avec showFungible: true et showNativeBalance: true retourne des tokens fongibles, NFT (standard et compressé), et le solde SOL natif dans une seule réponse, vous n’avez donc pas besoin d’appels getBalance ou getTokenAccountsByOwner séparés. Séparez items par interface pour regrouper les tokens par rapport aux NFT.
Chaque élément possède ses propres métadonnées, donc le même appel alimente les deux listes. Utilisez content.metadata.name pour le nom et content.links.image pour le logo ou l’œuvre. Les tokens fongibles incluent également un objet token_info avec le balance brut, decimals, et symbol — divisez balance par 10 ** decimals pour le montant lisible par l’homme. Tous les tokens n’ont pas de nom ou de logo, donc assurez-vous de prévoir une alternative lorsque ceux-ci manquent.
Historique complet en une requête
getTransactionsForAddress retourne l’historique des transactions du portefeuille, et avec filters.tokenAccounts: "balanceChanged", il inclut également les transferts sur les comptes token associés au portefeuille, l’activité qu’un simple getSignaturesForAddress manquerait. Utilisez transactionDetails: "full" pour obtenir des données de transaction complètes au lieu de seulement les signatures.
Mises à jour en temps réel sans sondage
transactionSubscribe envoie un message chaque fois qu’une transaction touche le portefeuille, donc vous ne faites jamais de sondage. Ajouter tokenAccounts: "balanceChanged" au filtre correspond également aux comptes token du portefeuille, de sorte que les transferts SPL entrants apparaissent dans le flux — la même activité que le comptage de l’historique des appels. Relayer l’abonnement via un gestionnaire de route côté serveur garde votre clé API hors du client.
Prochaines étapes
getAssetsByOwner
Toutes les options d’affichage, pagination, et la forme complète de la réponse des actifs.
getTransactionsForAddress
Filtrage avancé par heure, slot, token, direction, et montant.
transactionSubscribe
Options de filtrage et forme du payload pour le flux WebSocket en direct.
Déployez votre propre programme
Prochaine étape : déployez un programme Solana sur devnet via Helius.