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

# Daftar Versi IDL

> Cantumkan setiap versi IDL yang dimiliki Parsed Events untuk program Solana, beserta slot saat setiap versi mulai aktif.

Parameter jalur, skema respons, dan contoh di halaman ini dihasilkan dari definisi OpenAPI.

Daftar Versi IDL menampilkan riwayat antarmuka program dari katalog IDL yang digunakan oleh Parsed Events dan [Parsed Streams](https://www.helius.dev/docs/id/parsed-streams.md) untuk mendekode instruksi. Setiap item merupakan satu versi yang diidentifikasi berdasarkan slot saat versi tersebut mulai aktif. Item diurutkan dari yang paling lama, sehingga item terakhir adalah versi saat ini.

Teruskan `slot` apa pun dari respons ke [Dapatkan IDL](https://www.helius.dev/docs/id/api-reference/parsed-events/idl.md) untuk mengambil dokumen IDL versi tersebut. [Penjelajah Orb](https://www.helius.dev/docs/id/orb/explore-programs.md) menggunakan endpoint ini untuk menampilkan IDL program.

## Kasus Penggunaan

* **Lacak perubahan antarmuka.** Lakukan polling Daftar Versi IDL untuk program yang Anda gunakan. Saat versi baru muncul, ambil versi tersebut dan versi sebelumnya dengan Dapatkan IDL, lalu bandingkan `instructions` keduanya. Instruksi admin atau otoritas baru perlu ditinjau dari sisi keamanan.
* **Periksa cakupan katalog.** `404` berarti katalog tidak memiliki IDL untuk program tersebut. Program seperti SPL Token didekode oleh dekoder bawaan dan juga menampilkan `404`.

## Contoh: Mendeteksi Versi IDL Baru

Skrip ini mencantumkan versi IDL program, mengambil dua versi terbaru, dan menampilkan instruksi yang ditambahkan atau dihapus:

```javascript diff-idl-versions.js theme={"system"}
const API_KEY = process.env.HELIUS_API_KEY;

if (!API_KEY) {
  console.error("Missing HELIUS_API_KEY.");
  process.exit(1);
}

const BASE = "https://mainnet.helius-rpc.com/v1/parsed-events/idl";
const PROGRAM_ID = "KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD";

async function get(path) {
  const response = await fetch(`${BASE}/${path}?api-key=${API_KEY}`);
  if (!response.ok) {
    throw new Error(`HTTP ${response.status}: ${await response.text()}`);
  }
  return response.json();
}

const versions = await get(PROGRAM_ID);
if (versions.length < 2) {
  console.log("Fewer than two IDL versions; nothing to compare.");
  process.exit(0);
}

const [previous, latest] = versions.slice(-2);
const [before, after] = await Promise.all([
  get(`${PROGRAM_ID}/${previous.slot}`),
  get(`${PROGRAM_ID}/${latest.slot}`),
]);

const names = (idl) => new Set(idl.instructions.map((ix) => ix.name));
const beforeNames = names(before);
const afterNames = names(after);

console.log(`Comparing slot ${previous.slot} with slot ${latest.slot}`);
console.log("Added:", [...afterNames].filter((name) => !beforeNames.has(name)));
console.log("Removed:", [...beforeNames].filter((name) => !afterNames.has(name)));
```

Untuk mendeteksi perubahan dari waktu ke waktu, simpan `slot` dari versi terakhir yang telah Anda lihat, lalu bandingkan dengannya pada setiap polling.

## Kredit

Setiap permintaan menggunakan **10 kredit** dan tersedia pada semua paket. Contoh di atas membuat tiga permintaan, sehingga menggunakan 30 kredit. Lihat [Kredit](https://www.helius.dev/docs/id/billing/credits.md#peristiwa-terurai).

## Kesalahan

| Status | Kondisi |
| - | - |
| `400` | `programId` bukan alamat base58 yang valid. |
| `401` | Kunci API tidak ada atau tidak valid. Isi respons berupa teks biasa: `Unauthorized`. |
| `404` | Katalog tidak memiliki IDL untuk program tersebut. |

Kesalahan lainnya menampilkan isi JSON dengan pesan `error`, seperti `{"error": "no IDLs found for program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}`.

## Parameter Permintaan

**programId** `string` *required*

Alamat program yang dikodekan dalam base58.


## OpenAPI

````yaml id/openapi/parsed-events.yaml GET /v1/parsed-events/idl/{programId}
openapi: 3.0.3
info:
  title: Peristiwa yang Diurai
  version: 0.1.0
  description: >-
    Uraikan transaksi Solana dan riwayat transaksi yang diurai dengan Peristiwa
    yang Diurai.
servers:
  - url: https://mainnet.helius-rpc.com
security:
  - ApiKeyQuery: []
paths:
  /v1/parsed-events/idl/{programId}:
    get:
      tags:
        - Peristiwa Terurai
      summary: Cantumkan Versi IDL
      description: >-
        Cantumkan semua versi IDL yang dimiliki Peristiwa Terurai untuk suatu
        program, dimulai dari yang paling lama. Setiap versi diidentifikasi
        berdasarkan slot saat versi tersebut mulai aktif.
      operationId: listIdlVersionsParsedEvents
      parameters:
        - $ref: '#/components/parameters/ProgramId'
      responses:
        '200':
          description: Versi IDL program, diurutkan berdasarkan `slot` secara menaik.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IdlVersion'
              examples:
                default:
                  summary: Kamino Lend (3 versi pertama dari 43 versi)
                  value:
                    - slot: 182747476
                      sources:
                        - anchor
                    - slot: 205509752
                      sources:
                        - anchor
                    - slot: 206074074
                      sources:
                        - anchor
        '400':
          description: '`programId` bukan alamat yang valid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: 'invalid program id: notanaddress: String is the wrong size'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: >-
            Katalog tidak memiliki IDL untuk program tersebut. Program yang
            didekode oleh Peristiwa Terurai menggunakan dekoder bawaan, seperti
            SPL Token, akan mengembalikan `404`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: >-
                      no IDLs found for program
                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
components:
  parameters:
    ProgramId:
      name: programId
      in: path
      required: true
      description: Alamat program yang dikodekan dengan base58.
      schema:
        type: string
        example: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
  schemas:
    IdlVersion:
      type: object
      description: Satu versi IDL dari suatu program.
      required:
        - slot
        - sources
      properties:
        slot:
          type: integer
          format: uint64
          description: >-
            Slot saat versi IDL ini mulai aktif. Teruskan nilainya ke Dapatkan
            IDL untuk mengambil versi ini.
        sources:
          type: array
          description: >-
            Lokasi tempat Peristiwa Terurai menemukan versi ini. Nilainya
            mencakup `anchor`, `program_metadata`, dan `github`, serta nilai
            lain mungkin ditambahkan. Satu versi dapat memiliki lebih dari satu
            sumber.
          items:
            type: string
    ErrorResponse:
      type: object
      description: Respons kesalahan tingkat permintaan.
      properties:
        error:
          type: string
          description: Pesan kesalahan.
  responses:
    Unauthorized:
      description: Kunci API tidak ada atau tidak valid. Isi respons berupa teks biasa.
      content:
        text/plain:
          schema:
            type: string
          examples:
            default:
              value: Unauthorized
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.