getTransactionsForAddress und streamst neue Aktivitäten live über transactionSubscribe. Probiere es zuerst als eingebettete Demo aus und baue es anschließend als vollständige Next.js-App.
Probiere es live aus
Füge deinen API key und eine beliebige Wallet-Adresse ein, um die drei Komponenten zusammen in Aktion zu sehen: Portfolio, Verlauf und Live-Feed. Deine App stellt dieselben Daten dar.Baue es als Next.js-App
Grab the full app on GitHub
Klone das vollständige Starterprojekt – die fertige Next.js-App aus dieser Anleitung, bereit für
npm install && npm run dev.Voraussetzungen: Node.js 18+ und ein Helius API key.
1
Scaffold the project
ws für den Live-WebSocket-Feed.Füge deinen Key zu .env.local hinzu:.env.local
2
Proxy RPC calls through a route handler
Dadurch bleibt dein API key auf dem Server. Der Client sendet eine Methode und Parameter hierher. Der Handler führt sie über das Helius SDK aus, das deinen Key anhängt und den request für dich erstellt.
app/api/helius/route.ts
3
Relay the live feed over Server-Sent Events
Der Browser kann ohne den Key keinen Helius-WebSocket öffnen. Öffne den WebSocket stattdessen auf dem Server und streame die Signaturen per SSE an den Client.
app/api/stream/route.ts
4
Render the dashboard
Die Seite lädt das Portfolio und den Verlauf über den Proxy und abonniert anschließend den SSE-Feed für Live-Updates.
app/page.tsx
5
Run it
Was passiert hier?
Ein DAS-Aufruf für das gesamte Portfolio
getAssetsByOwner mit showFungible: true und showNativeBalance: true gibt fungible Token, NFTs (Standard-NFTs und komprimierte NFTs) sowie das native SOL-Guthaben in einer einzigen response zurück. Du brauchst daher keine separaten Aufrufe von getBalance oder getTokenAccountsByOwner. Teile items anhand von interface auf, um Token und NFTs getrennt zu gruppieren.
Jedes Element enthält eigene Metadaten. Daher liefert derselbe Aufruf die Daten für beide Listen. Verwende content.metadata.name für den Namen und content.links.image für das Logo oder Bild. Fungible Token enthalten außerdem ein token_info-Objekt mit balance als Rohwert sowie decimals und symbol. Teile balance durch 10 ** decimals, um den lesbaren Betrag zu erhalten. Nicht jeder Token hat einen Namen oder ein Logo. Verwende daher sinnvolle Fallbacks, wenn diese Angaben fehlen.
Vollständiger Verlauf mit einem request
getTransactionsForAddress gibt den Transaktionsverlauf der Wallet zurück. Mit filters.tokenAccounts: "balanceChanged" enthält er außerdem Übertragungen über die zugehörigen Token-Konten der Wallet. Diese Aktivitäten würde ein einfacher Aufruf von getSignaturesForAddress nicht erfassen. Verwende transactionDetails: "full", um vollständige Transaktionsdaten statt nur Signaturen abzurufen.
Echtzeit-Updates ohne Polling
transactionSubscribe sendet jedes Mal eine Nachricht, wenn eine Transaktion die Wallet betrifft. Polling ist daher nicht nötig. Wenn du dem Filter tokenAccounts: "balanceChanged" hinzufügst, werden auch die Token-Konten der Wallet berücksichtigt. So erscheinen eingehende SPL-Übertragungen im Feed – dieselben Aktivitäten, die auch der Verlaufsaufruf erfasst. Wenn du das Abonnement über einen serverseitigen Route-Handler weiterleitest, bleibt dein API key vom Client fern.
Nächste Schritte
getAssetsByOwner
Alle Anzeigeoptionen, die Paginierung und die vollständige Struktur der Asset-response.
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
Als Nächstes stellst du über Helius ein Solana-Programm im Devnet bereit.