BARU: Helius mengakuisisi Light Protocol
pengumuman produk Solana Parsed Events API dan Parsed Streams
Blog/Pembaruan

Memperkenalkan Parsed Events API dan Parsed Streams

Produk @ HeliusKiryl Miranovich di XKiryl Miranovich di LinkedIn
Bacaan 5 menit

Parsed Streams dan Parsed Events API adalah dua produk data terurai baru dari Helius yang menampilkan transaksi Solana yang telah didekode sepenuhnya untuk lebih dari 3.600 program berdasarkan IDL onchain masing-masing:

  • Akun bernama
  • Argumen instruksi bernama
  • Ringkasan dalam bahasa sederhana
  • Setiap transfer SOL dan token

Parsed Streams mengirimkan transaksi yang cocok kepada Anda melalui WebSocket segera setelah transaksi dikonfirmasi.

Parsed Events API menampilkan model terdekode yang sama sesuai permintaan melalui REST dan GraphQL, untuk signature apa pun atau riwayat alamat apa pun.

Keduanya kini tersedia dalam beta terbuka di semua paket berbayar.

Mengapa transaksi Solana sulit dibaca?

Saat Anda menanyakan apa yang terjadi dalam suatu transaksi kepada node RPC standar, Anda mendapatkan daftar alamat akun tanpa nama serta data instruksi dalam bentuk blob base58 yang tidak dapat dibaca.

Untuk mengubahnya menjadi "dompet ini menukar 1.500 SOL dengan PUMP di Jupiter," biasanya Anda harus:

  1. Mengambil transaksi dan mengidentifikasi setiap program yang digunakannya
  2. Menemukan IDL setiap program (antarmuka yang dipublikasikan), jika tersedia
  3. Mendekode data instruksi (biasanya Borsh) berdasarkan IDL tersebut
  4. Memetakan posisi akun ke perannya: apakah alamat ketiga merupakan otoritas atau tujuan? Hanya antarmuka program yang mengetahuinya
  5. Menelusuri instruksi internal (CPI) secara rekursif, tempat sebagian besar aktivitas sebenarnya berlangsung, seperti perpindahan token di dalam swap
  6. Mengulanginya untuk setiap program yang relevan bagi Anda, serta terus memperbarui dekoder saat program merilis versi baru

Semua itu membutuhkan pekerjaan rekayasa selama berminggu-minggu sebelum Anda dapat menjawab satu pertanyaan pun. Ini juga menjadi salah satu kurva pembelajaran paling curam saat mulai menggunakan Solana. Data blockchain ini bersifat publik, tetapi sulit dibaca.

Kami membuat lapisan dekode sisi server agar Anda tidak perlu melakukannya.

Apa yang disertakan dalam respons Parsed Events?

Setiap transaksi ditampilkan setelah didekode melalui katalog IDL Helius. 

Berikut adalah swap Jupiter nyata yang diringkas ke bagian-bagian penting:

Kode
{
  "summary": {
    "type": "swap",
    "description": "GV6UUm… swapped 1500 SOL for 64672839.26195 PUMP via Jupiter",
    "parsedData": {
      "protocol": "jupiter",
      "in_amount": "1500000000000",
      "actual_out_amount": "64672839261950",
      "input_mint": "So11111111111111111111111111111111111111112",
      "output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
    }
  },
  "instructions": [
    {
      "programName": "jupiter",
      "instructionName": "shared_accounts_route_v2",
      "decoded": {
        "args": { "in_amount": "1500000000000", "slippage_bps": 2200 },
        "accounts": [
          { "name": "user_transfer_authority", "pubkey": "GV6UUm…", "isSigner": true },
          { "name": "source_mint", "pubkey": "So1111…" }
        ]
      }
    }
  ]
}

Alih-alih menebak arti alamat ketiga dalam daftar akun, Anda dapat membaca "name": "user_transfer_authority". 

Argumen juga ditampilkan dalam bentuk terdekode: "slippage_bps": 2200 dibandingkan dengan byte mentah.

Selain itu, summary pada tingkat transaksi dapat ditampilkan apa adanya kepada pengguna.

Setiap hasil juga menyertakan biaya dan pembayar biaya, transfer SOL native, transfer SPL dan Token-2022, serta error program khusus yang telah didekode jika metadata tersedia. 

Untuk program di luar katalog, instruksi kembali menggunakan data mentah dan akun mentah, sehingga selalu ada data yang dapat Anda gunakan.

Parsed Streams: Transaksi terdekode yang dikirimkan kepada Anda

Parsed Streams adalah layanan WebSocket yang memantau setiap transaksi yang dikonfirmasi, mendekodenya, lalu mengirimkan transaksi yang cocok dengan filter Anda pada tingkat instruksi melalui pemrosesan sisi server.

Anda tidak perlu menangani aliran data penuh maupun memelihara dekoder.

Filter dibuat dari lima bidang:

  1. programs
  2. instructionNames
  3. accounts (berdasarkan penyertaan atau peran bernama)
  4. includeCpi
  5. includeFailed

Misalnya, "setiap instruksi rute Jupiter yang berinteraksi dengan dompet ini" adalah:

Kode
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "parsedTransactionSubscribe",
  "params": [
    {
      "programs": ["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"],
      "instructionNames": ["route", "shared_accounts_route"]
    }
  ]
}

Setiap notifikasi memuat seluruh transaksi terdekode, dan matchedIndexes menunjuk ke instruksi yang cocok dengan filter Anda.

Bagaimana cara mendapatkan nama instruksi untuk program Solana?

Menebak nama instruksi adalah penyebab paling umum filter tidak menemukan kecocokan tanpa menampilkan error. Untuk mendapatkan nama instruksi program Solana, panggil describeProgram dengan alamat program apa pun. Metode ini menampilkan instruksi, peristiwa, dan peran akun yang digunakan pencocok untuk melakukan perbandingan:

Kode
{
  "id": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
  "name": "jupiter",
  "instructions": ["route", "shared_accounts_route", "exact_out_route"],
  "events": ["SwapEvent"],
  "roles": ["user_transfer_authority", "destination_token_account"]
}

Cari programnya, tambahkan nama-nama tersebut ke filter Anda, lalu berlangganan. 

Panduan Melacak Swap Jupiter menjelaskan alur kerja ini dari awal hingga akhir.

Parsed Events API: Transaksi terdekode sesuai permintaan

Untuk pencarian data alih-alih data live, Parsed Events API menerapkan dekode dengan katalog IDL yang sama sesuai permintaan.

Uraikan Transaksi menerima signature dan menampilkannya dalam bentuk terdekode.

Riwayat Transaksi Terurai menelusuri seluruh riwayat terdekode suatu alamat halaman demi halaman, dengan transaksi terbaru ditampilkan lebih dahulu.

Kode
curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/transactions?api-key=YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{"transactions": ["5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"]}'

Kedua metode juga tersedia melalui GraphQL, sehingga Anda dapat memilih hanya bidang terurai yang diperlukan aplikasi Anda.

Parsed Events vs. Enhanced Transaction API

Parsed Events adalah penerus Enhanced Transactions API. 

Enhanced Transactions mengelompokkan transaksi ke dalam daftar tetap jenis peristiwa, sedangkan Parsed Events mendekode setiap instruksi melalui katalog IDL dan menggunakan data mentah sebagai fallback, bukan UNKNOWN, untuk program yang tidak dikenali.

Jika saat ini Anda menggunakan Enhanced Transactions API, panduan migrasi memetakan setiap endpoint, parameter, dan bidang respons. Panduan tersebut juga menyertakan prompt yang dapat dijalankan agen Anda untuk menyelesaikan migrasi.

Alat penguraian mana yang tepat untuk saya?

Yang Anda inginkanGunakan
Transaksi terdekode dikirimkan kepada Anda secara real-time dengan filter sisi serverParsed Streams
Mendekode signature tertentu atau menelusuri riwayat alamat halaman demi halamanParsed Events API
Aliran data mentah penuh dengan kendali sisi klien dan latensi terendah untuk transaksi yang telah diprosesLaserStream
Riwayat transaksi mentah dan backfill berskala besargetTransactionsForAddress
Objek transfer token dan SOL native yang mudah dibaca untuk alamat dompetgetTransfersByAddress

Kedua produk baru ini menggunakan satu mesin dekode yang sama, sehingga tampilan transaksi tetap konsisten, baik transaksi tersebut diterima melalui stream maupun panggilan REST. Yang terpenting, Anda dapat membuat prototipe berdasarkan riwayat dengan Parsed Events, lalu beralih ke data live dengan Parsed Streams tanpa mengubah kode penguraian Anda.

Mulai sekarang

Parsed Streams dan Parsed Events API tersedia dalam beta terbuka di semua paket berbayar. Dapatkan kunci API Anda dari Dasbor Helius.

Untuk terhubung, gunakan endpoint berikut:

Parsed Streams: 

wss://fs-beta.helius-rpc.com/?api-key=YOUR_API_KEY

Parsed Events API: 

https://mainnet.helius-rpc.com/v1/parsed-events/...?api-key=YOUR_API_KEY

Panduan

Panduan Memulai Parsed Streams membantu Anda menerima notifikasi terdekode pertama dalam beberapa menit, sedangkan Panduan Memulai Parsed Events membantu Anda menguraikan signature pertama. 

Jika memiliki pertanyaan, silakan hubungi kami melalui Telegram atau Discord.

Berlangganan Helius

Ikuti perkembangan terbaru dalam pengembangan Solana dan dapatkan pembaruan saat kami memublikasikan postingan