Skip to main content
In diesem Leitfaden erstellen Sie ein Dashboard, das zeigt, was eine Solana-Adresse hält und was sie gerade tut. Sie ziehen das vollständige Portfolio von Tokens, NFTs und SOL in einem einzigen DAS-Anruf, laden den Transaktionsverlauf mit dem exklusiven Helius getTransactionsForAddress und streamen neue Aktivitäten live über transactionSubscribe. Sie probieren es zuerst als eingebettete Demo aus und bauen es dann als vollständige Next.js-App.

Probieren Sie es live aus

Fügen Sie Ihren API-Schlüssel und eine Wallet-Adresse ein, um die drei Teile zusammen arbeiten zu sehen: Portfolio, Verlauf und einen Live-Feed. Dies sind die gleichen Daten, die Ihre App rendern wird.

Bauen Sie es als Next.js-App

Holen Sie sich die vollständige App bei GitHub

Klonen Sie den vollständigen Starter — die fertige Next.js-App aus diesem Leitfaden, bereit für npm install && npm run dev.
Das obige Widget ruft Helius direkt aus dem Browser auf, wodurch Ihr API-Schlüssel exponiert wird. In einer echten App halten Sie den Schlüssel auf dem Server. Dieser Leitfaden verwendet den Next.js App Router mit zwei Route-Handlern, sodass Ihr Schlüssel niemals den Client erreicht: einer übernimmt das Weiterleiten von RPC-Aufrufen, der andere überträgt den WebSocket-Feed als Server-Sent Events.
Voraussetzungen: Node.js 18+ und ein Helius API-Schlüssel.
1

Projektgerüst erstellen

Sie werden das Helius SDK für die RPC-Aufrufe und ws für den Live-WebSocket-Feed verwenden.Fügen Sie Ihren Schlüssel zu .env.local hinzu:
.env.local
2

RPC-Aufrufe über einen Route-Handler weiterleiten

Dies hält Ihren API-Schlüssel serverseitig. Der Client sendet eine Methode und Parameter hierher, und der Handler führt sie durch das Helius SDK aus, welches Ihren Schlüssel anhängt und die Anfrage für Sie erstellt.
app/api/helius/route.ts
3

Den Live-Feed über Server-Sent Events übertragen

Der Browser kann ohne den Schlüssel keinen Helius WebSocket öffnen. Stattdessen öffnen Sie den WebSocket auf dem Server und streamen Signaturen mit SSE an den Client.
app/api/stream/route.ts
4

Das Dashboard rendern

Die Seite lädt das Portfolio und den Verlauf über den Proxy und abonniert dann den SSE-Feed für Live-Updates.
app/page.tsx
5

Ausführen

Öffnen Sie http://localhost:3000, fügen Sie eine Wallet-Adresse ein und klicken Sie auf Load. Sie werden das Portfolio und den Verlauf sofort sehen, und der Live-Feed wird gefüllt, sobald neue Transaktionen die Wallet berühren.

Was passiert

Ein DAS-Anruf für das gesamte Portfolio

getAssetsByOwner mit showFungible: true und showNativeBalance: true gibt fungible Tokens, NFTs (standard und komprimiert) und das native SOL-Guthaben in einer einzigen Antwort zurück, sodass Sie keine separaten getBalance oder getTokenAccountsByOwner Anrufe benötigen. Teilen Sie items durch interface, um Tokens im Vergleich zu NFTs zu gruppieren. Jedes Element trägt seine eigenen Metadaten, sodass derselbe Anruf beide Listen antreibt. Verwenden Sie content.metadata.name für den Namen und content.links.image für das Logo oder das Artwork. Fungible Tokens beinhalten auch ein token_info-Objekt mit dem Rohwert balance, decimals und symbol — teilen Sie balance durch 10 ** decimals, um den menschenlesbaren Betrag zu erhalten. Nicht jedes Token liefert einen Namen oder ein Logo, daher fallen Sie sanft zurück, wenn sie fehlen.

Vollständige Historie in einer Anfrage

getTransactionsForAddress gibt den Transaktionsverlauf für die Wallet zurück, und mit filters.tokenAccounts: "balanceChanged" umfasst es auch Übertragungen auf den zugehörigen Token-Konten der Wallet, die Aktivität, die eine einfache getSignaturesForAddress verpassen würde. Verwenden Sie transactionDetails: "full", um vollständige Transaktionsdaten anstelle von nur Signaturen zu erhalten.

Echtzeit-Updates ohne Abfrage

transactionSubscribe sendet eine Nachricht jedes Mal, wenn eine Transaktion die Wallet berührt, sodass Sie niemals Abfragen durchführen müssen. Durch Hinzufügen von tokenAccounts: "balanceChanged" zum Filter werden auch die Token-Konten der Wallet erfasst, sodass eingehende SPL-Übertragungen im Feed erscheinen — dieselbe Aktivität, die der Verlauf zählt. Die Weiterleitung des Abonnements durch einen serverseitigen Route-Handler hält Ihren API-Schlüssel vom Client fern.

Nächste Schritte

getAssetsByOwner

Alle Anzeigeoptionen, Paginierung und die vollständige Vermögensantwortstruktur.

getTransactionsForAddress

Erweiterte Filterung nach Zeit, Slot, Token, Richtung und Betrag.

transactionSubscribe

Filteroptionen und Payload-Struktur für den Live-WebSocket-Feed.

Deploy your own program

Nächster Track: ein Solana-Programm durch Helius auf devnet bereitstellen.