Skip to main content
Ini adalah jalur pengiriman transaksi dasar — ditagih per pengiriman dan paling sesuai ketika keandalan lebih penting daripada kecepatan mentah (pembayaran, dompet, aplikasi). Jika Anda melakukan perdagangan dan memerlukan latensi terendah, gunakan Helius Sender.
Membangun logika pengiriman transaksi Anda sendiri adalah cara terbaik untuk memastikan performa, kontrol, dan keandalan maksimum bagi aplikasi Anda. Meskipun Helius SDK menyediakan pembungkus praktis untuk memulai, memahami dan menerapkan alur kerja manual ini sangat disarankan untuk sistem produksi. Panduan ini akan memandu Anda melalui langkah-langkah yang diperlukan untuk membangun solusi Anda sendiri.

Alur Kerja Manual

Mengirim transaksi secara manual mencakup langkah-langkah berikut:
1

Build the Initial Transaction

Susun instruksi Anda dan tanda tangani transaksi agar dapat disimulasikan.
2

Optimize Compute Units

Simulasikan transaksi untuk menentukan CU yang diperlukan secara tepat, lalu tambahkan sedikit cadangan.
3

Add Priority Fees

Dapatkan estimasi biaya dari Helius Priority Fee API dan tambahkan ke transaksi Anda.
4

Send and Re-broadcast

Kirim transaksi akhir dan terapkan strategi polling yang andal untuk menangani konfirmasi.
Helius SDK bersifat sumber terbuka. Anda dapat melihat kode yang mendasari metode sendSmartTransaction dalam TypeScript SDK dan Rust SDK kami untuk melihat implementasi siap produksi dari alur kerja ini.

1. Bangun Transaksi Awal

Pertama, kumpulkan semua instruksi yang ingin Anda sertakan dalam transaksi. Kemudian, buat objek Transaction atau VersionedTransaction. Anda juga perlu mengambil blockhash terbaru. Contoh ini menyiapkan transaksi berversi. Pada tahap ini, Anda juga harus menandatanganinya agar transaksi dapat disimulasikan pada langkah berikutnya.

2. Optimalkan Penggunaan Unit Komputasi (CU)

Untuk menghindari pemborosan biaya atau kegagalan transaksi, Anda harus menetapkan batas unit komputasi (CU) setepat mungkin. Anda dapat melakukannya dengan menyimulasikan transaksi menggunakan metode RPC simulateTransaction. Praktik terbaiknya adalah terlebih dahulu melakukan simulasi dengan batas CU yang tinggi untuk memastikan simulasi itu sendiri berhasil, lalu menggunakan unitsConsumed dari respons untuk menetapkan batas aktual Anda.
Sekarang Anda memiliki instruksi yang menetapkan batas komputasi secara tepat. Anda akan menambahkannya ke transaksi akhir.

3. Tetapkan Biaya Prioritas yang Tepat

Berikutnya, tentukan biaya prioritas optimal yang akan ditambahkan ke transaksi Anda. Menggunakan Priority Fee API Helius adalah cara terbaik untuk mendapatkan estimasi waktu nyata berdasarkan kondisi jaringan saat ini. Anda perlu memanggil metode RPC getPriorityFeeEstimate. Untuk peluang penyertaan tertinggi melalui koneksi dengan stake milik Helius, gunakan opsi recommended: true.

4. Bangun, Kirim, dan Konfirmasikan

Sekarang, susun transaksi akhir dengan instruksi anggaran komputasi yang baru, kirimkan, lalu terapkan mekanisme polling yang andal untuk mengonfirmasi bahwa transaksi telah masuk.
Jangan mengandalkan logika percobaan ulang default milik penyedia RPC (maxRetries dalam sendTransaction). Meskipun koneksi dengan stake milik Helius meneruskan transaksi Anda langsung kepada leader, transaksi tersebut masih dapat terlewat. Anda harus menerapkan logika penyiaran ulang sendiri untuk memastikan konfirmasi yang andal.
Pola yang umum adalah mengirim ulang transaksi yang sama secara berkala hingga blockhash kedaluwarsa. Hanya tanda tangani ulang transaksi jika Anda juga mengambil blockhash baru. Penandatanganan ulang dengan blockhash yang sama dapat menyebabkan transaksi duplikat dikonfirmasi.
Contoh ini menyediakan perulangan polling dasar. Aplikasi siap produksi memerlukan logika yang lebih canggih, termasuk penanganan berbagai status konfirmasi dan potensi batas waktu.

Lindungi dari serangan sandwich

Untuk mengarahkan transaksi Anda agar tidak melewati validator yang secara statistik terkait dengan serangan sandwich, tambahkan parameter kueri mev-protect=true ke URL RPC Anda — tanpa mengubah logika transaksi:

MEV Protect

Pelajari cara kerja MEV Protect, metode yang didukungnya, dan komprominya.

Dapatkan rabat dari transaksi Anda

Anda dapat memilih untuk memperoleh bagian dari MEV yang dihasilkan transaksi Anda, yang dibayarkan secara otomatis dalam SOL — tanpa mengubah logika transaksi.

Transaction Rebates

Tambahkan satu parameter ke pemanggilan sendTransaction Anda untuk mulai memperoleh rabat SOL.

Metode Terkait

sendTransaction

Kirim transaksi yang telah ditandatangani ke jaringan

simulateTransaction

Simulasikan transaksi untuk memperkirakan unit komputasi

getSignatureStatuses

Periksa status konfirmasi transaksi

getLatestBlockhash

Dapatkan blockhash terbaru untuk penandatanganan transaksi

getBlockHeight

Dapatkan tinggi blok saat ini untuk pemeriksaan kedaluwarsa