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

# getSlotの使い方

> getSlotの使用例、コード例、リクエストパラメータ、レスポンス構造、ヒントを学ぶ。

[`getSlot`](https://www.helius.dev/docs/api-reference/rpc/http/getslot) RPCメソッドは、RPCノードが特定のコミットメントレベルに達したと考える現在のスロットを返します。これは、ノードから見たブロックチェーンの現在の状態を理解するための基本的なメソッドです。

## 一般的な使用事例

* **現在のネットワーク進捗の取得:** ノードによって処理または確認された最新のスロットを確認します。
* **ノード同期の確認:** 異なるノードのスロットを比較することで、その同期状態の指標を得ることができます。
* **操作のタイムスタンプ:** 現在のスロットを操作の基準点や特定のデータの古さを理解するための参照点として使用します。
* **他のRPC呼び出しの入力:** 一部のRPCメソッドではスロット番号を参照点として使用することがあります。

## リクエストパラメータ

このメソッドは、最初のパラメータとしてオプションの構成オブジェクトを受け取ります。

1. **`options`** (`object`, オプション): 次のフィールドを含むオプションの構成オブジェクトです。
   * **`commitment`** (`string`, オプション): クエリの[コミットメントレベル](https://www.helius.dev/blog/solana-commitment-levels)を指定します。サポートされている値は、`finalized`、`confirmed`、または`processed`です。省略された場合、デフォルトのRPCノードのコミットメントが使用されます（通常は`finalized`）。
     * `processed`: ノードは最新のスロットをクエリします。このスロットはクラスターによって確認されていない可能性があり、スキップされることもあります。
     * `confirmed`: ノードはクラスターのスーパー多数派によって投票された最新のスロットをクエリします。
     * `finalized`: ノードはクラスターのスーパー多数派によって最大ロックアウトに達したと確認された最新のスロットをクエリします（ロールバック不可）。
   * **`minContextSlot`** (`number`, オプション): リクエストが評価される最小スロットを設定します。これによりノードのコンテキストの最小スロットが設定されます。ノードの状態がこのスロットよりも古い場合、エラーを返したり、その時点の状態を反映する古いスロット番号を返したりすることがあります。

## レスポンス構造

JSON-RPCレスポンスの`result`フィールドは、指定されたコミットメントレベルに従った現在のスロット番号を表す単一の`u64`（符号なし64ビット整数）です。

**例のレスポンス:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": 123456789,
  "id": 1
}
```

## 例

### 1. 現在のスロットを取得（デフォルトのコミットメント）

この例は、通常`finalized`であるノードのデフォルトのコミットメントレベルを使用して現在のスロットを取得します。

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getCurrentSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot();
      console.log('Current slot (default commitment):', slot);
    } catch (error) {
      console.error('Error fetching current slot:', error);
    }
  }

  getCurrentSlot();
  ```
</CodeGroup>

### 2. 特定のコミットメントで現在のスロットを取得

この例は、`confirmed`コミットメントに達した現在のスロットを取得します。

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot",
      "params": [
        {
          "commitment": "confirmed"
        }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getConfirmedSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot('confirmed');
      console.log('Current slot (confirmed commitment):', slot);
      // Note: For @solana/web3.js v1.30.0 and later, you can pass commitment directly.
      // For older versions or more complex options, use an object:
      // const slot = await connection.getSlot({ commitment: 'confirmed' });
    } catch (error) {
      console.error('Error fetching confirmed slot:', error);
    }
  }

  getConfirmedSlot();
  ```
</CodeGroup>

## 開発者向けのヒント

* **コミットメントが重要:** 戻されるスロット番号は、指定された`commitment`レベルに大きく依存します。詳細情報については、[Solana Commitment Levels](https://www.helius.dev/blog/solana-commitment-levels)を参照してください。`processed`はノードが認識している最新のスロットであり、`finalized`はネットワーク全体によって確認された古いスロットです。データの確定性のニーズに応じて適切なコミットメントレベルを選択してください。
* **ノードのばらつき:** 異なるRPCノードは、ネットワークの伝播遅延や独自の処理状態により、同じコミットメントレベルでもわずかに異なるスロット番号を返すことがあります。これは特に`processed`と`confirmed`レベルで顕著です。
* **`minContextSlot`:** このパラメータは、リクエストを処理するノードが少なくとも`minContextSlot`に到達していることを確認します。ノードがこのスロットよりも遅れている場合、動作が異なる場合があります（例：エラーや、`minContextSlot`より小さいノードの現在の最高スロット）。これは一般的に、十分に新しい状態に対してクエリが行われる必要がある高度なシナリオで使用されます。

`getSlot`は、Solanaブロックチェーンと対話し、その現在の進行を理解するためのシンプルでありながら重要なメソッドです。
