> ## 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 블록체인과 상호작용하고 현재 진행 상황을 이해하기 위한 간단하지만 필수적인 방법입니다.
