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.Voraussetzungen: Node.js 18+ und ein Helius API-Schlüssel.
1
Projektgerüst erstellen
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
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.