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

# Dapatkan IDL

> Dapatkan IDL yang berlaku untuk program Solana pada slot mana pun dari katalog yang digunakan Parsed Events untuk mendekode instruksi.

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

Dapatkan IDL mengembalikan IDL program pada suatu slot: versi terbaru yang mulai aktif pada atau sebelum `slot`. `slot` tidak harus sama persis dengan suatu versi, sehingga Anda dapat meneruskan titik mana pun dalam riwayat. Untuk mengambil satu versi tertentu, teruskan `slot` versinya dari [Daftar Versi IDL](https://www.helius.dev/docs/id/api-reference/parsed-events/idl-versions.md).

IDL berasal dari katalog yang sama dengan yang digunakan Parsed Events dan [Parsed Streams](https://www.helius.dev/docs/id/parsed-streams.md) untuk mendekode instruksi. [Penjelajah Orb](https://www.helius.dev/docs/id/orb/explore-programs.md) menggunakan endpoint ini untuk menampilkan IDL program.

## Kasus Penggunaan

* **Dekode riwayat dengan antarmuka yang tepat.** Teruskan slot transaksi untuk mendapatkan IDL yang berlaku saat transaksi tersebut dieksekusi. Program mengubah instruksi dan akunnya seiring waktu, sehingga IDL saat ini dapat salah membaca transaksi lama.
* **Temukan nama yang tepat untuk filter.** [Pindai Riwayat Transaksi](https://www.helius.dev/docs/id/api-reference/parsed-events/scan.md) `match.programs[].instructions` menerima nama instruksi sesuai dengan penulisannya dalam IDL.
* **Tinjau perubahan antarmuka.** Ambil dua versi dan bandingkan `instructions` untuk melihat apa yang ditambahkan atau dihapus oleh suatu peningkatan. Lihat contoh di [Daftar Versi IDL](https://www.helius.dev/docs/id/api-reference/parsed-events/idl-versions.md#contoh-mendeteksi-versi-idl-baru).

## Format IDL

Responsnya adalah dokumen IDL sebagaimana disimpan. Program dalam katalog menggunakan salah satu dari dua format Anchor, dan versi-versi dari satu program dapat menggunakan keduanya. Periksa format yang Anda terima sebelum membacanya:

| | Anchor Lama (sebelum 0.30) | Anchor 0.30+ |
| - | - | - |
| Nama dan versi program | `name` dan `version` tingkat teratas | `metadata.name` dan `metadata.version` |
| Alamat program | Tidak ada `address` tingkat teratas | `address` tingkat teratas |
| Diskriminator instruksi | Tidak disertakan | `instructions[].discriminator` |
| Flag akun instruksi | `isMut`, `isSigner` | `writable`, `signer` |

Kedua format memiliki `instructions`. Sebagian besar IDL juga memiliki `accounts`, `types`, dan `errors`, serta banyak yang memiliki `events`.

## Kredit

Setiap permintaan dikenai biaya **10 kredit** dan tersedia pada semua paket. Lihat [Kredit](https://www.helius.dev/docs/id/billing/credits.md#peristiwa-terurai).

## Kesalahan

| Status | Kondisi |
| - | - |
| `400` | `programId` bukan alamat base58 yang valid, atau `slot` bukan bilangan bulat 64-bit tanpa tanda. |
| `401` | Kunci API tidak ada atau tidak valid. Isi respons berupa teks biasa: `Unauthorized`. |
| `404` | Katalog tidak memiliki IDL untuk program tersebut, atau tidak ada versi yang aktif pada atau sebelum `slot`. |

Kesalahan lainnya mengembalikan isi JSON dengan pesan `error`, seperti `{"error": "no IDL found for program KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before slot 1"}`.

## Parameter Permintaan

**programId** `string` *required*

Alamat program yang dikodekan dengan base58.

**slot** `number` *required*

Slot yang akan dicari. Slot ini tidak harus sama dengan slot aktivasi suatu versi. Teruskan `slot` dari Daftar Versi IDL untuk mendapatkan versi tersebut secara tepat, atau slot transaksi untuk mendapatkan IDL yang berlaku saat transaksi tersebut dieksekusi.


## OpenAPI

````yaml id/openapi/parsed-events.yaml GET /v1/parsed-events/idl/{programId}/{slot}
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}/{slot}:
    get:
      tags:
        - Peristiwa Terurai
      summary: Dapatkan IDL
      description: >-
        Dapatkan IDL yang berlaku untuk suatu program pada sebuah slot, yaitu
        versi terbaru yang diaktifkan pada atau sebelum `slot`.
      operationId: getIdlParsedEvents
      parameters:
        - $ref: '#/components/parameters/ProgramId'
        - name: slot
          in: path
          required: true
          description: >-
            Slot yang akan dicari. Nilainya tidak harus sama dengan slot
            aktivasi suatu versi. Teruskan `slot` dari Cantumkan Versi IDL untuk
            mendapatkan versi tersebut secara tepat, atau slot transaksi untuk
            mendapatkan IDL yang berlaku saat transaksi dijalankan.
          schema:
            type: integer
            format: uint64
            minimum: 0
            example: 205509752
      responses:
        '200':
          description: >-
            Dokumen IDL sebagaimana disimpan. Format Anchor lama dan format
            Anchor 0.30+ sama-sama dapat ditemukan, jadi periksa format yang
            Anda terima sebelum membacanya.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Idl'
              examples:
                Legacy Anchor IDL:
                  summary: >-
                    Kamino Lend pada slot 182747476 (dipangkas menjadi satu
                    instruksi dan satu kesalahan)
                  value:
                    name: kamino_lending
                    version: 0.1.0
                    instructions:
                      - name: refreshObligation
                        accounts:
                          - name: lendingMarket
                            isMut: false
                            isSigner: false
                          - name: obligation
                            isMut: true
                            isSigner: false
                        args: []
                    errors:
                      - code: 6000
                        name: InvalidMarketAuthority
                        msg: Market authority is invalid
                Anchor 0.30+ IDL:
                  summary: >-
                    Pump AMM pada slot 454326107 (dipangkas menjadi satu
                    instruksi dan satu kesalahan)
                  value:
                    address: pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA
                    metadata:
                      name: pump_amm
                      version: 0.1.0
                      spec: 0.1.0
                      description: Dibuat dengan Anchor
                    instructions:
                      - name: toggle_boost
                        discriminator:
                          - 117
                          - 161
                          - 160
                          - 74
                          - 223
                          - 137
                          - 118
                          - 99
                        accounts:
                          - name: admin
                            signer: true
                            relations:
                              - global_config
                          - name: global_config
                            writable: true
                        args:
                          - name: enabled
                            type: bool
                    errors:
                      - code: 6000
                        name: FeeBasisPointsExceedsMaximum
        '400':
          $ref: '#/components/responses/IdlBadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: >-
            Katalog tidak memiliki IDL untuk program tersebut, atau tidak ada
            versi yang aktif pada atau sebelum `slot`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: >-
                      no IDL found for program
                      KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD at or before
                      slot 1
components:
  parameters:
    ProgramId:
      name: programId
      in: path
      required: true
      description: Alamat program yang dikodekan dengan base58.
      schema:
        type: string
        example: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
  schemas:
    Idl:
      type: object
      additionalProperties: true
      description: >-
        Dokumen IDL yang dikembalikan sebagaimana disimpan. Ada dua format:


        - **Anchor Lama** (sebelum 0.30): `name` dan `version` pada tingkat
        teratas. Akun instruksi menggunakan `isMut` dan `isSigner`.

        - **Anchor 0.30+**: `address` dan `metadata` (`name`, `version`, `spec`,
        `description`) pada tingkat teratas. Instruksi memiliki `discriminator`,
        dan akun instruksi menggunakan `writable` dan `signer`.


        Kedua format memiliki `instructions`. Sebagian besar IDL juga memiliki
        `accounts`, `types`, dan `errors`, serta banyak yang memiliki `events`.
        Versi-versi dari satu program dapat menggunakan format yang berbeda.
    ErrorResponse:
      type: object
      description: Respons kesalahan tingkat permintaan.
      properties:
        error:
          type: string
          description: Pesan kesalahan.
  responses:
    IdlBadRequest:
      description: >-
        `programId` bukan alamat yang valid, atau `slot` bukan bilangan bulat
        64-bit tanpa tanda.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Invalid program ID:
              value:
                error: 'invalid program id: notanaddress: String is the wrong size'
            Invalid slot:
              value:
                error: 'invalid activation slot: abc: invalid digit found in string'
    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.