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

# describeProgram

> プログラムのデコードされた命令名、イベント、アカウントの役割を一覧表示して、実際に一致するParsed Streamsフィルターを構築できるようにします。

フィルターに基づくAPIで最も一般的な失敗は、有効だが何も一致しないフィルターです。通常は推測された命令または役割名です。`describeProgram`は、マッチャーが比較する正確な名前を返すことでそれを防ぎます。

推奨フロー: `describeProgram`を使用して正確な命令名と役割名を取得し、それらの名前でフィルターを構築し、次に[subscribe](/docs/ja/api-reference/parsed-streams/parsedtransactionsubscribe)します。[Track Jupiter Swaps](/docs/ja/parsed-streams/guides/track-jupiter-swaps)ガイドは、このプロセスを最初から最後まで説明します。

## 本文

<ParamField body="params" type="array" required>
  <Expandable title="クエリ" defaultOpen>
    <ParamField body="program" type="string" required>
      プログラムアドレス（base58）またはカタログ名。**アドレスを優先**: 名前はプログラムのバージョンによって曖昧になることがあります（カタログに同名のエントリが複数あり、名前検索で古いものが解決されることがあります）。名前で検索する場合、`result.id`が意図したプログラムであることを確認してください。
    </ParamField>
  </Expandable>
</ParamField>

## レスポンス

<ResponseField name="id" type="string">
  プログラムのアドレス（base58）。
</ResponseField>

<ResponseField name="name" type="string">
  プログラムのカタログ名。
</ResponseField>

<ResponseField name="instructions" type="string[]">
  デコードされた命令名、マッチャーが比較する内容と正確に一致します。これらを`instructionNames`フィルターフィールドで使用します。
</ResponseField>

<ResponseField name="events" type="string[]">
  このプログラムに対してパーサーが認識するイベント名。
</ResponseField>

<ResponseField name="roles" type="string[]">
  デコードされたアカウントの役割名。これらを`accounts.roles`フィルターフィールドのキーとして使用します―それらは正確に一致し、大文字小文字の折り畳みはありません。
</ResponseField>

<RequestExample>
  ```json Request theme={"system"}
  { "jsonrpc": "2.0", "id": 1, "method": "describeProgram", "params": [{ "program": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4" }] }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={"system"}
  {
    "jsonrpc": "2.0", "id": 1,
    "result": {
      "id": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
      "name": "jupiter",
      "instructions": ["route", "shared_accounts_route", "exact_out_route"],
      "events": ["SwapEvent"],
      "roles": ["user_transfer_authority", "destination_token_account"]
    }
  }
  ```
</ResponseExample>
