> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Parsed Streams

> Berlangganan transaksi Solana yang telah didekode melalui WebSocket dengan pemfilteran sisi server berdasarkan program, akun, dan nama instruksi.

## Apa itu Parsed Streams?

Parsed Streams adalah layanan WebSocket yang memantau setiap transaksi Solana yang telah dikonfirmasi (kecuali transaksi voting), mendekodenya, lalu mengirimkan transaksi yang cocok dengan filter yang Anda tentukan. Anda dapat mengatakan, "Saya tertarik pada instruksi rute Jupiter" atau "Saya tertarik pada apa pun yang berinteraksi dengan akun ini", lalu server akan melakukan pemantauan, pendekodean, dan pencocokan untuk Anda.

Anda menerima **transaksi lengkap yang sudah didekode**: setiap instruksi dengan argumen dan akun bernama, ditambah biaya, daftar lengkap kunci akun, `summary` tingkat transaksi tentang apa yang terjadi, transfer SOL dan token, serta penunjuk ke instruksi persis yang cocok dengan filter Anda. Semua data dikirimkan pada komitmen **confirmed**.

## Model mental

Jika Anda sudah memahami internal Solana, lanjutkan ke bagian berikutnya. Jika belum, inilah model yang menjadi dasar seluruh API.

**Transaksi** adalah pesan yang ditandatangani. Transaksi menentukan pembayar biaya, mencantumkan setiap akun yang akan disentuh, dan membawa daftar instruksi. Saat melihat sebuah transaksi, Anda akan melihat: tanda tangan (ID uniknya), slot tempat transaksi tersebut masuk, biaya yang dibayarkan, kunci akun, apakah transaksi berhasil atau gagal, dan instruksinya.

**Instruksi** adalah satu tindakan: jalankan program ini dengan input ini menggunakan akun-akun ini. Misalnya, swap di Jupiter, transfer token, atau memo. Sebuah transaksi biasanya membawa beberapa instruksi, dan instruksi tersebut dijalankan secara berurutan.

**Program dapat memanggil program lain.** Saat Jupiter mengeksekusi swap, Jupiter tidak memindahkan token itu sendiri. Instruksi rutenya memanggil program token untuk memindahkan token dan program bursa yang menyimpan likuiditas. Panggilan bertingkat tersebut juga merupakan instruksi, yang disebut instruksi internal (atau CPI, pemanggilan lintas program). Hal ini penting saat Anda menulis filter: sebagian besar aktivitas sebenarnya, seperti perpindahan token dalam swap, terjadi di instruksi internal, sehingga filter Anda mencocokkannya secara default. Jika Anda hanya menginginkan instruksi yang ditandatangani pengguna, atur `includeCpi` ke false.

**Akun** adalah objek on-chain yang digunakan oleh instruksi: dompet, saldo token, pool, dan mint. Setiap instruksi membawanya sebagai daftar alamat yang berurutan, dan urutan tersebut merupakan kontraknya: program menentukan arti setiap posisi. Sebagai contoh, program token mengharapkan akun asal pengambilan token berada di posisi pertama, diikuti akun penerima token, lalu pemilik yang menyetujui transfer.

**Peran** memberi nama pada posisi tersebut. Sebagian besar program terkenal menerbitkan panduan yang dapat dibaca mesin untuk antarmukanya, yang disebut IDL. Panduan tersebut mencantumkan setiap instruksi yang dimiliki program, arti kolom datanya, dan kegunaan setiap posisi akun. Helius menyimpan katalog panduan ini untuk ribuan program. Dengan menggunakannya, daftar alamat biasa berubah menjadi akun bernama: untuk transfer token, posisi 0 menjadi `source`, posisi 1 menjadi `destination`, dan posisi 2 menjadi `authority`. Alih-alih menebak arti alamat ketiga, Anda dapat membaca `{"name": "authority", "pubkey": "9xQe...", "isSigner": true}`. Nama-nama ini adalah peran yang dapat Anda filter.

**Pendekodean** menerapkan konsep yang sama pada data input instruksi. Saat ditransmisikan, data tersebut berupa byte buram. Dengan panduan program, byte tersebut berubah menjadi nilai bernama: `{"in_amount": "1000000", "slippage_bps": 50}`. Tidak semua instruksi dapat didekode, sehingga setiap instruksi berada dalam salah satu dari tiga status yang dapat Anda lihat langsung dari kolomnya:

* **Didekode**: instruksi membawa objek `decoded` dengan `args` bernama dan `accounts` bernama.
* **Dikenali**: selain `decoded`, instruksi membawa `summary` dengan `type` (seperti `swap`), `description` yang mudah dibaca manusia, dan payload `parsedData` terstruktur, seperti metadata swap dengan jumlah dan mint.
* **Tidak didekode**: program atau instruksi tidak tersedia dalam katalog, `decoded` adalah `null`, dan instruksi membawa byte mentah (`rawData`) serta daftar alamat biasa (`rawAccounts`), sehingga Anda selalu memiliki data yang dapat digunakan.

Itulah keseluruhan modelnya, dan filter Anda dibuat langsung berdasarkan model tersebut:

* `programs`: program yang dipanggil oleh instruksi
* `instructionNames`: nama tindakan tersebut dalam panduan program
* `accounts.include`: alamat yang disentuhnya
* `accounts.roles`: alamat yang harus menempati posisi bernama tertentu
* `includeCpi` dan `includeFailed`: apakah instruksi internal dan transaksi gagal diperhitungkan

**Filter memilih instruksi; notifikasi mengirimkan seluruh transaksi.**

### Perbandingan

<CardGroup cols={2}>
  <Card title="vs Enhanced WebSockets" icon="bolt">
    [Enhanced WebSockets](/docs/id/rpc/websocket) mengalirkan seluruh transaksi atau pembaruan akun tanpa pendekodean. Parsed Streams melakukan pencocokan pada tingkat instruksi dan mendekode semuanya untuk Anda.
  </Card>

  <Card title="vs LaserStream gRPC" icon="server">
    [LaserStream](/docs/id/laserstream) adalah firehose gRPC berthroughput tinggi yang Anda filter dan dekode di klien. Parsed Streams adalah API WebSocket yang melakukan pemfilteran dan pendekodean di server.
  </Card>

  <Card title="vs Parsed Events" icon="clock-rotate-left">
    [Parsed Events](/docs/id/parsed-events) menerapkan pendekodean yang sama pada transaksi historis: mengurai tanda tangan atau menelusuri riwayat alamat per halaman sesuai permintaan melalui REST. Parsed Streams mengirimkan transaksi baru saat transaksi tersebut masuk.
  </Card>
</CardGroup>

## Program yang didukung

Parsed Streams mendekode **lebih dari 3.600 program** dari IDL on-chain-nya, ditambah program inti seperti SPL Token, Token-2022, dan System Program melalui dekoder bawaan. Anda dapat memfilter berdasarkan alamat program *apa pun*. Instruksi yang tidak dapat didekode oleh layanan akan dialirkan sebagai data instruksi mentah.

Berikut beberapa program yang paling sering digunakan dan dapat didekode:

<AccordionGroup>
  <Accordion title="DEXs & AMMs" icon="arrow-right-arrow-left">
    | Program               | Alamat                                         |
    | --------------------- | ---------------------------------------------- |
    | Jupiter Aggregator v6 | `JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4`  |
    | Raydium CLMM          | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` |
    | Raydium CPMM          | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` |
    | Orca Whirlpool        | `whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc`  |
    | Meteora DLMM          | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo`  |
    | Meteora Pools         | `Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB` |
    | Lifinity v2           | `2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c` |
  </Accordion>

  <Accordion title="Launchpads" icon="rocket">
    | Program  | Alamat                                        |
    | -------- | --------------------------------------------- |
    | Pump.fun | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` |
    | PumpSwap | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` |
  </Accordion>

  <Accordion title="Lending & Perps" icon="building-columns">
    | Program        | Alamat                                        |
    | -------------- | --------------------------------------------- |
    | marginfi v2    | `MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA` |
    | Kamino Lending | `KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD` |
  </Accordion>

  <Accordion title="NFTs & Compression" icon="image">
    | Program                   | Alamat                                         |
    | ------------------------- | ---------------------------------------------- |
    | Metaplex Bubblegum (cNFT) | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` |
  </Accordion>
</AccordionGroup>

<Tip>
  Tidak menemukan suatu program? Program tersebut kemungkinan masih tersedia dalam katalog. Panggil [`describeProgram`](/docs/id/parsed-streams/quickstart#penemuan) dengan alamat program untuk melihat instruksi, peristiwa, dan peran akunnya.
</Tip>

## Akses dan harga

Parsed Streams tersedia secara umum pada semua paket, termasuk Free. Layanan ini menggantikan [Enhanced Transaction Webhooks](/docs/id/webhooks) untuk data transaksi terurai secara real-time. Dapatkan kunci API Anda dari [Dasbor Helius](https://dashboard.helius.dev).

Setiap peristiwa yang dikirimkan dikenai biaya **1 kredit**, sama dengan tarif peristiwa webhook. Lihat [Kredit](/docs/id/billing/credits#kredit-streaming-data) untuk daftar harga lengkap.

Penghitungan kredit dimulai pada **24 September 2026**. Proyek yang menggunakan Parsed Streams sebelum tanggal tersebut tidak dikenai biaya hingga **1 Oktober 2026**.

Parsed Streams disediakan melalui endpoint [Gatekeeper](/docs/id/gatekeeper/overview), yaitu host yang sama dengan lalu lintas RPC dan WebSocket Helius. Tidak ada host Parsed Streams terpisah:

```text theme={"system"}
wss://beta.helius-rpc.com/?api-key=<API_KEY>
```

Lakukan autentikasi dengan kunci API proyek Anda yang diteruskan sebagai parameter kueri `api-key` (atau header `x-api-key`). Kunci diperiksa saat koneksi dibuka: kunci yang tidak ada atau tidak valid ditolak dengan HTTP 401, sedangkan proyek yang telah mencapai batas koneksinya menerima HTTP 429.

## Mulai

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/docs/id/parsed-streams/quickstart">
    Hubungkan, kirim filter pertama Anda, lalu baca notifikasi.
  </Card>

  <Card title="Track Jupiter Swaps" icon="arrow-right-arrow-left" href="/docs/id/parsed-streams/guides/track-jupiter-swaps">
    Buat dan langgani filter nyata menggunakan penemuan program.
  </Card>

  <Card title="Track Pump.fun Mints" icon="rocket" href="/docs/id/parsed-streams/guides/track-pumpfun-mints">
    Listener yang aman terhadap koneksi ulang dan mencatat setiap peluncuran token Pump.fun baru.
  </Card>

  <Card title="Handling Reconnects" icon="rotate" href="/docs/id/parsed-streams/guides/handling-reconnects">
    Deteksi pemutusan koneksi, terapkan jeda bertahap, berlangganan kembali, dan isi ulang slot yang terlewat.
  </Card>
</CardGroup>
