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

# Cara Menggunakan getBlockTime

> Pelajari kasus penggunaan getBlockTime, contoh kode, parameter permintaan, struktur respons, dan tips.

Metode RPC [`getBlockTime`](https://www.helius.dev/docs/api-reference/rpc/http/getblocktime) memberikan perkiraan waktu produksi blok tertentu yang diidentifikasi berdasarkan nomor slotnya. Waktu dikembalikan sebagai stempel waktu Unix (detik sejak epoch Unix).

Metode ini berguna ketika Anda perlu menghubungkan produksi blok dengan waktu di dunia nyata.

<Warning>
  **Hindari Pemrosesan Batch untuk Performa yang Lebih Baik**

  Pemrosesan metode arsip secara batch meningkatkan latensi secara signifikan. Batch yang berisi lebih dari 10 permintaan tidak diizinkan.
</Warning>

## Kasus Penggunaan Umum

* **Memberikan Stempel Waktu pada Peristiwa:** Tentukan kapan blok tertentu diproduksi untuk memberikan stempel waktu pada peristiwa on-chain.
* **Menganalisis Interval Produksi Blok:** Hitung selisih waktu antarblok (meskipun metode lain dapat digabungkan untuk analisis yang lebih mendetail).
* **Menghubungkan Data Off-Chain:** Selaraskan peristiwa atau data off-chain dengan aktivitas on-chain dengan mencocokkan waktu produksi blok.

## Parameter Permintaan

Metode `getBlockTime` menerima satu parameter:

1. **`slot`** (u64, wajib): Nomor slot blok yang perkiraan waktu produksinya akan diambil.

## Struktur Respons

Kolom `result` dalam respons JSON-RPC akan berisi salah satu dari berikut ini:

* **`timestamp`** (i64): Perkiraan waktu produksi sebagai stempel waktu Unix (detik sejak epoch Unix).
* **`null`**: Jika stempel waktu tidak tersedia untuk blok yang ditentukan (misalnya, blok tersebut sudah sangat lama dan datanya telah dihapus, atau blok dilewati dan tidak memiliki stempel waktu terkait).

## Contoh

### 1. Mendapatkan Perkiraan Waktu Blok Tertentu

Contoh ini mengambil perkiraan waktu produksi untuk slot tertentu. Pastikan Anda mengganti `SLOT_NUMBER_TO_QUERY` dengan slot aktual, terbaru, dan terkonfirmasi pada jaringan yang Anda targetkan (misalnya, Mainnet Beta atau Devnet).

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace SLOT_NUMBER_TO_QUERY with a valid slot, e.g., a recent one from an explorer
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlockTime",
      "params": [
        SLOT_NUMBER_TO_QUERY 
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getSpecificBlockTime(slotToQuery) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blockTime = await connection.getBlockTime(slotToQuery);
      if (blockTime !== null) {
        console.log(`Estimated time for slot ${slotToQuery}: ${new Date(blockTime * 1000).toISOString()} (Unix: ${blockTime})`);
      } else {
        console.log(`Timestamp not available for slot ${slotToQuery}.`);
      }
    } catch (error) {
      console.error('Error fetching block time:', error);
    }
  }

  // Example usage: Replace with a recent, valid slot number from Mainnet Beta
  // You can find recent slots on Solana explorers like Solscan or SolanaFM
  const slotToQuery = 300000000; // Replace with an actual slot number
  getSpecificBlockTime(slotToQuery);
  ```
</CodeGroup>

## Tips untuk Developer

* **Ketersediaan Stempel Waktu:** Stempel waktu mungkin tidak tersedia untuk semua blok, terutama blok yang sudah sangat lama atau slot yang dilewati. Dalam kasus tersebut, metode ini mengembalikan `null`.
* **Perkiraan:** Waktu tersebut merupakan *perkiraan*. Nilainya diperoleh dari rata-rata stempel waktu Vote dari validator yang dibobot berdasarkan stake. Meskipun umumnya akurat, nilai ini bukan stempel waktu yang dijamin aman secara kriptografis untuk setiap blok seperti halnya blockhash.
* **Ketergantungan pada Node:** Ketersediaan dan presisi mungkin sedikit berbeda tergantung pada node RPC yang dikueri, terutama untuk blok yang sangat baru (belum difinalisasi).

Panduan ini menjelaskan cara menggunakan `getBlockTime` untuk mengambil perkiraan stempel waktu produksi blok mana pun di jaringan Solana.
