Mengapa perlu bermigrasi?
Enhanced Transactions API adalah produk lama dalam mode pemeliharaan: produk ini masih berfungsi, tetapi tidak lagi menerima jenis parser atau pengembangan fitur baru. Penerusnya adalah Parsed Events, yang mendekode instruksi melalui katalog IDL yang juga mendukung Parsed Streams. Perbedaannya terletak pada cara transaksi didekode. Enhanced Transactions mengklasifikasikan transaksi ke dalam salah satu daftar tetap jenis peristiwa (TRANSFER, SWAP, NFT_SALE, …) dan menampilkan ringkasan siap pakai untuk jenis yang dikenalnya. Parsed Events mendekode setiap instruksi berdasarkan IDL milik program itu sendiri — lebih dari 3.600 program — menjadi argumen dan akun bernama, lalu menyusun ringkasan di atasnya:
Parsed Events tersedia secara umum di semua paket, termasuk Free, dengan biaya 10 kredit per permintaan. Enhanced Transactions tetap berfungsi dalam mode pemeliharaan sehingga Anda dapat bermigrasi sesuai kebutuhan.
Pemetaan titik akhir
Kedua metode Parsed Events merupakan permintaanPOST ke https://mainnet.helius-rpc.com, yang diautentikasi dengan parameter kueri api-key yang sudah Anda gunakan:
Titik akhir riwayat memindahkan semua masukan dari parameter string kueri ke isi JSON. Isi permintaan menolak bidang yang tidak dikenal sehingga kesalahan ketik langsung menghasilkan kegagalan, bukan diabaikan secara diam-diam.
Sebelum dan sesudah
Tugas yang sama — mengambil riwayat terurai untuk dompet — di kedua API:Pemetaan parameter
Parse Transactions
POST /v0/transactions → POST /v1/parsed-events/transactions
Opsi baru tanpa padanan lama:
includeRawTransaction menampilkan payload transaksi Solana asli bersama hasil yang telah diurai.
Riwayat Transaksi
GET /v0/addresses/{address}/transactions → POST /v1/parsed-events/transaction-history. Setiap parameter kueri menjadi bidang isi JSON:
Tiga nilai bawaan berubah dalam proses ini:
- Nilai bawaan
limitmenjadi 100, bukan 10. - Nilai bawaan
commitmentmenjadiconfirmed, bukanfinalized;processedtidak didukung. sortOrdermempertahankan nilaiasc/descyang sama, dengandescsebagai nilai bawaan.
paginationToken dari respons sebelumnya, bukan beforeSignature — lihat Sederhanakan paginasi di bawah.
Parameter lama type tidak memiliki padanan di Parsed Events — tidak ada filter jenis transaksi di sisi server. Lakukan filter di sisi klien berdasarkan parsed.summary.type (swap, transfer, add_liquidity, …), atau berdasarkan instruksi yang telah didekode, yang lebih presisi daripada jenis tetap lama. Untuk umpan waktu nyata berdasarkan jenis, Parsed Streams melakukan filter di sisi server pada tingkat instruksi.
Pemetaan bidang respons
Enhanced Transactions menampilkan array datar berisi transaksi yang diperkaya. Parsed Events membungkus setiap hasil dalam sebuah amplop —{ signature, parserStatus, parsed } — dan respons riwayat membungkus array dalam objek halaman dengan paginationToken. Bidang yang diurai dipetakan sebagai berikut:
Perubahan terbesar adalah bidang baru tanpa padanan lama:
parsed.instructions[] memuat setiap instruksi tingkat atas dan internal dalam urutan eksekusi, dengan decoded.args dan decoded.accounts yang dinamai berdasarkan IDL program. Jika Enhanced Transactions memberi Anda satu ringkasan peristiwa per transaksi, Parsed Events memberi Anda ringkasan serta daftar lengkap instruksi yang telah didekode. Lihat Respons Terurai untuk setiap bidang.
Langkah-langkah migrasi
1
Swap the endpoints
Arahkan panggilan Parse Transactions ke
POST /v1/parsed-events/transactions dan panggilan riwayat ke POST /v1/parsed-events/transaction-history. Host yang sama, parameter kueri api-key yang sama. Permintaan riwayat berubah dari GET dengan parameter kueri menjadi POST dengan isi JSON — pindahkan setiap parameter sesuai pemetaan di atas.2
Update the response handling
Buka amplop baru: periksa
parserStatus === "OK", lalu baca bidang dari parsed, bukan dari tingkat teratas. Ubah nama timestamp menjadi blockTime, baca description dan type dari summary (dengan menangani null), lalu bagi rawTokenAmount dengan 10^decimals di tempat kode lama membaca tokenAmount.3
Replace type filtering
Jika kode lama meneruskan
type=..., filter item yang ditampilkan di sisi klien berdasarkan parsed.summary.type atau parsed.instructions[] — misalnya, “instruksi dengan programId adalah Jupiter dan instructionName adalah route” menggantikan type=SWAP dengan sesuatu yang benar-benar dapat Anda verifikasi. Jika filter jenis digunakan untuk menyediakan umpan waktu nyata, pindahkan konsumennya ke Parsed Streams, yang melakukan filter di sisi server pada tingkat instruksi.4
Simplify pagination
Ganti perulangan kursor Perulangan berakhir saat
before-signature dengan paginationToken:paginationToken tidak ada. Galat pencarian runtime lama (“Gagal menemukan peristiwa dalam periode pencarian”) beserta penanganan tanda tangan kelanjutannya sepenuhnya hilang — hapus kode tersebut.5
Verify against the old output
Untuk alamat sampel, ambil halaman yang sama dari kedua API dan bandingkan kumpulan tanda tangan, biaya, serta jumlah transfer. Kemudian lakukan deployment dan hapus jalur kode lama. Enhanced Transactions tetap berfungsi selama Anda bermigrasi — tidak ada penghentian paksa.
Perbedaan perilaku yang perlu ditinjau
- Nilai bawaan commitment. Nilai bawaan riwayat adalah
confirmed, sedangkan nilai bawaan titik akhir lama adalahfinalized. Teruskancommitment: "finalized"secara eksplisit jika pipeline Anda bergantung pada finalitas.processedtidak didukung. - Galat per item. Tanda tangan yang tidak dapat diurai tidak lagi menyebabkan permintaan gagal — tanda tangan tersebut ditampilkan sebagai item dengan
parserStatus: "ERROR"danparserError. Tangani per item, bukan per permintaan. - Cakupan ringkasan.
summarybernilainulluntuk transaksi tanpa tindakan tingkat transaksi yang dikenali. API lama menampilkantype: "UNKNOWN"dalam kasus tersebut; API baru tetap memberi Anda setiap instruksi yang telah didekode untuk diproses. - Akses dan biaya. Parsed Events tersedia di semua paket dan memerlukan 10 kredit per permintaan, turun dari 100 untuk Enhanced Transactions. Pengukuran kredit dimulai pada 24 September 2026; proyek yang menggunakan Parsed Events sebelum tanggal tersebut tidak dikenai biaya hingga 1 Oktober 2026.
Biarkan agen AI melakukan migrasi
Jika Anda menggunakan Claude Code, Cursor, atau agen pemrograman lainnya, tempelkan prompt di bawah ke sesi agen repositori Anda. Agen tersebut akan menemukan lokasi pemanggilan Enhanced Transactions dan menulis ulang pemanggilan itu.Langkah berikutnya
Parsed Events Quickstart
Urai transaksi pertama Anda, ambil riwayat alamat, dan telusuri hasil halaman demi halaman.
Parsed Response
Referensi bidang untuk transaksi, transfer, dan instruksi yang telah diurai.
Parsed Streams
Pendekodean yang sama secara waktu nyata melalui WebSocket, dengan filter di sisi server.
getTransactionsForAddress
Riwayat transaksi mentah dengan dukungan akun token dan filter di sisi server.