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

# Pindai Riwayat Transaksi

> Cari transaksi dalam riwayat suatu alamat di sisi server yang memanggil instruksi program atau menyentuh mint token, lalu kembalikan kecocokan yang telah diuraikan, tanda tangannya, atau jumlahnya.

Isi permintaan, skema respons, dan contoh pada halaman ini dihasilkan dari definisi OpenAPI.

Pemindaian menelusuri riwayat satu alamat, menyimpan transaksi yang cocok dengan kriteria `match` Anda, dan hanya menguraikan transaksi tersebut. Gunakan fitur ini sebagai pengganti menelusuri halaman [Riwayat Transaksi Terurai](https://www.helius.dev/docs/id/api-reference/parsed-events/transaction-history.md) dan memfilter di sisi klien.

Secara default, setiap item dalam `data` menggunakan bentuk `TransactionResult` yang sama seperti yang dikembalikan oleh [Uraikan Transaksi](https://www.helius.dev/docs/id/api-reference/parsed-events/transactions.md). Atur `returnShape` untuk hanya mendapatkan tanda tangan yang cocok atau jumlahnya saja. Respons juga menyertakan ringkasan `scan` yang memberi tahu sejauh mana pemindaian berlangsung dan alasan pemindaian berhenti.

## Cara Kerja Pemindaian

1. Pemindaian mengambil riwayat alamat dalam halaman berisi hingga 1.000 transaksi, dalam `sortOrder`, sesuai batas `slot`, `time`, dan tanda tangan yang Anda tetapkan.
2. Pemindaian menyimpan transaksi yang cocok dengan setiap kriteria yang ditetapkan dalam `match`.
3. Pemindaian berhenti saat kondisi pertama berikut terpenuhi: `limit` kecocokan ditemukan (hanya untuk bentuk default `transactions`), `budget.maxScannedTransactions` telah dipindai, akhir riwayat atau rentang tercapai, atau batas waktu permintaan tercapai.

Pemindaian yang berhenti lebih awal tetap merupakan `200`. Panggil lagi dengan `paginationToken` yang dikembalikan selama nilainya tersedia, meskipun `data` kosong.

## Kriteria Kecocokan

`match` wajib diisi. Atur `programs`, `mints`, atau keduanya. Jika Anda mengatur keduanya, transaksi harus cocok dengan keduanya.

### Cocokkan berdasarkan Program

`programs` mencantumkan hingga 20 program, masing-masing paling banyak satu kali. Transaksi cocok jika memiliki instruksi dari salah satu program tersebut, baik tingkat atas maupun internal (CPI), dalam `scope` program tersebut.

Untuk setiap program, Anda dapat mempersempit kecocokan:

* `instructions`: nama instruksi dari versi IDL mana pun milik program, sesuai ejaan dalam IDL atau dalam snake\_case. Nama yang tidak ditemukan dalam IDL program akan mengembalikan `400`.
* `discriminators`: prefiks data instruksi, masing-masing sepanjang 1 hingga 8 byte berkode heksadesimal dengan prefiks `0x` opsional. Gunakan ini untuk program tanpa IDL.
* Atur salah satu daftar atau keduanya. Jika keduanya diatur, instruksi cocok jika merupakan salah satu instruksi bernama atau datanya diawali dengan salah satu diskriminator. Hilangkan keduanya untuk mencocokkan instruksi apa pun dari program tersebut.
* Setiap daftar menerima paling banyak 50 entri per program.

Untuk mengonfirmasi nama instruksi program yang telah didekodekan, gunakan metode Parsed Streams [`describeProgram`](https://www.helius.dev/docs/id/parsed-streams/quickstart#penemuan).

### Cocokkan berdasarkan Mint

`mints` mencantumkan hingga 20 objek dalam bentuk `{ "mint": "...", "scope": "address" }`, dengan setiap mint paling banyak satu kali. Transaksi cocok jika salah satu saldo token sebelum atau sesudah transaksi berasal dari salah satu mint tersebut, dalam `scope` mint itu.

Saat Anda memindai dompet untuk suatu mint, atur `tokenAccounts` ke `balanceChanged`. Secara default, riwayat tidak menyertakan transaksi yang hanya menyentuh akun token milik dompet dan bukan dompet itu sendiri, termasuk banyak transfer token masuk.

### Cocokkan SOL Native

SOL native tidak memiliki saldo token, sehingga pemindaian mencocokkannya berdasarkan lamport. Gunakan mint SOL native `So11111111111111111111111111111111111111111` (wrapped SOL adalah `So11111111111111111111111111111111111111112`):

* Dengan cakupan `address`, transaksi cocok jika jumlah lamport alamat yang dipindai berubah.
* Dengan cakupan `transaction`, transaksi cocok jika jumlah lamport akun mana pun berubah.

Biaya yang dibebankan kepada pembayar biaya tidak dihitung. Setiap akun dibandingkan secara terpisah, sehingga lamport yang keluar dari akun dan kembali dalam transaksi yang sama tidak dihitung. Pencocokan SOL native mendeteksi SOL yang dibayarkan oleh program tanpa instruksi transfer, seperti penjualan Pump.fun. Pencocokan ini juga mendeteksi pergerakan insidental, seperti tip Jito dan sewa yang dibayar untuk atau dikembalikan dari akun.

### Cakupan Kecocokan

Setiap program dan setiap mint menerima `scope`:

| `scope` | Instruksi program dihitung jika | Saldo token mint dihitung jika |
| - | - | - |
| `address` (default) | Salah satu akunnya adalah `address`, akun token yang dimiliki oleh `address`, atau akun token yang mint-nya adalah `address`, atau `address` adalah program itu sendiri. | Akun tokennya adalah `address` atau dimiliki oleh `address`, atau mint-nya adalah `address`. |
| `transaction` | Muncul di mana saja dalam transaksi. | Muncul di mana saja dalam transaksi. |

Gunakan cakupan `transaction` jika alamat yang dipindai ada dalam transaksi, tetapi tidak ada dalam instruksi atau saldo yang Anda cocokkan. Misalnya, alamat hanya membayar biaya, menjalankan transaksi multisig, atau tidak tercantum dalam CPI peristiwa Anchor. Pemindaian mint token untuk transaksi yang juga memiliki USDC memerlukan cakupan `transaction` pada entri USDC.

Kepemilikan akun token berasal dari `owner` yang dicatat pada setiap saldo token. Transaksi lama yang tidak mencatatnya hanya cocok dengan cakupan `address` pada `address` itu sendiri.

## Bentuk Hasil

`returnShape` menentukan isi respons untuk kecocokan:

| `returnShape` | `data` | Gunakan untuk |
| - | - | - |
| `transactions` (default) | Kecocokan terurai, hingga `limit`. | Membaca instruksi, transfer, dan ringkasan yang telah didekodekan. |
| `signatures` | Satu objek `{ signature, slot, transactionIndex, blockTime }` per kecocokan. | Mengumpulkan tanda tangan yang cocok tanpa menguraikannya. |
| `count` | Dihilangkan. `scan.matchedTransactions` adalah jumlah kecocokan. | Menghitung kecocokan dalam suatu rentang. |

`signatures` dan `count` mengabaikan `limit` dan `rawTransaction`. Keduanya mengembalikan setiap kecocokan dalam rentang yang dipindai oleh permintaan, sehingga hanya berhenti pada `windowEnd`, `budget`, atau `deadline`. Untuk menghitung seluruh riwayat, terus lakukan pemanggilan dengan `paginationToken` dan jumlahkan `scan.matchedTransactions`.

Setiap item dalam `data` dengan `returnShape: "signatures"` terlihat seperti ini:

```json theme={"system"}
{
  "signature": "5zmGhmd3JZxXzz8MnA8MM1K7PXRwA1z35n3xT6ZJGRz3sAi25p8jaZuPWFCB4nEPx7DUke9y3pwrd4V7xAFozQBy",
  "slot": 460869102,
  "transactionIndex": 203,
  "blockTime": 1792848886
}
```

Ketiga bentuk memiliki biaya yang sama karena kredit bergantung pada halaman riwayat yang dipindai, bukan pada data yang dikembalikan.

## Contoh Permintaan

### Pembelian dan Penjualan Pump.fun

Pindai riwayat program Pump.fun untuk instruksi `buy` dan `sell`:

```json theme={"system"}
{
  "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
  "match": {
    "programs": [
      {
        "programId": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
        "instructions": ["buy", "sell"]
      }
    ]
  },
  "limit": 100
}
```

Pump.fun juga memiliki varian seperti `buy_exact_sol_in`, `buy_v2`, dan `sell_v2`. Cantumkan setiap nama instruksi yang ingin Anda cocokkan.

### Pembelian dan Penjualan Satu Token

Untuk mendapatkan perdagangan Pump.fun dari satu token, pindai alamat mint token tersebut, bukan programnya. Riwayat mint hanya berisi aktivitas token tersebut, dan setiap instruksi pembelian atau penjualan mencantumkan mint sebagai akun, sehingga cocok dengan cakupan default `address`:

```json theme={"system"}
{
  "address": "<MINT_ADDRESS>",
  "match": {
    "programs": [
      {
        "programId": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
        "instructions": ["buy", "sell"]
      }
    ]
  }
}
```

Untuk hanya menyimpan transaksi token yang juga melibatkan akun token USDC, tambahkan USDC dengan cakupan `transaction`. Dengan cakupan default `address`, saldo USDC harus dimiliki oleh alamat mint, sehingga tidak ada yang akan cocok:

```json theme={"system"}
{
  "address": "<MINT_ADDRESS>",
  "match": {
    "mints": [
      { "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "scope": "transaction" }
    ]
  }
}
```

### Perdagangan Dompet pada Dua Program

Cantumkan beberapa program untuk mencocokkan panggilan ke salah satunya. Permintaan ini hanya mengembalikan tanda tangan perdagangan Pump.fun dan PumpSwap milik dompet:

```json theme={"system"}
{
  "address": "<WALLET_ADDRESS>",
  "match": {
    "programs": [
      {
        "programId": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
        "instructions": ["buy", "sell"]
      },
      {
        "programId": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
        "instructions": ["buy", "sell"]
      }
    ]
  },
  "returnShape": "signatures"
}
```

### Aktivitas USDC Dompet dalam Rentang Waktu

Pindai riwayat dompet untuk transaksi yang menyentuh USDC selama tahun 2025. `tokenAccounts: "balanceChanged"` menyertakan transfer yang hanya menyentuh akun token USDC milik dompet:

```json theme={"system"}
{
  "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
  "match": {
    "mints": [{ "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" }]
  },
  "tokenAccounts": "balanceChanged",
  "time": { "gte": 1735689600, "lte": 1767225599 }
}
```

Untuk hanya mendapatkan jumlah transaksi yang cocok, tambahkan `"returnShape": "count"`.

### Pergerakan SOL Dompet

Pindai dompet untuk transaksi yang mengubah saldo SOL-nya, selain biaya yang dibayarkan, selama tahun 2025. Ini mencakup SOL yang dibayarkan oleh program tanpa instruksi transfer:

```json theme={"system"}
{
  "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
  "match": {
    "mints": [{ "mint": "So11111111111111111111111111111111111111111" }]
  },
  "time": { "gte": 1735689600, "lte": 1767225599 }
}
```

## Paginasi dan Alasan Berhenti

`scan.stoppedOn` memberi tahu alasan permintaan berakhir:

| `stoppedOn` | Arti | `paginationToken` |
| - | - | - |
| `windowEnd` | Mencapai akhir riwayat atau rentang yang diminta. | Tidak ada. Pemindaian selesai. |
| `limit` | Mengembalikan `limit` kecocokan. Hanya dengan bentuk default `transactions`. | Melanjutkan tepat setelah kecocokan terakhir yang dikembalikan agar tidak ada kecocokan yang terlewat. |
| `budget` | Memindai `budget.maxScannedTransactions` transaksi. | Melanjutkan pada halaman riwayat berikutnya. |
| `deadline` | Mencapai batas waktu permintaan. | Melanjutkan pada halaman riwayat berikutnya. Halaman yang terpotong oleh tenggat akan diambil lagi pada pemanggilan berikutnya. |

`scan.scannedThrough` memberikan slot dan waktu blok transaksi terakhir yang dipindai agar Anda dapat melaporkan progres dalam riwayat yang panjang.

Pemindaian untuk instruksi yang langka dapat menghabiskan anggaran tanpa menemukan kecocokan. Respons kemudian memiliki array `data` kosong dan tetap mengembalikan `paginationToken`, jadi lanjutkan pemindaian:

```json theme={"system"}
{
  "data": [],
  "paginationToken": "460903064:422",
  "scan": {
    "stoppedOn": "budget",
    "scannedTransactions": 2000,
    "matchedTransactions": 0,
    "scannedThrough": { "slot": 460903064, "blockTime": 1792856105 },
    "creditsCharged": 12
  }
}
```

Perulangan ini terus memindai hingga riwayat habis:

```javascript scan-pumpfun-trades.js theme={"system"}
const API_KEY = process.env.HELIUS_API_KEY;

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

const URL = `https://mainnet.helius-rpc.com/v1/parsed-events/scan?api-key=${API_KEY}`;
const PUMP_PROGRAM = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P";

async function scan(paginationToken) {
  const response = await fetch(URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      address: PUMP_PROGRAM,
      match: {
        programs: [{ programId: PUMP_PROGRAM, instructions: ["buy", "sell"] }],
      },
      limit: 100,
      ...(paginationToken && { paginationToken }),
    }),
  });

  if (!response.ok) {
    throw new Error(`HTTP ${response.status}: ${await response.text()}`);
  }

  return response.json();
}

let paginationToken;

do {
  const page = await scan(paginationToken);

  for (const result of page.data) {
    console.log(result.signature, result.parsed?.slot);
  }

  console.log(
    `stopped on ${page.scan.stoppedOn}: scanned ${page.scan.scannedTransactions}, ` +
      `matched ${page.scan.matchedTransactions}, charged ${page.scan.creditsCharged} credits`
  );

  // Keep going while a token is returned, even when this page had no matches.
  paginationToken = page.paginationToken;
} while (paginationToken);
```

> [!TIP]
>
> Pindai alamat dengan cakupan sesempit mungkin. Setiap transaksi dalam riwayat alamat dihitung terhadap anggaran. Jadi, semakin sedikit transaksi yang tidak terkait pada suatu alamat, semakin banyak kecocokan yang ditemukan oleh setiap permintaan.

## Kredit

Setiap pemindaian dikenai biaya **10 kredit ditambah 1 kredit per halaman riwayat yang dipindai**. Satu halaman memuat hingga 1.000 transaksi. Karena itu, pemindaian dengan anggaran default 10.000 transaksi dikenai biaya paling banyak 20 kredit. Halaman yang terpotong oleh tenggat tidak dipindai dan tidak dikenai biaya.

Setiap respons melaporkan biayanya dalam `scan.creditsCharged`. Lihat [Kredit](https://www.helius.dev/docs/id/billing/credits.md) untuk harga paket.

## Kesalahan

| Status | Kondisi |
| - | - |
| `400` | Isi tidak valid atau memiliki kolom yang tidak dikenal, `match` tidak menetapkan `programs` maupun `mints`, program atau mint dicantumkan lebih dari sekali, alamat atau mint tidak valid, nama instruksi tidak ada dalam IDL program, daftar melampaui batasnya, `scope`, `returnShape`, `rawTransaction`, atau `tokenAccounts` memiliki nilai yang tidak dikenal, `limit` berada di luar rentang 1 hingga 100 dengan bentuk `transactions`, atau `budget.maxScannedTransactions` berada di luar rentang 1 hingga 10.000. |
| `500` | Permintaan gagal di server, misalnya karena transaksi tersimpan dalam rentang yang dipindai tidak dapat didekodekan. Tidak ada hasil parsial yang dikembalikan. |
| `503` | Layanan telah mencapai kapasitas maksimum, atau halaman riwayat pertama tidak selesai sebelum batas waktu permintaan. Coba ulangi permintaan. |

Kesalahan tingkat permintaan mengembalikan isi JSON dengan pesan `error`, seperti `{"error": "limit must be between 1 and 100"}`. Isi dengan kolom yang tidak dikenal, seperti `includeRawTransaction` (gunakan `rawTransaction`), atau dengan `mints` berupa string biasa, bukan objek `{ "mint": "..." }`, akan mengembalikan `{"error": "invalid request payload"}`.

## Parameter Permintaan

**address** `string` *required*

Alamat yang riwayatnya dipindai.

**match** `object` *required*

Kriteria yang harus dicocokkan oleh transaksi. Atur `programs`, `mints`, atau keduanya. Jika keduanya diatur, transaksi harus cocok dengan keduanya.

**match.programs** `array`

Program yang akan dicocokkan, paling banyak 20, masing-masing paling banyak satu kali. Transaksi cocok jika memiliki instruksi dari salah satu program tersebut, baik tingkat atas maupun internal (CPI), dalam `scope` program tersebut.

**match.programs\[].programId** `string` *required*

Alamat program.

**match.programs\[].instructions** `array`

Nama instruksi dari versi IDL mana pun milik program, sesuai ejaan dalam IDL atau dalam snake\_case. Paling banyak 50. Dapat digabungkan dengan `discriminators`.

**match.programs\[].discriminators** `array`

Prefiks data instruksi, masing-masing sepanjang 1 hingga 8 byte berkode heksadesimal dengan prefiks `0x` opsional. Paling banyak 50. Dapat digabungkan dengan `instructions`.

**match.programs\[].scope** `string` (default: address)

Instruksi program yang dihitung. `address` hanya menghitung instruksi dengan akun yang merupakan `address`, akun token yang dimiliki oleh `address`, atau akun token yang mint-nya adalah `address`, atau setiap instruksi jika `address` adalah program tersebut. `transaction` menghitung instruksi apa pun dari program dalam transaksi.

* `address`
* `transaction`

**match.mints** `array`

Mint yang akan dicocokkan, paling banyak 20, masing-masing paling banyak satu kali. Transaksi cocok jika salah satu saldo token sebelum atau sesudah transaksi berasal dari salah satu mint tersebut, dalam `scope` mint itu.

**match.mints\[].mint** `string` *required*

Alamat mint token. Mint SOL native `So11111111111111111111111111111111111111111` mencocokkan perubahan lamport, bukan saldo token, tanpa menghitung biaya.

**match.mints\[].scope** `string` (default: address)

Saldo token mint yang dihitung. `address` hanya menghitung saldo yang akun tokennya adalah `address` atau dimiliki olehnya, atau yang mint-nya adalah `address`. Untuk SOL native, hanya perubahan jumlah lamport milik `address` yang dihitung. `transaction` menghitung saldo apa pun dari mint dalam transaksi. Untuk SOL native, perubahan jumlah lamport akun mana pun dihitung.

* `address`
* `transaction`

**returnShape** `string` (default: transactions)

Isi respons untuk kecocokan: `transactions` (kecocokan terurai dalam `data`, hingga `limit`), `signatures` (`signature`, `slot`, `transactionIndex`, dan `blockTime` per kecocokan dalam `data`), atau `count` (tanpa `data`; `scan.matchedTransactions` adalah jumlah kecocokan). `signatures` dan `count` mengabaikan `limit` dan `rawTransaction`.

* `transactions`
* `signatures`
* `count`

**limit** `number` (default: 100)

Jumlah maksimum kecocokan yang dikembalikan dengan bentuk `transactions`, dari 1 hingga 100.

**budget** `object`

Batas jumlah riwayat yang dipindai oleh satu permintaan.

**budget.maxScannedTransactions** `number` (default: 10000)

Jumlah maksimum transaksi yang dipindai dalam permintaan ini, dari 1 hingga 10.000.

**beforeSignature** `string`

Pindai transaksi sebelum tanda tangan ini.

**afterSignature** `string`

Pindai transaksi setelah tanda tangan ini.

**paginationToken** `string`

Kursor yang dikembalikan oleh pemindaian sebelumnya. Bentuknya adalah `slot:transactionIndex`.

**sortOrder** `string` (default: desc)

Urutan pemindaian riwayat dan pengembalian kecocokan.

* `asc`
* `desc`

**commitment** `string` (default: confirmed)

Tingkat komitmen yang digunakan untuk mengambil riwayat. `processed` tidak didukung.

* `confirmed`
* `finalized`

**status** `string` (default: succeeded)

Hasil eksekusi yang akan disertakan. Pemfilteran dilakukan sebelum pencocokan, sehingga transaksi yang dikecualikan tidak dihitung terhadap anggaran.

* `succeeded`
* `failed`
* `any`

**tokenAccounts** `string` (default: none)

Menentukan apakah transaksi yang hanya merujuk pada akun token milik `address`, bukan `address` itu sendiri, disertakan: `none` tidak menyertakannya, `balanceChanged` menyertakan transaksi yang mengubah saldo akun token, dan `all` menyertakan semuanya. Gunakan `balanceChanged` saat Anda memindai dompet berdasarkan mint.

* `none`
* `balanceChanged`
* `all`

**minContextSlot** `number`

Slot minimum tempat permintaan dapat dievaluasi.

**rawTransaction** `string` (default: none)

Pengodean transaksi Solana asli yang dikembalikan sebagai `rawTransaction` pada setiap hasil yang berhasil, dalam bentuk `getTransaction`. Hanya berlaku untuk bentuk `transactions`.

* `none`
* `json`
* `jsonParsed`
* `base64`

**slot** `object`

Batas perbandingan slot. Setiap batas bersifat opsional.

**slot.gt** `number`

Cocokkan nilai yang lebih besar dari nilai ini.

**slot.gte** `number`

Cocokkan nilai yang lebih besar dari atau sama dengan nilai ini.

**slot.lt** `number`

Cocokkan nilai yang lebih kecil dari nilai ini.

**slot.lte** `number`

Cocokkan nilai yang lebih kecil dari atau sama dengan nilai ini.

**time** `object`

Batas perbandingan waktu blok dalam detik Unix. Setiap batas bersifat opsional.

**time.gt** `number`

Cocokkan nilai yang lebih besar dari nilai ini.

**time.gte** `number`

Cocokkan nilai yang lebih besar dari atau sama dengan nilai ini.

**time.lt** `number`

Cocokkan nilai yang lebih kecil dari nilai ini.

**time.lte** `number`

Cocokkan nilai yang lebih kecil dari atau sama dengan nilai ini.


## OpenAPI

````yaml id/openapi/parsed-events.yaml POST /v1/parsed-events/scan
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/scan:
    post:
      tags:
        - Peristiwa yang Diuraikan
      summary: Pindai Riwayat Transaksi
      description: >-
        Telusuri riwayat suatu alamat untuk transaksi yang memanggil salah satu
        dari sekumpulan program, menyentuh salah satu dari sekumpulan mint
        token, atau keduanya, lalu kembalikan kecocokan yang telah diuraikan,
        tanda tangannya, atau jumlahnya.
      operationId: scanParsedTransactionHistory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScanRequest'
            examples:
              Pump.fun buys and sells:
                value:
                  address: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                  match:
                    programs:
                      - programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                        instructions:
                          - buy
                          - sell
                  limit: 1
              Rare instruction, budget stop:
                value:
                  address: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                  match:
                    programs:
                      - programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                        instructions:
                          - set_params
                  budget:
                    maxScannedTransactions: 2000
              Count matches:
                value:
                  address: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                  match:
                    programs:
                      - programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                        instructions:
                          - set_params
                  returnShape: count
                  budget:
                    maxScannedTransactions: 2000
              Token transactions with a USDC account:
                value:
                  address: <MINT_ADDRESS>
                  match:
                    mints:
                      - mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                        scope: transaction
                  returnShape: signatures
      responses:
        '200':
          description: >-
            Kecocokan dalam `returnShape` yang diminta dan ringkasan pemindaian.
            Hasil parsial tetap mengembalikan 200; lanjutkan dengan
            `paginationToken` selama token tersebut masih dikembalikan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanPage'
              examples:
                Stopped on limit:
                  value:
                    data:
                      - signature: >-
                          5zmGhmd3JZxXzz8MnA8MM1K7PXRwA1z35n3xT6ZJGRz3sAi25p8jaZuPWFCB4nEPx7DUke9y3pwrd4V7xAFozQBy
                        parserStatus: OK
                        parsed:
                          slot: 460869102
                          blockTime: 1792848886
                          fee: 45000
                          feePayer: Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA
                          transactionStatus: OK
                          error: null
                          decodedError: null
                          nativeTransfers:
                            - fromUserAccount: BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                              toUserAccount: 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              amount: 4207183
                          tokenTransfers:
                            - fromUserAccount: 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              toUserAccount: BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                              fromTokenAccount: 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                              toTokenAccount: 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                              rawTokenAmount: 612181177082
                              decimals: 6
                              tokenStandard: Fungible
                              mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                          summary:
                            type: swap
                            description: >-
                              BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                              menukar 0.004207183 SOL dengan 612181.177082
                              3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                              melalui Pump.fun
                            parsedData:
                              type: swap
                              protocol: pump_fun
                              kind: buy
                              in_amount: '4207183'
                              actual_out_amount: '612181177082'
                              input_mint: So11111111111111111111111111111111111111112
                              output_mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                              inner_swaps: []
                          instructions:
                            - instructionIndex: 0
                              innerInstructionIndex: null
                              stackHeight: 1
                              programId: ComputeBudget111111111111111111111111111111
                              rawAccounts: []
                              rawData: HMypLP
                              summary: null
                              programName: compute_budget
                              instructionName: set_compute_unit_limit
                              decoded:
                                args:
                                  units: '400000'
                                accounts: []
                            - instructionIndex: 1
                              innerInstructionIndex: null
                              stackHeight: 1
                              programId: ComputeBudget111111111111111111111111111111
                              rawAccounts: []
                              rawData: 3gJqkocMWaMm
                              summary: null
                              programName: compute_budget
                              instructionName: set_compute_unit_price
                              decoded:
                                args:
                                  micro_lamports: '100000'
                                accounts: []
                            - instructionIndex: 2
                              innerInstructionIndex: null
                              stackHeight: 1
                              programId: MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e
                              rawAccounts:
                                - Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA
                                - 13ec7XdrjF3h3YcqBTFDSReRcUFwbCnJaAQspM4j6DDJ
                                - CNtxytSi1JNJgmBM444pGXK5eUEy5B2Q3haBHw2fzdoG
                                - 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                - 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                - BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                - '11111111111111111111111111111111'
                                - TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                - 4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                - GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                - 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                - HTGkqssCRhyE6rCBDDKQVqTM5LcFPwH8r7rmoMuvtKCD
                                - Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                                - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                                - Hq2wp8uJ9jCPsYgNHex8RtqdvMPfVGoYwjvF1ATiwn2Y
                                - FGFrX2q1iAjyAojjeyFDxXqdmvegjPpSWsrPmrJjeQ2f
                                - 8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                - pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                                - 8FoNgzmjuSmiy86EPCWxvv1q7oJSu2WGA7wPymwki2LJ
                                - MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e
                                - 6MneqwSEV63Ujx1KZX8ZDs5freLUyo61DoSdEeQCjNjk
                                - 5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD
                              rawData: 23s1EunhJwrvzz8YSBTPv5WDZGm8uym8KQXhF3u
                              summary: null
                              programName: null
                              instructionName: null
                              decoded: null
                            - instructionIndex: 2
                              innerInstructionIndex: 0
                              stackHeight: 2
                              programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                              rawAccounts:
                                - 4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf
                                - GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                - 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                - 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                - 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                - BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                - '11111111111111111111111111111111'
                                - TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                - HTGkqssCRhyE6rCBDDKQVqTM5LcFPwH8r7rmoMuvtKCD
                                - Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                                - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                                - Hq2wp8uJ9jCPsYgNHex8RtqdvMPfVGoYwjvF1ATiwn2Y
                                - FGFrX2q1iAjyAojjeyFDxXqdmvegjPpSWsrPmrJjeQ2f
                                - 8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                - pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                                - 6MneqwSEV63Ujx1KZX8ZDs5freLUyo61DoSdEeQCjNjk
                                - 5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD
                              rawData: i43WeUBGKA8F2B6dwt5RBzavSKrhGu93LB
                              summary:
                                type: swap
                                description: >-
                                  BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                  menukar 0.004207183 SOL dengan 612181.177082
                                  3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  melalui Pump.fun
                                parsedData:
                                  type: swap
                                  protocol: pump_fun
                                  kind: buy
                                  in_amount: '4207183'
                                  actual_out_amount: '612181177082'
                                  input_mint: So11111111111111111111111111111111111111112
                                  output_mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  inner_swaps: []
                              programName: pump
                              instructionName: buy
                              decoded:
                                args:
                                  amount: '612181177082'
                                  max_sol_cost: '4207183'
                                  track_volume:
                                    - false
                                accounts:
                                  - name: global
                                    pubkey: >-
                                      4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf
                                    isSigner: false
                                    isWritable: false
                                  - name: fee_recipient
                                    pubkey: >-
                                      GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                    isSigner: false
                                    isWritable: true
                                  - name: mint
                                    pubkey: >-
                                      3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                    isSigner: false
                                    isWritable: false
                                  - name: bonding_curve
                                    pubkey: >-
                                      2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                    isSigner: false
                                    isWritable: true
                                  - name: associated_bonding_curve
                                    pubkey: >-
                                      7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                    isSigner: false
                                    isWritable: true
                                  - name: associated_user
                                    pubkey: >-
                                      7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                    isSigner: false
                                    isWritable: true
                                  - name: user
                                    pubkey: >-
                                      BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                    isSigner: true
                                    isWritable: true
                                  - name: system_program
                                    pubkey: '11111111111111111111111111111111'
                                    isSigner: false
                                    isWritable: false
                                  - name: token_program
                                    pubkey: >-
                                      TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                    isSigner: false
                                    isWritable: false
                                  - name: creator_vault
                                    pubkey: >-
                                      HTGkqssCRhyE6rCBDDKQVqTM5LcFPwH8r7rmoMuvtKCD
                                    isSigner: false
                                    isWritable: true
                                  - name: event_authority
                                    pubkey: >-
                                      Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                                    isSigner: false
                                    isWritable: false
                                  - name: program
                                    pubkey: >-
                                      6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                                    isSigner: false
                                    isWritable: false
                                  - name: global_volume_accumulator
                                    pubkey: >-
                                      Hq2wp8uJ9jCPsYgNHex8RtqdvMPfVGoYwjvF1ATiwn2Y
                                    isSigner: false
                                    isWritable: false
                                  - name: user_volume_accumulator
                                    pubkey: >-
                                      FGFrX2q1iAjyAojjeyFDxXqdmvegjPpSWsrPmrJjeQ2f
                                    isSigner: false
                                    isWritable: true
                                  - name: fee_config
                                    pubkey: >-
                                      8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                    isSigner: false
                                    isWritable: false
                                  - name: fee_program
                                    pubkey: >-
                                      pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                                    isSigner: false
                                    isWritable: false
                                  - name: remainingAccount1
                                    pubkey: >-
                                      6MneqwSEV63Ujx1KZX8ZDs5freLUyo61DoSdEeQCjNjk
                                    isSigner: false
                                    isWritable: false
                                  - name: remainingAccount2
                                    pubkey: >-
                                      5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD
                                    isSigner: false
                                    isWritable: false
                            - instructionIndex: 2
                              innerInstructionIndex: 1
                              stackHeight: 3
                              programId: pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                              rawAccounts:
                                - 8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                              rawData: >-
                                KX69VKtJ7u4E7dVvicNyuayxqa9Hr4EfndWiJBCjUyq1hDLtgcYW6pEh1tPqbHSkqHTQ8uiASv1QK1
                              summary: null
                              programName: pump_fees
                              instructionName: null
                              decoded: null
                            - instructionIndex: 2
                              innerInstructionIndex: 2
                              stackHeight: 3
                              programId: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                              rawAccounts:
                                - 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                - 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                - 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              rawData: jHqzogtBj1ey3
                              summary:
                                type: transfer
                                description: >-
                                  2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                  mentransfer 612181.177082
                                  3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  dari
                                  2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                  ke
                                  BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                parsedData: null
                              programName: token_2022
                              instructionName: transfer_checked
                              decoded:
                                args:
                                  amount: '612181177082'
                                  decimals: 6
                                accounts:
                                  - name: source_account
                                    pubkey: >-
                                      7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                    isSigner: false
                                    isWritable: true
                                  - name: mint
                                    pubkey: >-
                                      3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                    isSigner: false
                                    isWritable: false
                                  - name: destination_account
                                    pubkey: >-
                                      7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                    isSigner: false
                                    isWritable: true
                                  - name: owner_or_delegate
                                    pubkey: >-
                                      2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                    isSigner: true
                                    isWritable: false
                            - instructionIndex: 2
                              innerInstructionIndex: 3
                              stackHeight: 3
                              programId: '11111111111111111111111111111111'
                              rawAccounts:
                                - BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              rawData: 3Bxs4E6xqUKPTjRy
                              summary:
                                type: transfer
                                description: >-
                                  BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                  mentransfer 0.004207183 SOL ke
                                  2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                parsedData: null
                              programName: system
                              instructionName: transfer
                              decoded:
                                args:
                                  lamports: '4207183'
                                accounts:
                                  - name: funding_account
                                    pubkey: >-
                                      BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                    isSigner: true
                                    isWritable: true
                                  - name: recipient_account
                                    pubkey: >-
                                      2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                    isSigner: false
                                    isWritable: true
                            - instructionIndex: 2
                              innerInstructionIndex: 4
                              stackHeight: 3
                              programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                              rawAccounts:
                                - Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                              rawData: >-
                                8jV3ThAnvn3jwQVVxYoxU8MvQQneX8ryEqnGqWTeKGi8UcTcTFd5VQ8KLpzRZhN2g6qpShcNYKQ6aEiZojgETaWrW1Mn92Drm2irNbjBdHGCTkuK3SBZb4HSn6KPZiJehmZL1aPNtVSRmGh2ojKXZLFtokDPK31XJJJZYBMowkVME4yWDsiA81AKAyJYq3afuYidCUgWsSfzSo8tZZRtCpSaeUd3M5JeyiE9V45vsDuPYsyBxmVFWf3qKWEcQuCDYu5HctwzvAeqU6Hmr1st5Kd62GrbHxua73RLuXpHotAjm3wYD6BkKEtKDpSnq47ewySqeUgF8MrTc121NwjKhedGJfp1VWv4TULoKaNTuA9KRzYVsTNgjYuwSgiXxQF2F1ePSHexBQdTiMbL1STcahdzuLvZoRkEUQX1WE9ayykQ1uiJ1FPFNCitKm6YwpLLLVwDDi8Rf2J5aeHxtLorKV5UWn1CnRukDpSJxAC91mmc6qNcJ6XQW5VxJMdhJcSSmSr1hi4dUt1vW6gspsMxEMUzGtiyBZeo
                              summary: null
                              programName: pump
                              instructionName: TradeEvent
                              decoded:
                                args:
                                  buyback_fee: '0'
                                  buyback_fee_basis_points: '0'
                                  cashback: '0'
                                  cashback_fee_basis_points: '0'
                                  creator: 2G5ZssGjViBdr4DdwYaQ23JQeNG8TRsrnHKs9pabUoCz
                                  creator_fee: '0'
                                  creator_fee_basis_points: '0'
                                  current_sol_volume: '0'
                                  fee: '0'
                                  fee_basis_points: '0'
                                  fee_recipient: GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                  holder_rewards: '0'
                                  holder_rewards_bps: '0'
                                  is_buy: true
                                  ix_name: buy
                                  last_update_timestamp: '0'
                                  mayhem_mode: true
                                  mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  quote_amount: '4207183'
                                  quote_mint: '11111111111111111111111111111111'
                                  real_quote_reserves: '27976582'
                                  real_sol_reserves: '27976582'
                                  real_token_reserves: '793353696151809'
                                  shareholders: []
                                  sol_amount: '4207183'
                                  timestamp: '1792848886'
                                  token_amount: '612181177082'
                                  total_claimed_tokens: '0'
                                  total_unclaimed_tokens: '0'
                                  track_volume: false
                                  user: BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                  virtual_quote_reserves: '8676477109'
                                  virtual_sol_reserves: '8676477109'
                                  virtual_token_reserves: '1073253696151809'
                                accounts: []
                            - instructionIndex: 2
                              innerInstructionIndex: 5
                              stackHeight: 2
                              programId: MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e
                              rawAccounts:
                                - 8FoNgzmjuSmiy86EPCWxvv1q7oJSu2WGA7wPymwki2LJ
                              rawData: >-
                                HaAvdxyruSvtMDoMtGvePmYV4dda7tWKCLFHadQoSjYsbWWixs1eN1wCF27wUxZao1NfTPQGxhVs9GXmaVGUZ5mgBAEUUWKK4se3JtE5oKMHzxp6GRbR7wagdMtwKQEaJbXuMb9c75n3gPnTTFrxTjJrtBCejTAEQpd6mv9HUaxpt2u83Cts4WgXdvWqiHqk7xXkXQwV6M1VXmAfwZYg4CSjzAmooqqAdzbHuf243dbws8uDS4GrteXQiAYow3395wuNqLWzrcHropQTzvaDtpfAupYXEt2AZHPEuUsVhtt5n8xAieU5d4oHSjAvgBczW9cktco7Wto3kEo53QaJfbdEz4V9Jnx6ib2fdvW2EpLXUprJLcP9voTKAuuCZCTbQKSbwJWRG9UCPTssTDR3m9eE38WcqtK1v2jeRtbtK
                              summary: null
                              programName: null
                              instructionName: null
                              decoded: null
                    paginationToken: '460869102:203'
                    scan:
                      stoppedOn: limit
                      scannedTransactions: 1
                      matchedTransactions: 1
                      scannedThrough:
                        slot: 460869102
                        blockTime: 1792848886
                      creditsCharged: 11
                Stopped on budget, no matches:
                  value:
                    data: []
                    paginationToken: '460903064:422'
                    scan:
                      stoppedOn: budget
                      scannedTransactions: 2000
                      matchedTransactions: 0
                      scannedThrough:
                        slot: 460903064
                        blockTime: 1792856105
                      creditsCharged: 12
                Count shape:
                  value:
                    paginationToken: '460903064:422'
                    scan:
                      stoppedOn: budget
                      scannedTransactions: 2000
                      matchedTransactions: 0
                      scannedThrough:
                        slot: 460903064
                        blockTime: 1792856105
                      creditsCharged: 12
        '400':
          description: Permintaan tidak valid. Pesan `error` menyebutkan masalahnya.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: >-
                      match.programs instructions not found in the IDLs of
                      6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P: not_a_real_ix
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          description: >-
            Layanan telah mencapai kapasitas maksimum, atau halaman pertama
            riwayat tidak selesai sebelum tenggat permintaan. Coba lagi
            permintaan tersebut.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: service unavailable
components:
  schemas:
    ScanRequest:
      type: object
      description: >-
        Isi permintaan untuk memindai riwayat suatu alamat guna menemukan
        transaksi yang cocok.
      required:
        - address
        - match
      additionalProperties: false
      properties:
        address:
          type: string
          description: Alamat yang riwayatnya dipindai.
        match:
          $ref: '#/components/schemas/ScanMatch'
        returnShape:
          type: string
          description: >-
            Data yang dibawa respons untuk kecocokan: `transactions` (kecocokan
            yang telah diuraikan dalam `data`, hingga `limit`), `signatures`
            (`signature`, `slot`, `transactionIndex`, dan `blockTime` untuk
            setiap kecocokan dalam `data`), atau `count` (tanpa `data`;
            `scan.matchedTransactions` adalah jumlah kecocokan). `signatures`
            dan `count` mengabaikan `limit` dan `rawTransaction`.
          enum:
            - transactions
            - signatures
            - count
          default: transactions
        limit:
          type: integer
          description: >-
            Jumlah maksimum kecocokan yang dikembalikan dengan bentuk
            `transactions`, dari 1 hingga 100.
          minimum: 1
          maximum: 100
          default: 100
        budget:
          $ref: '#/components/schemas/ScanBudget'
        beforeSignature:
          type: string
          description: Pindai transaksi sebelum tanda tangan ini.
        afterSignature:
          type: string
          description: Pindai transaksi setelah tanda tangan ini.
        paginationToken:
          type: string
          description: >-
            Kursor yang dikembalikan oleh pemindaian sebelumnya. Bentuknya
            adalah `slot:transactionIndex`.
        sortOrder:
          type: string
          description: Urutan pemindaian riwayat dan pengembalian kecocokan.
          enum:
            - asc
            - desc
          default: desc
        commitment:
          type: string
          description: >-
            Tingkat komitmen yang digunakan untuk mengambil riwayat. `processed`
            tidak didukung.
          enum:
            - confirmed
            - finalized
          default: confirmed
        status:
          type: string
          description: >-
            Hasil eksekusi yang akan disertakan. Pemfilteran dilakukan sebelum
            pencocokan sehingga transaksi yang dikecualikan tidak dihitung dalam
            anggaran.
          enum:
            - succeeded
            - failed
            - any
          default: succeeded
        tokenAccounts:
          allOf:
            - $ref: '#/components/schemas/TokenAccountsFilter'
          description: >-
            Menentukan apakah transaksi yang hanya mereferensikan akun token
            milik `address`, bukan `address` itu sendiri, harus disertakan:
            `none` mengecualikannya, `balanceChanged` menyertakan transaksi yang
            mengubah saldo akun token, dan `all` menyertakan semuanya. Gunakan
            `balanceChanged` saat Anda memindai dompet berdasarkan mint.
        minContextSlot:
          type: integer
          description: Slot minimum tempat permintaan dapat dievaluasi.
        rawTransaction:
          allOf:
            - $ref: '#/components/schemas/RawTransactionEncoding'
          description: >-
            Pengodean transaksi Solana asli yang dikembalikan sebagai
            `rawTransaction` pada setiap hasil yang berhasil, dalam bentuk
            `getTransaction`. Hanya berlaku untuk bentuk `transactions`.
        slot:
          allOf:
            - $ref: '#/components/schemas/ComparisonBounds'
          description: Batas perbandingan slot. Setiap batas bersifat opsional.
        time:
          allOf:
            - $ref: '#/components/schemas/ComparisonBounds'
          description: >-
            Batas perbandingan waktu blok dalam detik Unix. Setiap batas
            bersifat opsional.
    ScanPage:
      type: object
      description: Kecocokan dalam `returnShape` yang diminta dan ringkasan pemindaian.
      properties:
        data:
          description: >-
            Kecocokan dalam `sortOrder`. Dengan `transactions`, setiap item
            memiliki bentuk `TransactionResult` yang sama seperti yang
            dikembalikan oleh `/v1/parsed-events/transactions`; dengan
            `signatures`, setiap item adalah `ScanSignature`. Tidak ada dengan
            `count`. Dapat kosong jika `paginationToken` tersedia.
          oneOf:
            - type: array
              title: Transaksi
              items:
                $ref: '#/components/schemas/TransactionResult'
            - type: array
              title: Tanda Tangan
              items:
                $ref: '#/components/schemas/ScanSignature'
        paginationToken:
          type: string
          description: >-
            Kursor tempat pemindaian berikutnya dilanjutkan. Tidak ada jika
            pemindaian telah mencapai akhir riwayat atau jendela.
        scan:
          $ref: '#/components/schemas/ScanSummary'
    ErrorResponse:
      type: object
      description: Respons kesalahan tingkat permintaan.
      properties:
        error:
          type: string
          description: Pesan kesalahan.
    ScanMatch:
      type: object
      description: >-
        Kriteria yang harus dicocokkan oleh transaksi. Tetapkan `programs`,
        `mints`, atau keduanya. Jika keduanya ditetapkan, transaksi harus cocok
        dengan keduanya.
      additionalProperties: false
      properties:
        programs:
          type: array
          description: >-
            Program yang akan dicocokkan, maksimal 20, masing-masing hanya
            sekali. Transaksi cocok jika memiliki instruksi dari salah satu
            program tersebut, baik tingkat teratas maupun internal (CPI), dalam
            `scope` program.
          maxItems: 20
          items:
            $ref: '#/components/schemas/ScanProgramMatch'
        mints:
          type: array
          description: >-
            Mint yang akan dicocokkan, maksimal 20, masing-masing hanya sekali.
            Transaksi cocok jika salah satu saldo token sebelum atau sesudah
            transaksi berasal dari salah satu mint tersebut, dalam `scope` mint.
          maxItems: 20
          items:
            $ref: '#/components/schemas/ScanMintMatch'
    ScanBudget:
      type: object
      description: Batas jumlah riwayat yang dipindai oleh satu permintaan.
      additionalProperties: false
      properties:
        maxScannedTransactions:
          type: integer
          description: >-
            Jumlah maksimum transaksi yang dipindai dalam permintaan ini, dari 1
            hingga 10.000.
          minimum: 1
          maximum: 10000
          default: 10000
    TokenAccountsFilter:
      type: string
      description: >-
        Menentukan apakah transaksi yang hanya mereferensikan akun token milik
        `address`, bukan `address` itu sendiri, harus disertakan: `none`
        mengecualikannya, `balanceChanged` menyertakan transaksi yang mengubah
        saldo akun token, dan `all` menyertakan semuanya.
      enum:
        - none
        - balanceChanged
        - all
      default: none
    RawTransactionEncoding:
      type: string
      description: >-
        Pengodean transaksi Solana asli yang dikembalikan sebagai
        `rawTransaction` pada setiap hasil yang berhasil, dalam bentuk
        `getTransaction`. `none` tidak mengembalikan transaksi mentah.
      enum:
        - none
        - json
        - jsonParsed
        - base64
      default: none
    ComparisonBounds:
      type: object
      description: Batas perbandingan numerik. Setiap bidang bersifat opsional.
      additionalProperties: false
      properties:
        gt:
          type: integer
          description: Cocokkan nilai yang lebih besar dari nilai ini.
        gte:
          type: integer
          description: Cocokkan nilai yang lebih besar dari atau sama dengan nilai ini.
        lt:
          type: integer
          description: Cocokkan nilai yang lebih kecil dari nilai ini.
        lte:
          type: integer
          description: Cocokkan nilai yang lebih kecil dari atau sama dengan nilai ini.
    TransactionResult:
      type: object
      description: Hasil pengurai untuk setiap tanda tangan.
      properties:
        signature:
          type: string
          description: Tanda tangan transaksi untuk item ini.
        parserStatus:
          type: string
          description: >-
            `OK` jika penguraian berhasil, atau `ERROR` jika item gagal diambil
            atau diurai.
          enum:
            - OK
            - ERROR
        parsed:
          allOf:
            - $ref: '#/components/schemas/ParsedTransaction'
          description: >-
            Objek transaksi yang diurai. Tersedia jika `parserStatus` bernilai
            `OK`.
        parserError:
          allOf:
            - $ref: '#/components/schemas/ParserError'
          description: >-
            Kesalahan tingkat item. Tersedia jika `parserStatus` bernilai
            `ERROR`.
        rawTransaction:
          type: object
          description: >-
            Transaksi Solana asli dalam bentuk `getTransaction` untuk pengodean
            `rawTransaction` yang diminta. Dengan `base64`, `transaction` adalah
            `[data, "base64"]`. Hanya tersedia jika transaksi mentah diminta.
          additionalProperties: true
    ScanSignature:
      type: object
      description: >-
        Kecocokan yang dikembalikan dengan `returnShape` ditetapkan ke
        `signatures`.
      properties:
        signature:
          type: string
          description: Tanda tangan transaksi.
        slot:
          type: integer
          description: Slot yang berisi transaksi.
        transactionIndex:
          type: integer
          description: Posisi transaksi dalam slot-nya.
        blockTime:
          type: integer
          nullable: true
          description: Waktu blok dalam detik Unix, jika tersedia.
    ScanSummary:
      type: object
      description: Seberapa jauh pemindaian berlangsung dan alasan pemindaian berhenti.
      properties:
        stoppedOn:
          type: string
          description: >-
            Alasan pemindaian berhenti: `windowEnd` (akhir riwayat atau
            jendela), `limit` (mengembalikan sejumlah `limit` kecocokan),
            `budget` (memindai sejumlah `maxScannedTransactions`), atau
            `deadline` (mencapai batas waktu permintaan).
          enum:
            - windowEnd
            - limit
            - budget
            - deadline
        scannedTransactions:
          type: integer
          description: Transaksi yang dipindai dalam permintaan ini.
        matchedTransactions:
          type: integer
          description: >-
            Kecocokan yang ditemukan dalam permintaan ini. Jika `returnShape`
            ditetapkan ke `count`, nilai ini adalah hasilnya.
        scannedThrough:
          allOf:
            - $ref: '#/components/schemas/ScannedThrough'
          description: >-
            Transaksi terakhir yang dipindai. Tidak ada jika tidak ada yang
            dipindai.
        creditsCharged:
          type: integer
          description: >-
            Kredit yang dikenakan: 10 per permintaan ditambah 1 per halaman
            riwayat yang dipindai (masing-masing hingga 1.000 transaksi).
    ScanProgramMatch:
      type: object
      description: >-
        Mencocokkan transaksi dengan instruksi `programId`, baik tingkat teratas
        maupun internal (CPI). Tetapkan `instructions`, `discriminators`, atau
        keduanya untuk mempersempit kecocokan, atau jangan tetapkan keduanya
        untuk mencocokkan instruksi apa pun dari program tersebut.
      required:
        - programId
      additionalProperties: false
      properties:
        programId:
          type: string
          description: Alamat program.
        instructions:
          type: array
          description: >-
            Nama instruksi dari versi IDL mana pun milik program, sesuai ejaan
            dalam IDL atau dalam snake_case. Maksimal 50. Dapat digabungkan
            dengan `discriminators`.
          maxItems: 50
          items:
            type: string
        discriminators:
          type: array
          description: >-
            Awalan data instruksi, masing-masing 1 hingga 8 byte berkode
            heksadesimal dengan awalan `0x` opsional. Maksimal 50. Dapat
            digabungkan dengan `instructions`.
          maxItems: 50
          items:
            type: string
        scope:
          allOf:
            - $ref: '#/components/schemas/MatchScope'
          description: >-
            Instruksi program yang dihitung. `address` hanya menghitung
            instruksi dengan akun yang merupakan `address`, akun token yang
            dimiliki `address`, atau akun token yang mint-nya adalah `address`;
            atau setiap instruksi jika `address` adalah program tersebut.
            `transaction` menghitung setiap instruksi program dalam transaksi.
    ScanMintMatch:
      type: object
      description: >-
        Mencocokkan transaksi yang memiliki saldo token sebelum atau sesudah
        transaksi untuk `mint`, dalam `scope`. Mint SOL asli
        `So11111111111111111111111111111111111111111` mencocokkan perubahan
        lamport sebagai gantinya, tanpa menghitung biaya yang dibebankan kepada
        pembayar biaya.
      required:
        - mint
      additionalProperties: false
      properties:
        mint:
          type: string
          description: >-
            Alamat mint token. Mint SOL asli
            `So11111111111111111111111111111111111111111` mencocokkan perubahan
            lamport, bukan saldo token, tanpa menghitung biaya.
        scope:
          allOf:
            - $ref: '#/components/schemas/MatchScope'
          description: >-
            Saldo token mint yang dihitung. `address` hanya menghitung saldo
            yang akun tokennya adalah `address` atau dimiliki olehnya, atau
            mint-nya adalah `address`. Untuk SOL asli, hanya perubahan pada
            lamport milik `address` yang dihitung. `transaction` menghitung
            setiap saldo mint dalam transaksi. Untuk SOL asli, perubahan pada
            lamport akun mana pun dihitung.
    ParsedTransaction:
      type: object
      description: Model transaksi parser-v2.
      properties:
        slot:
          type: integer
          description: Slot yang berisi transaksi.
        blockTime:
          type: integer
          description: Stempel waktu Unix untuk blok, jika tersedia.
          nullable: true
        fee:
          type: integer
          description: Biaya transaksi dalam lamport.
        feePayer:
          type: string
          description: Akun pembayar biaya, jika tersedia.
          nullable: true
        transactionStatus:
          type: string
          description: >-
            `OK` jika transaksi berhasil dieksekusi, atau `ERROR` jika eksekusi
            gagal.
          enum:
            - OK
            - ERROR
        nativeTransfers:
          type: array
          description: Transfer SOL tingkat transaksi dalam lamport.
          items:
            $ref: '#/components/schemas/NativeTransfer'
        tokenTransfers:
          type: array
          description: Transfer SPL Token dan Token-2022 tingkat transaksi.
          items:
            $ref: '#/components/schemas/TokenTransfer'
        summary:
          allOf:
            - $ref: '#/components/schemas/ParsedSummary'
          description: Ringkasan tingkat transaksi terbaik, jika tersedia.
          nullable: true
        instructions:
          type: array
          description: >-
            Instruksi tingkat atas dan instruksi internal yang telah diurai
            sesuai urutan eksekusi.
          items:
            $ref: '#/components/schemas/ParsedInstruction'
    ParserError:
      type: object
      description: Kesalahan pengurai tingkat item.
      properties:
        code:
          type: string
          description: Kode kesalahan pengurai yang dapat dibaca mesin.
        message:
          type: string
          description: Pesan kesalahan pengurai yang dapat dibaca manusia.
    ScannedThrough:
      type: object
      description: Posisi transaksi terakhir yang dipindai.
      properties:
        slot:
          type: integer
          description: Slot transaksi terakhir yang dipindai.
        blockTime:
          type: integer
          nullable: true
          description: Waktu blok transaksi terakhir yang dipindai, dalam detik Unix.
    MatchScope:
      type: string
      description: Lokasi instruksi program atau saldo token mint agar dapat dihitung.
      enum:
        - address
        - transaction
      default: address
    NativeTransfer:
      type: object
      description: Perpindahan SOL yang terdeteksi pada tingkat transaksi.
      properties:
        fromUserAccount:
          type: string
          description: Akun yang mengirim lamport.
          nullable: true
        toUserAccount:
          type: string
          description: Akun yang menerima lamport.
          nullable: true
        amount:
          type: integer
          description: Jumlah dalam lamport.
    TokenTransfer:
      type: object
      description: >-
        Perpindahan SPL Token atau Token-2022 yang terdeteksi pada tingkat
        transaksi.
      properties:
        fromUserAccount:
          type: string
          description: Pemilik atau otoritas di sisi sumber, jika diketahui.
          nullable: true
        toUserAccount:
          type: string
          description: Pemilik di sisi tujuan, jika diketahui.
          nullable: true
        fromTokenAccount:
          type: string
          description: Akun token sumber.
          nullable: true
        toTokenAccount:
          type: string
          description: Akun token tujuan.
          nullable: true
        rawTokenAmount:
          type: integer
          description: Jumlah token bilangan bulat mentah.
        decimals:
          type: integer
          description: Jumlah desimal mint yang digunakan untuk menafsirkan jumlah mentah.
        tokenStandard:
          type: string
          description: >-
            Standar token jika diketahui, seperti `Fungible` atau
            `UnknownStandard`.
        mint:
          type: string
          description: Alamat mint token.
    ParsedSummary:
      type: object
      description: Ringkasan yang dapat dibaca manusia untuk transaksi atau instruksi.
      properties:
        type:
          type: string
          description: Jenis ringkasan, seperti `swap`, `transfer`, atau `create_account`.
        description:
          type: string
          description: Teks ringkasan yang dapat dibaca manusia.
        parsedData:
          type: object
          description: >-
            Payload terstruktur yang mendasari ringkasan, jika tersedia —
            misalnya metadata pertukaran dengan `protocol`, `kind`, jumlah, dan
            mint. Bentuknya berbeda menurut jenis ringkasan dan protokol.
          nullable: true
          additionalProperties: true
    ParsedInstruction:
      type: object
      description: Instruksi tingkat atas atau instruksi internal yang diurai.
      properties:
        instructionIndex:
          type: integer
          description: Indeks instruksi tingkat atas.
        innerInstructionIndex:
          type: integer
          description: >-
            Indeks instruksi internal dalam instruksi tingkat atas, jika
            berlaku.
          nullable: true
        stackHeight:
          type: integer
          description: Tinggi tumpukan, jika tersedia.
          nullable: true
        programId:
          type: string
          description: ID program yang mengeksekusi instruksi.
        rawAccounts:
          type: array
          description: >-
            Kunci publik akun mentah yang diselesaikan dari indeks akun
            instruksi.
          items:
            type: string
        rawData:
          type: string
          description: Data instruksi mentah.
        summary:
          allOf:
            - $ref: '#/components/schemas/ParsedSummary'
          description: Ringkasan tingkat instruksi, jika tersedia.
          nullable: true
        programName:
          type: string
          description: Nama program yang diketahui pengurai, jika tersedia.
          nullable: true
        instructionName:
          type: string
          description: Nama instruksi yang didekode, jika tersedia.
          nullable: true
        decoded:
          allOf:
            - $ref: '#/components/schemas/DecodedInstruction'
          description: Argumen dan akun yang didekode, jika pendekodean berhasil.
          nullable: true
    DecodedInstruction:
      type: object
      description: Argumen instruksi dan akun bernama yang didekode.
      properties:
        args:
          type: object
          description: >-
            Argumen instruksi yang didekode. Nama dan bentuk argumen bergantung
            pada instruksi.
          additionalProperties: true
        accounts:
          type: array
          description: Akun instruksi yang didekode dengan nama yang diketahui pengurai.
          items:
            $ref: '#/components/schemas/DecodedAccount'
    DecodedAccount:
      type: object
      description: Akun bernama yang digunakan oleh instruksi yang didekode.
      properties:
        name:
          type: string
          description: Nama akun yang diketahui pengurai.
        pubkey:
          type: string
          description: Kunci publik akun.
        isSigner:
          type: boolean
          description: Menunjukkan apakah akun menandatangani transaksi.
        isWritable:
          type: boolean
          description: Menunjukkan apakah akun dapat ditulis untuk instruksi tersebut.
  responses:
    InternalError:
      description: >-
        Permintaan gagal di server, misalnya karena transaksi tersimpan dalam
        rentang yang diminta tidak dapat didekodekan. Seluruh permintaan gagal;
        tidak ada hasil parsial yang dikembalikan.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            default:
              value:
                error: internal server error
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key

````

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