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

# 認証

> Helius APIリクエストを安全かつ効率的に認証する方法を学ぶ

Helius APIは、APIキーを使用してリクエストを認証します。すべてのAPIリクエストには、APIキーを含めて、あなたの識別と権限を確認する必要があります。

<Warning>
  あなたのAPIキーは、あなたのHeliusアカウントへのアクセスを許可する機密情報です。クライアントサイドのコードや公開リポジトリ、ブラウザでアクセス可能な箇所に公開しないでください。
</Warning>

## はじめに

### 1. APIキーを作成する

<Steps>
  <Step title="サインアップまたはログイン">
    [Helius Dashboard](https://dashboard.helius.dev)でアカウントを作成するか、既存のアカウントにログインしてください。
  </Step>

  <Step title="APIキーに移動">
    ダッシュボードのサイドバーで**APIキー**セクションに移動します。
  </Step>

  <Step title="新しいキーを生成する">
    **新しいAPIキーを作成**をクリックし、プロジェクトに説明的な名前を付けてください（例：「Production App」、「Development Environment」）。
  </Step>

  <Step title="キーをコピーして安全に保管する">
    APIキーをすぐにコピーして安全に保存してください。一度移動すると再度見ることができません。
  </Step>
</Steps>

### 2. APIキーの使用

すべてのリクエストでクエリパラメーターとしてAPIキーを含めます。

<CodeGroup>
  ```bash cURL theme={"system"}
  curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"getAccountInfo","params":["ACCOUNT_ADDRESS"]}'
  ```

  ```javascript JavaScript theme={"system"}
  const url = `https://mainnet.helius-rpc.com/?api-key=${YOUR_API_KEY}`;
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 1,
      method: 'getAccountInfo',
      params: ['ACCOUNT_ADDRESS']
    })
  });
  ```

  ```python Python theme={"system"}
  import requests

  url = f"https://mainnet.helius-rpc.com/?api-key={YOUR_API_KEY}"
  payload = {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getAccountInfo",
      "params": ["ACCOUNT_ADDRESS"]
  }
  response = requests.post(url, json=payload)
  ```
</CodeGroup>

## はじめに（エージェント向け）

エージェントは、[Helius CLI](/ja/agents/cli)を使用してプログラムでHeliusアカウントにサインアップし、プロジェクトを作成し、APIキーを生成できます。

完全な手順は、[https://dashboard.helius.dev/agents.md](https://dashboard.helius.dev/agents.md) を読んでください。

### Helius CLIをインストールする

<CodeGroup>
  ```bash theme={"system"}
  npm install -g helius-cli
  ```
</CodeGroup>

### キーペアを生成する

<CodeGroup>
  ```bash theme={"system"}
  helius keygen
  ```
</CodeGroup>

### ウォレットに資金を提供する（オートペイのみ）

ホストされた支払いリンクを介して支払う場合はこのステップをスキップします（`--pay` / `--resume`）。オートペイの場合は、ステップ2で提供されたウォレットアドレスに1 USDCと0.001 SOLを送信します。

### サインアップしてAPIキーを取得する

<CodeGroup>
  ```bash theme={"system"}
  helius signup --email you@example.com --first-name Jane --last-name Doe --json
  ```
</CodeGroup>

## セキュリティのベストプラクティス

<CardGroup cols={2}>
  <Card title="環境変数" icon="shield-check">
    ソースコードではなく、環境変数にAPIキーを保存します。

    ```bash theme={"system"}
    export HELIUS_API_KEY="YOUR_API_KEY"
    ```
  </Card>

  <Card title="IP制限" icon="globe">
    特定のIPアドレスまたは範囲へのアクセスを制限するために、ダッシュボードでAPIキーのIP制限を設定します。
  </Card>

  <Card title="別々のキー" icon="key">
    開発、ステージング、本番環境ごとに異なるAPIキーを使用して、使用を分離し、セキュリティを向上させます。
  </Card>

  <Card title="使用状況の監視" icon="chart-line">
    ダッシュボードで定期的にAPI使用状況を確認し、異常なパターンや潜在的なセキュリティの問題を検出します。
  </Card>
</CardGroup>

### 秘密管理

<Tabs>
  <Tab title="Node.js">
    ```javascript theme={"system"}
    // Use environment variables
    const apiKey = process.env.HELIUS_API_KEY;

    // Or use a secrets manager
    const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
    const client = new SecretManagerServiceClient();

    async function getApiKey() {
      const [version] = await client.accessSecretVersion({
        name: 'projects/PROJECT_ID/secrets/helius-api-key/versions/latest',
      });
      return version.payload.data.toString();
    }
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    import os
    from dotenv import load_dotenv

    # Load environment variables
    load_dotenv()
    api_key = os.getenv('HELIUS_API_KEY')

    # Or use AWS Secrets Manager
    import boto3

    def get_secret():
        client = boto3.client('secretsmanager')
        response = client.get_secret_value(SecretId='helius-api-key')
        return response['SecretString']
    ```
  </Tab>

  <Tab title="Docker">
    ```dockerfile theme={"system"}
    # In your Dockerfile
    ENV HELIUS_API_KEY=""

    # Or use Docker secrets
    RUN --mount=type=secret,id=helius_key \
        cat /run/secrets/helius_key > /app/api_key.txt
    ```
  </Tab>
</Tabs>

## レート制限と使用

<Note>
  レート制限はサブスクリプションプランによって異なります。割り当てられた制限内に収まるように、[Helius Dashboard](https://dashboard.helius.dev)で使用状況を監視してください。
</Note>

### レート制限について理解する

* **秒あたりのリクエスト数**: サブスクリプションのティアに基づく
* **月間リクエストクォータ**: 課金サイクルごとに許可される総リクエスト数
* **バースト許容量**: 基本レート制限を超えた短期間のスパイク

### レート制限の処理

<CodeGroup>
  ```javascript JavaScript theme={"system"}
  async function makeRequest(url, data) {
    try {
      const response = await fetch(url, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data)
      });
      
      if (response.status === 429) {
        const retryAfter = response.headers.get('Retry-After');
        console.log(`Rate limited. Retry after ${retryAfter} seconds`);
        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
        return makeRequest(url, data); // Retry
      }
      
      return response.json();
    } catch (error) {
      console.error('Request failed:', error);
      throw error;
    }
  }
  ```

  ```python Python theme={"system"}
  import time
  import requests

  def make_request(url, data):
      try:
          response = requests.post(url, json=data)
          
          if response.status_code == 429:
              retry_after = int(response.headers.get('Retry-After', 60))
              print(f"Rate limited. Waiting {retry_after} seconds...")
              time.sleep(retry_after)
              return make_request(url, data)  # Retry
          
          response.raise_for_status()
          return response.json()
      except requests.exceptions.RequestException as e:
          print(f"Request failed: {e}")
          raise
  ```
</CodeGroup>

## トラブルシューティング

<AccordionGroup>
  <Accordion title="無効なAPIキーエラー">
    **症状**: 401 Unauthorizedまたは「Invalid API Key」エラー

    **解決策**:

    * APIキーが正しいことを確認し、再生成されていないか確認する
    * クエリパラメーターとしてAPIキーを含めていることを確認する: `?api-key=YOUR_KEY`
    * APIキーに余分なスペースや文字が含まれていないことを確認する
    * APIキーが期限切れまたは無効になっていないことを確認する
  </Accordion>

  <Accordion title="レート制限を超えた">
    **症状**: 429 Too Many Requestsエラー

    **解決策**:

    * ダッシュボードで現在の使用状況を確認する
    * リトライロジックに指数バックオフを実装する
    * 高い制限のプランにアップグレードを検討する
    * 不要な呼び出しを減らすようリクエストを最適化する
  </Accordion>

  <Accordion title="アクセス禁止">
    **症状**: 403 Forbiddenエラー

    **解決策**:

    * IP制限がリクエストをブロックしていないことを確認する
    * サブスクリプションにエンドポイントへのアクセスが含まれていることを確認する
    * APIキーに必要な権限があることを確認する
  </Accordion>
</AccordionGroup>

## 次のステップ

<CardGroup cols={2}>
  <Card title="クイックスタートガイド" icon="rocket" href="/ja/quickstart">
    Heliusで最初のAPIコールを始める
  </Card>

  <Card title="APIリファレンス" icon="book" href="/ja/api-reference">
    利用可能なすべてのエンドポイントと方法を探索する
  </Card>

  <Card title="レート制限" icon="credit-card" href="/ja/billing/rate-limits">
    レート制限とアップグレードのオプションを理解する
  </Card>

  <Card title="ダッシュボード" icon="chart-line" href="https://dashboard.helius.dev">
    API使用状況を監視し、キーを管理する
  </Card>
</CardGroup>

## サポート

認証について助けが必要ですか、APIキーに関する質問がありますか？

<CardGroup cols={2}>
  <Card title="Discordコミュニティ" icon="discord" href="https://discord.com/invite/6GXdee3gBj">
    リアルタイムのヘルプとコミュニティサポートのためにDiscordに参加する
  </Card>

  <Card title="メールサポート" icon="envelope" href="mailto:support@helius.xyz">
    サポートチームに直接連絡する
  </Card>
</CardGroup>
