Skip to main content
Dalam panduan ini, Anda akan membangun dasbor yang menampilkan aset yang dimiliki alamat Solana mana pun dan aktivitasnya saat ini. Anda akan mengambil seluruh portofolio token, NFT, dan SOL dalam satu panggilan DAS, memuat riwayat transaksi dengan getTransactionsForAddress yang eksklusif dari Helius, dan melakukan streaming aktivitas baru secara langsung melalui transactionSubscribe. Anda akan mencobanya terlebih dahulu sebagai demo tersemat, lalu membangunnya sebagai aplikasi Next.js lengkap.

Coba secara langsung

Tempel kunci API Anda dan alamat dompet apa pun untuk melihat ketiga bagian berfungsi bersama: portofolio, riwayat, dan umpan langsung. Ini adalah data yang sama dengan yang akan dirender aplikasi Anda.

Bangun sebagai aplikasi Next.js

Grab the full app on GitHub

Kloning starter lengkap — aplikasi Next.js final dari panduan ini, yang siap untuk npm install && npm run dev.
Widget di atas memanggil Helius secara langsung dari browser, sehingga mengekspos kunci API Anda. Dalam aplikasi sebenarnya, Anda menyimpan kunci tersebut di server. Panduan ini menggunakan Next.js App Router dengan dua handler rute agar kunci Anda tidak pernah sampai ke klien: satu memproksi panggilan RPC, sementara yang lain meneruskan umpan WebSocket sebagai Server-Sent Events.
Prasyarat: Node.js 18+ dan kunci API Helius.
1

Scaffold the project

Anda akan menggunakan Helius SDK untuk panggilan RPC dan ws untuk umpan WebSocket langsung.Tambahkan kunci Anda ke .env.local:
.env.local
2

Proxy RPC calls through a route handler

Langkah ini menyimpan kunci API Anda di sisi server. Klien mengirim metode dan parameter ke sini, lalu handler menjalankannya melalui Helius SDK, yang menyertakan kunci Anda dan menyusun permintaan untuk Anda.
app/api/helius/route.ts
3

Relay the live feed over Server-Sent Events

Browser tidak dapat membuka WebSocket Helius tanpa kunci. Sebagai gantinya, buka WebSocket di server dan lakukan streaming tanda tangan ke klien dengan SSE.
app/api/stream/route.ts
4

Render the dashboard

Halaman memuat portofolio dan riwayat melalui proksi, lalu berlangganan umpan SSE untuk mendapatkan pembaruan langsung.
app/page.tsx
5

Run it

Buka http://localhost:3000, tempel alamat dompet, lalu tekan Load. Anda akan langsung melihat portofolio dan riwayat, sedangkan umpan langsung akan terisi saat transaksi baru melibatkan dompet tersebut.

Cara kerjanya

Satu panggilan DAS untuk seluruh portofolio

getAssetsByOwner dengan showFungible: true dan showNativeBalance: true mengembalikan token fungibel, NFT (standar dan terkompresi), serta saldo SOL native dalam satu respons, sehingga Anda tidak memerlukan panggilan getBalance atau getTokenAccountsByOwner terpisah. Pisahkan items berdasarkan interface untuk mengelompokkan token dan NFT. Setiap item memiliki metadatanya sendiri, sehingga panggilan yang sama dapat digunakan untuk kedua daftar. Gunakan content.metadata.name untuk nama dan content.links.image untuk logo atau karya seni. Token fungibel juga menyertakan objek token_info dengan balance mentah, decimals, dan symbol — bagi balance dengan 10 ** decimals untuk mendapatkan jumlah yang mudah dibaca manusia. Tidak setiap token dilengkapi nama atau logo, jadi gunakan nilai cadangan dengan baik jika keduanya tidak tersedia.

Riwayat lengkap dalam satu permintaan

getTransactionsForAddress mengembalikan riwayat transaksi untuk dompet, dan dengan filters.tokenAccounts: "balanceChanged", hasilnya juga menyertakan transfer pada akun token terkait milik dompet, yaitu aktivitas yang akan terlewat oleh getSignaturesForAddress biasa. Gunakan transactionDetails: "full" untuk mendapatkan data transaksi lengkap, bukan hanya tanda tangan.

Pembaruan real-time tanpa polling

transactionSubscribe mengirim pesan setiap kali transaksi melibatkan dompet, sehingga Anda tidak perlu melakukan polling. Menambahkan tokenAccounts: "balanceChanged" ke filter juga akan mencocokkan akun token milik dompet, sehingga transfer SPL yang masuk muncul di umpan — aktivitas yang sama dengan yang dihitung oleh panggilan riwayat. Meneruskan langganan melalui handler rute sisi server menjaga agar kunci API Anda tidak terekspos ke klien.

Langkah berikutnya

getAssetsByOwner

Semua opsi tampilan, paginasi, dan struktur respons aset lengkap.

getTransactionsForAddress

Pemfilteran lanjutan berdasarkan waktu, slot, token, arah, dan jumlah.

transactionSubscribe

Opsi filter dan struktur payload untuk umpan WebSocket langsung.

Deploy your own program

Jalur berikutnya: luncurkan program Solana ke devnet melalui Helius.