> ## 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.

# Transaksi Praproses: Data Solana Praeksekusi Tanpa Deshredding

> Streaming transaksi Solana praeksekusi sebelum mencapai tingkat komitmen processed. Helius menangani decoding shred — Anda menerima transaksi yang telah ditandatangani melalui WebSocket.

## Ringkasan

Transaksi praproses adalah transaksi Solana praeksekusi yang dikirim **sebelum mencapai tingkat komitmen `processed`**. Helius menggabungkan beberapa sumber praeksekusi — terutama shred yang didekode langsung saat tiba di validator, dilengkapi dengan sinyal [prakonfirmasi](/docs/id/pre-confirmations/overview) — lalu mengirimkannya sebagai satu aliran yang telah dideduplikasi, tanpa paket shred mentah yang perlu diterima atau infrastruktur deshredding yang perlu Anda operasikan.

Transaksi yang bersumber dari sinyal prakonfirmasi tiba lebih lambat di feed ini daripada di produk khusus [Preconfirmations](/docs/id/pre-confirmations/overview), yang tetap memberikan akses paling awal ke transaksi tersebut.

Cara menggunakan transaksi praproses adalah melalui [metode WebSocket `preprocessedSubscribe`](/docs/id/preprocessed-transactions/preprocessed-subscribe) (Beta Publik) — tersedia pada **semua paket berbayar** dengan biaya **0,1 kredit per pesan**.

<CardGroup cols={2}>
  <Card title="preprocessedSubscribe (WSS)" icon="tower-broadcast" href="/docs/id/preprocessed-transactions/preprocessed-subscribe">
    Cara yang direkomendasikan untuk melakukan streaming transaksi praproses: pemfilteran akun, payload biner ringkas, dan tersedia pada semua paket berbayar.
  </Card>
</CardGroup>

## Posisi transaksi praproses dalam siklus proses

Dalam arsitektur Solana, transaksi melewati beberapa tahap sebelum diproses sepenuhnya:

1. **Penerimaan Shred** → Validator menerima shred transaksi (fragmen data). ← **[Shred mentah (UDP)](/docs/id/shred-delivery/raw-shreds)** dikirim pada tahap ini.
2. **Decoding Shred** → Shred didekode menjadi transaksi mentah. ← **Transaksi praproses terutama dikirim pada tahap ini.**
3. **Eksekusi Transaksi** → Transaksi dieksekusi oleh runtime.
4. **Pembuatan Metadata** → Saldo sebelum/sesudah, log, dan informasi kesalahan dihitung.
5. **Komitmen** → Transaksi mencapai status processed/confirmed/finalized. ← **[LaserStream gRPC](/docs/id/laserstream)** dan **[LaserStream WebSocket](/docs/id/rpc/websocket)** mengirimkan data pada tahap ini.

Langganan pascaeksekusi mengirimkan data pada tahap 5 — setelah eksekusi penuh dan pembuatan metadata. Transaksi praproses dikirim pada waktu tahap 2 — setelah decoding shred, sebelum eksekusi selesai. Untuk mendapatkan sinyal yang lebih awal lagi, [Preconfirmations](/docs/id/pre-confirmations/overview) melakukan streaming transaksi sebelum transaksi tersebut menjadi shred.

**Komprominya:** Anda menerima data transaksi lebih awal, tetapi tanpa metadata eksekusi seperti perubahan saldo, log, atau informasi kesalahan.

<Warning>
  **Ini adalah aliran khusus transaksi.** Pembaruan status akun dan program
  belum ada hingga runtime mengeksekusi transaksi. Jika Anda memerlukan pembaruan akun
  atau program secara real-time — saldo token, status bonding curve, akun
  program — gunakan **[LaserStream gRPC](/docs/id/laserstream) pada komitmen `processed`**
  sebagai gantinya.
</Warning>

## Data apa yang tersedia?

Transaksi praproses mencakup transaksi lengkap yang telah ditandatangani, tetapi tidak memiliki metadata eksekusi:

### Data yang Tersedia

* ✅ **Tanda tangan transaksi** - Pengidentifikasi unik transaksi
* ✅ **Kunci akun** - Semua akun yang dirujuk oleh transaksi
* ✅ **Instruksi** - Data instruksi dan panggilan program secara lengkap
* ✅ **Blockhash terbaru** - Referensi kedaluwarsa transaksi
* ✅ **Tanda tangan** - Semua tanda tangan transaksi
* ✅ **Nomor slot** - Slot tempat transaksi diamati

### Data yang Tidak Tersedia

* ❌ **Metadata transaksi** - Perubahan saldo token, saldo sebelum/sesudah, status transaksi
* ❌ **Kesalahan transaksi** - Kami tidak dapat menentukan apakah transaksi gagal
* ❌ **Instruksi internal** - Pemanggilan lintas program (CPI) tidak disertakan
* ❌ **Pesan log** - Log program dibuat selama eksekusi
* ❌ **Unit komputasi yang digunakan** - Metrik eksekusi tidak tersedia

Anggap transaksi praproses seperti menerima "proposal" tanpa "hasil". Anda melihat apa yang coba dilakukan pengirim, tetapi bukan apa yang benar-benar terjadi.

## Jaminan pengiriman

Pengiriman dilakukan berdasarkan upaya terbaik, tidak dijamin, dan tidak tersedia pemutaran ulang historis. Transaksi yang dialirkan merupakan sinyal praeksekusi, bukan tingkat komitmen — transaksi tersebut dapat gagal, dibatalkan, atau masuk ke fork lain. Lakukan deduplikasi berdasarkan tanda tangan dan rekonsiliasi dengan aliran processed atau confirmed jika hasil eksekusi penting.

Untuk aplikasi penting yang memerlukan jaminan pengiriman dan data lengkap, gunakan [LaserStream gRPC](/docs/id/laserstream).

## Kapan sebaiknya menggunakan transaksi praproses

Aplikasi sensitif latensi yang memerlukan transaksi praeksekusi yang telah didekode tanpa harus mengoperasikan decoder shred:

* propAMM
* Sniper
* Copy trader
* Bot likuidasi
* Arbitrase

Jika setiap mikrodetik sangat berarti dan Anda dapat melakukan deshredding pada kecepatan jalur penuh, gunakan [shred mentah (UDP)](/docs/id/shred-delivery/raw-shreds). Jika Anda memerlukan sinyal paling awal, gunakan [Preconfirmations](/docs/id/pre-confirmations/overview).

## Harga

[`preprocessedSubscribe`](/docs/id/preprocessed-transactions/preprocessed-subscribe) tersedia pada **semua paket berbayar** dan dikenai biaya **0,1 kredit per pesan** — satu pesan untuk setiap transaksi yang dikirim. Lihat [Kredit](/docs/id/billing/credits) untuk detailnya.

## Tanya Jawab Umum

<AccordionGroup>
  <Accordion title="Can you update preprocessed subscription filters live?">
    Tidak, filter ditetapkan oleh `preprocessedSubscribe` awal. Untuk menghindari jeda, kami menyarankan Anda membuka koneksi kedua dengan filter baru, menunggu konfirmasi langganannya, lalu mengalihkan layanan Anda ke filter baru tersebut.
  </Accordion>

  <Accordion title="Is the preprocessedSubscribe concurrent subscription limit per API key or account?">
    Batas 10 koneksi bersamaan diberlakukan per kunci API. Setiap kunci API dalam sebuah proyek memiliki batas 10 koneksinya sendiri.
  </Accordion>
</AccordionGroup>

## Langkah berikutnya

<CardGroup cols={2}>
  <Card title="Subscribe with preprocessedSubscribe" icon="tower-broadcast" href="/docs/id/preprocessed-transactions/preprocessed-subscribe">
    Endpoint, pemfilteran akun, tata letak payload biner, dan contoh kode.
  </Card>

  <Card title="Preconfirmations" icon="bolt" href="/docs/id/pre-confirmations/overview">
    Transaksi yang dialirkan sebelum menjadi shred — sinyal transaksi paling awal.
  </Card>

  <Card title="Raw Shreds (UDP)" icon="network-wired" href="/docs/id/shred-delivery/raw-shreds">
    Paket shred yang belum diproses melalui UDP. Anda mengimplementasikan deshredding.
  </Card>

  <Card title="Helius Sender" icon="paper-plane" href="/docs/id/sending-transactions/sender">
    Tindak lanjuti apa yang Anda lihat dengan pendaratan transaksi tercepat.
  </Card>
</CardGroup>
