Skip to main content
Wallet API masih dalam versi Beta. Endpoint dan format respons dapat berubah.

Gambaran umum

Endpoint Transaction History mengambil riwayat transaksi lengkap untuk dompet Solana menggunakan Enhanced Transactions API. Endpoint ini mengembalikan transaksi yang telah diuraikan dan mudah dibaca beserta perubahan saldo untuk setiap transaksi, dalam urutan kronologis terbalik (terbaru lebih dahulu). Endpoint ini mengembalikan hingga 100 transaksi per permintaan, sehingga paginasi harus dilakukan secara manual. Gunakan parameter before dengan pagination.nextCursor untuk mengambil halaman berikutnya, lalu baca pagination.hasMore untuk mengetahui apakah masih ada hasil lainnya. Setiap permintaan merupakan satu panggilan API dan dikenai biaya 100 kredit. Parameter tokenAccounts mengatur apakah transaksi yang melibatkan akun token milik dompet akan disertakan:
  • balanceChanged (direkomendasikan): menyertakan transaksi yang mengubah saldo akun token sekaligus menyaring spam.
  • none: hanya interaksi langsung dengan dompet.
  • all: semua transaksi akun token, termasuk spam.
Filter tokenAccounts bergantung pada bidang owner dalam metadata saldo token, yang belum tersedia sebelum slot 111.491.819 (~Desember 2022). Transaksi yang melibatkan akun token yang aktif sebelum slot ini mungkin tidak tersedia. Lihat tutorial getTransactionsForAddress untuk solusi alternatif.

Kapan harus menggunakannya

Gunakan Transaction History API saat Anda perlu:
  • Menampilkan umpan transaksi: tampilkan riwayat transaksi lengkap kepada pengguna.
  • Menghitung PnL: lacak keuntungan dan kerugian dari semua transaksi.
  • Pajak dan akuntansi: buat laporan transaksi lengkap untuk pelaporan pajak.
  • Analitik portofolio: analisis pola dan aktivitas perdagangan.
  • Jejak audit: simpan catatan lengkap aktivitas dompet.
  • Rekonstruksi saldo: susun ulang saldo saat ini dari data historis.

Mulai cepat

Kueri riwayat dasar

Dapatkan transaksi terbaru beserta perubahan saldonya:

Paginasi untuk riwayat lengkap

Ambil semua transaksi menggunakan paginasi dengan parameter before:

Parameter kueri

Jenis transaksi yang tersedia

Parameter type mendukung pemfilteran berdasarkan jenis transaksi berikut: SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING, NFT_MINT, NFT_CANCEL_LISTING, TOKEN_MINT, BURN, COMPRESSED_NFT_MINT, COMPRESSED_NFT_TRANSFER, COMPRESSED_NFT_BURN, CREATE_STORE, WHITELIST_CREATOR, ADD_TO_WHITELIST, REMOVE_FROM_WHITELIST, AUCTION_MANAGER_CLAIM_BID, EMPTY_PAYMENT_ACCOUNT, UPDATE_PRIMARY_SALE_METADATA, ADD_TOKEN_TO_VAULT, ACTIVATE_VAULT, INIT_VAULT, INIT_BANK, INIT_STAKE, MERGE_STAKE, SPLIT_STAKE, CREATE_AUCTION_MANAGER, START_AUCTION, CREATE_AUCTION_MANAGER_V2, UPDATE_EXTERNAL_PRICE_ACCOUNT, EXECUTE_TRANSACTION

Contoh filter

Format respons

Catatan bidang

  • timestamp: detik Unix. Nilainya mungkin null untuk transaksi sangat baru yang belum diproses sepenuhnya.
  • error: null untuk transaksi yang berhasil; nilai kesalahan untuk transaksi yang gagal. Transaksi yang gagal tetap dikenai biaya.
  • balanceChanges: perubahan aset dompet dalam transaksi — amount positif berarti token diterima, sedangkan amount negatif berarti token dikirim atau dibelanjakan.
  • mint (di dalam balanceChanges): alamat mint token, atau "SOL" untuk SOL native.
  • amount (di dalam balanceChanges): mudah dibaca, sudah dibagi dengan decimals — -0.05 berarti −0,05 SOL, bukan −0,05 lamport. Endpoint ini tidak menyertakan bidang mentah amountRaw.

Contoh perubahan saldo

Kasus penggunaan

Menghitung total volume perdagangan

Jumlahkan semua transfer untuk mendapatkan volume perdagangan:

Membuat laporan pajak

Buat laporan transaksi untuk pelaporan pajak:

Melacak transaksi yang gagal

Temukan semua transaksi yang gagal untuk memahami kesalahannya:

Merekonstruksi saldo historis

Hitung saldo pada titik waktu tertentu:
Untuk mendapatkan saldo pasti satu token pada titik waktu tertentu, endpoint Historical Balance membacanya langsung dari saldo akhir on-chain, bukan dengan menjumlahkan perubahan di sisi klien.

Menganalisis biaya transaksi

Hitung total biaya yang dibayarkan:

Praktik terbaik

  • Gunakan paginasi untuk mendapatkan riwayat lengkap. Beberapa dompet memiliki ratusan ribu transaksi; selalu gunakan paginasi saat mengambil semuanya.
  • Cache data historis. Transaksi historis tidak pernah berubah. Simpan transaksi tersebut di cache lokal dan hanya ambil transaksi baru.
  • Tangani transaksi yang gagal. Periksa bidang error untuk membedakan transaksi yang berhasil dan gagal. Transaksi yang gagal tetap dikenai biaya.
  • Gunakan stempel waktu untuk pemfilteran tanggal. Stempel waktu dinyatakan dalam detik Unix. Konversikan ke tanggal lokal untuk tampilan dan pemfilteran.

Kesalahan umum

Langkah berikutnya

Token Transfers

Tampilan khusus transfer dengan informasi pengirim/penerima — lebih sederhana daripada riwayat lengkap.

Wallet API Overview

Semua endpoint Wallet API dan konvensi bersama.

API Reference

Skema permintaan dan respons untuk riwayat transaksi.