Skip to main content
Dans ce guide, vous allez créer un tableau de bord qui montre ce que détient une adresse Solana et ce qu’elle fait en ce moment. Vous allez récupérer son portefeuille complet de tokens, NFT et SOL en un seul appel DAS, charger l’historique des transactions avec l’API exclusive à Helius 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.
Le widget ci-dessus appelle Helius directement depuis le navigateur, ce qui expose votre clé API. Dans une application réelle, vous gardez la clé sur le serveur. Ce guide utilise le Router d’application Next.js avec deux gestionnaires de route pour que votre clé n’atteigne jamais le client : l’un relaie les appels RPC, l’autre relaie le flux WebSocket comme des événements envoyés par le serveur.
Prérequis : Node.js 18+ et une clé API Helius.
1

Préparer le projet

Vous utiliserez le Helius SDK pour les appels RPC et 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

Ouvrez http://localhost:3000, collez une adresse de portefeuille et cliquez sur Charger. Vous verrez le portefeuille et l’historique immédiatement, et le flux en direct se remplira au fur et à mesure que de nouvelles transactions toucheront le portefeuille.

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.