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

# getTokenAccountsByOwnerV2

> getTokenAccountsByOwnerV2 adalah versi getTokenAccountsByOwner yang disempurnakan dengan paginasi berbasis kursor dan pembaruan changedSinceSlot untuk portofolio token Solana berskala besar.

## Ikhtisar

`getTokenAccountsByOwnerV2` adalah versi yang disempurnakan dari metode standar `getTokenAccountsByOwner`, yang dirancang khusus untuk membuat kueri portofolio token secara efisien dan menangani dompet dengan kepemilikan token yang sangat banyak. Metode ini memperkenalkan paginasi berbasis kursor dan kemampuan pembaruan inkremental.

<Info>
  **Fitur Baru di V2:**

  * **Paginasi berbasis kursor**: Konfigurasikan batas dari 1 hingga 10.000 akun token per permintaan
  * **Pembaruan inkremental**: Gunakan `changedSinceSlot` untuk mengambil hanya akun token yang baru saja diubah
  * **Skalabilitas portofolio**: Tangani dompet dengan ribuan akun token secara efisien
  * **Kompatibilitas mundur**: Mendukung semua parameter dan filter `getTokenAccountsByOwner` yang ada
  * **`withContext` opsional**: `true` menambahkan `slot` dan `apiVersion` di bawah `result.context`; hilangkan atau gunakan `false` agar keduanya tidak disertakan
</Info>

<Warning>
  **Persyaratan Filter**: Anda harus menyediakan `mint` (token tertentu) atau `programId` (program SPL Token atau Token-2022) dalam kueri. Kueri untuk semua jenis token milik suatu pemilik tanpa filter tidak didukung.
</Warning>

## Manfaat Utama

<CardGroup cols={2}>
  <Card title="Large Portfolios" icon="wallet">
    Tangani dompet dengan ribuan akun token tanpa masalah waktu habis atau memori
  </Card>

  <Card title="Real-time Tracking" icon="chart-line">
    Pantau perubahan portofolio secara real-time menggunakan `changedSinceSlot` untuk pembaruan inkremental
  </Card>
</CardGroup>

## `withContext` (opsional)

Boolean pada objek konfigurasi (`params[2]`). Hanya struktur `result` yang berubah, bukan filter, batas, atau paginasi. Jika dihilangkan atau bernilai `false`: `result.value` adalah **array** akun token. Jika bernilai `true`: `result.context` ditambah `result.value` sebagai **objek** (`accounts`, `paginationKey`). Jika Anda menangani keduanya, buat percabangan berdasarkan `Array.isArray(result.value)`.

```json theme={"system"}
// Omitted or false
{ "jsonrpc": "2.0", "id": "1", "result": { "value": [], "paginationKey": null } }

// true
{ "jsonrpc": "2.0", "id": "1", "result": {
  "context": { "slot": 411895550, "apiVersion": "3.1.9" },
  "value": { "accounts": [], "paginationKey": null }
}}
```

## Praktik Terbaik Paginasi

<Warning>
  **Perilaku Paginasi Penting**: Akhir paginasi hanya ditandai ketika **tidak ada akun token yang dikembalikan**. API dapat mengembalikan lebih sedikit akun daripada batas Anda karena pemfilteran—selalu lanjutkan paginasi hingga `paginationKey` bernilai `null`.
</Warning>

### Kueri Portofolio Dasar

```typescript theme={"system"}
// Get all SPL Token accounts for a wallet
let allTokenAccounts = [];
let paginationKey = null;

do {
  const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=${API_KEY}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: '1',
      method: 'getTokenAccountsByOwnerV2',
      params: [
        "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", // wallet address
        { "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" },
        {
          encoding: 'jsonParsed',
          limit: 1000,
          ...(paginationKey && { paginationKey })
        }
      ]
    })
  });
  
  const data = await response.json();
  allTokenAccounts.push(...data.result.value);
  paginationKey = data.result.paginationKey;
} while (paginationKey);

console.log(`Total token accounts: ${allTokenAccounts.length}`);
```

### Pembaruan Portofolio Inkremental

```typescript theme={"system"}
// Get only token accounts modified since a specific slot
const portfolioUpdates = await fetch(`https://mainnet.helius-rpc.com/?api-key=${API_KEY}`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: '1',
    method: 'getTokenAccountsByOwnerV2',
    params: [
      walletAddress,
      { "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" },
      {
        encoding: 'jsonParsed',
        limit: 1000,
        changedSinceSlot: lastUpdateSlot // Only get recent changes
      }
    ]
  })
});
```

## Dukungan Program Token

<Tip>
  **Dukungan Token-2022**: Gunakan `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` sebagai `programId` untuk membuat kueri akun Token-2022 dengan ekstensi seperti biaya transfer, token berbunga, dan lainnya.
</Tip>

```typescript theme={"system"}
// Query Token-2022 accounts (supports token extensions)
const token2022Response = await fetch(`https://mainnet.helius-rpc.com/?api-key=${API_KEY}`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: '1',
    method: 'getTokenAccountsByOwnerV2',
    params: [
      walletAddress,
      { "programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, // Token-2022
      { encoding: 'jsonParsed', limit: 1000 }
    ]
  })
});
```

## Migrasi dari getTokenAccountsByOwner

Migrasinya sederhana—cukup tambahkan parameter paginasi ke kueri Anda yang sudah ada:

```diff theme={"system"}
{
  "jsonrpc": "2.0",
  "id": "1",
- "method": "getTokenAccountsByOwner",
+ "method": "getTokenAccountsByOwnerV2",
  "params": [
    "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
    { "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" },
    {
      "encoding": "jsonParsed",
+     "limit": 1000
    }
  ]
}
```

## Metode Terkait

<CardGroup cols={2}>
  <Card title="getTokenAccountsByOwner" icon="wallet" href="/docs/id/api-reference/rpc/http/gettokenaccountsbyowner">
    Metode asli tanpa paginasi
  </Card>

  <Card title="getProgramAccountsV2" icon="code" href="/docs/id/api-reference/rpc/http/getprogramaccountsv2">
    Metode V2 untuk kueri akun program
  </Card>
</CardGroup>

## Parameter Permintaan

<ParamField body="address" type="string" required>
  Alamat dompet Solana (pubkey) milik pemilik akun yang kepemilikan tokennya akan dibuat kueri, sebagai string yang dikodekan dengan base-58.
</ParamField>

<ParamField body="mint" type="string">
  Alamat mint token Solana tertentu untuk mengambil hanya akun bagi token atau NFT tertentu.
</ParamField>

<ParamField body="programId" type="string">
  ID program token Solana tertentu (biasanya program SPL Token) yang membuat akun token.
</ParamField>

<ParamField body="commitment" type="string">
  Tingkat komitmen untuk permintaan.

  * `confirmed`
  * `finalized`
  * `processed`
</ParamField>

<ParamField body="minContextSlot" type="number">
  Slot minimum tempat permintaan dapat dievaluasi.
</ParamField>

<ParamField body="withContext" type="boolean">
  Jika bernilai `true`, mengembalikan `result.context` (metadata snapshot: `slot`, `apiVersion`) dan menempatkan
  `accounts` serta `paginationKey` di bawah `result.value` sebagai objek. Jika bernilai `false`
  atau dihilangkan, `result.value` adalah array akun token untuk halaman ini, dengan `paginationKey`
  pada `result`. Filter dan batas yang sama berlaku.
</ParamField>

<ParamField body="dataSlice" type="object">
  Minta sebagian data akun.
</ParamField>

<ParamField body="dataSlice.length" type="number">
  Jumlah byte yang akan dikembalikan.
</ParamField>

<ParamField body="dataSlice.offset" type="number">
  Offset byte tempat pembacaan dimulai.
</ParamField>

<ParamField body="encoding" type="string">
  Format pengodean untuk data Akun.

  * `base58`
  * `base64`
  * `base64+zstd`
  * `jsonParsed`
</ParamField>

<ParamField body="limit" type="number">
  Jumlah maksimum akun token yang akan dikembalikan per permintaan (1–10.000).
</ParamField>

<ParamField body="paginationKey" type="string">
  Kursor paginasi yang dikodekan dengan base-58 untuk mengambil halaman berikutnya. Gunakan paginationKey dari respons sebelumnya.
</ParamField>

<ParamField body="changedSinceSlot" type="number">
  Hanya kembalikan akun token yang diubah pada atau setelah nomor slot ini. Berguna untuk pembaruan portofolio inkremental.
</ParamField>


## OpenAPI

````yaml id/openapi/rpc-http/getTokenAccountsByOwnerV2.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    API penemuan akun token Solana yang ditingkatkan dengan fitur tambahan,
    termasuk paginasi berbasis kursor dan dukungan changedSinceSlot untuk
    mengambil saldo token SPL, NFT, dan kepemilikan token lain yang terkait
    dengan alamat dompet mana pun secara efisien. Mendukung pembaruan
    inkremental melalui pemfilteran berbasis slot.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Endpoint RPC Mainnet
  - url: https://devnet.helius-rpc.com
    description: Endpoint RPC Devnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: getTokenAccountsByOwnerV2
      description: >
        Versi getTokenAccountsByOwner yang ditingkatkan dengan fitur tambahan,
        termasuk paginasi berbasis kursor 

        dan dukungan changedSinceSlot untuk mengambil kumpulan besar akun token
        SPL milik alamat dompet 

        tertentu secara efisien. Memungkinkan kueri portofolio yang dapat
        diskalakan dengan ukuran halaman yang dapat dikonfigurasi hingga 10.000 

        akun per permintaan. Parameter changedSinceSlot memungkinkan pengambilan
        hanya akun token yang diubah 

        sejak slot blockchain tertentu, ideal untuk pelacakan portofolio secara
        real-time dan sinkronisasi 

        saldo dompet. Sangat penting untuk dompet, pelacak portofolio, aplikasi
        DeFi, dan layanan apa pun 

        yang memerlukan data kepemilikan token lengkap untuk pengguna dengan
        portofolio token yang luas.


        Catatan: Akhir paginasi hanya ditunjukkan ketika tidak ada akun token
        yang dikembalikan. API dapat mengembalikan lebih sedikit 

        akun daripada batas akibat pemfilteran—lanjutkan paginasi hingga
        paginationKey bernilai null.


        **withContext**: Boolean opsional pada objek konfigurasi (bersama
        encoding, limit, dan sebagainya). Saat 

        `withContext` bernilai `true`, RPC mengembalikan struktur terbungkus
        standar Solana: `result.context` (metadata 

        snapshot, termasuk `slot` dan biasanya `apiVersion`) serta
        `result.value` sebagai objek yang berisi `accounts`, 

        dan `paginationKey`. Saat `withContext` bernilai `false` atau tidak
        dicantumkan, daftar akun adalah

        `result.value` sebagai array (sama seperti `getTokenAccountsByOwner`
        klasik), dengan `paginationKey`

        pada `result`. Filter, batas, dan perilaku paginasi tidak berubah; hanya
        struktur JSON

        `result` yang berbeda.
      operationId: getTokenAccountsByOwnerV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: Versi protokol JSON-RPC.
                  example: '2.0'
                  default: '2.0'
                id:
                  type: string
                  description: Pengidentifikasi unik untuk permintaan.
                  example: '1'
                  default: '1'
                method:
                  type: string
                  enum:
                    - getTokenAccountsByOwnerV2
                  description: Nama metode RPC yang akan dipanggil.
                  example: getTokenAccountsByOwnerV2
                  default: getTokenAccountsByOwnerV2
                params:
                  type: array
                  description: >-
                    Parameter untuk mengueri akun token berpaginasi yang
                    dimiliki oleh kunci publik tertentu.
                  default:
                    - A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd
                    - programId: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                    - encoding: jsonParsed
                      limit: 1000
                  items:
                    oneOf:
                      - type: string
                        description: >-
                          Alamat dompet Solana (pubkey) milik pemilik akun yang
                          kepemilikan tokennya akan dikueri, sebagai string yang
                          dikodekan dalam base-58.
                        example: A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd
                      - type: object
                        description: >-
                          Konfigurasi filter untuk mempersempit akun token
                          berdasarkan alamat mint atau ID program.
                        properties:
                          mint:
                            type: string
                            description: >-
                              Alamat mint token Solana tertentu untuk hanya
                              mengambil akun milik token atau NFT tertentu.
                            example: 2cHr7QS3xfuSV8wdxo3ztuF4xbiarF6Nrgx3qpx3HzXR
                          programId:
                            type: string
                            description: >-
                              ID program token Solana tertentu (biasanya program
                              SPL Token) yang membuat akun token.
                            example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                      - type: object
                        description: >-
                          Objek konfigurasi yang ditingkatkan dengan dukungan
                          paginasi dan bidang opsional.
                        properties:
                          commitment:
                            type: string
                            description: Tingkat komitmen untuk permintaan.
                            enum:
                              - confirmed
                              - finalized
                              - processed
                            example: finalized
                          minContextSlot:
                            type: integer
                            description: Slot minimum tempat permintaan dapat dievaluasi.
                            example: 1000
                          withContext:
                            type: boolean
                            description: >
                              Saat bernilai `true`, mengembalikan
                              `result.context` (metadata snapshot: `slot`,
                              `apiVersion`) dan menyarangkan

                              `accounts` serta `paginationKey` di bawah
                              `result.value` sebagai objek. Saat bernilai
                              `false`

                              atau tidak dicantumkan, `result.value` adalah
                              array akun token untuk halaman ini, dengan
                              `paginationKey`

                              pada `result`. Filter dan batas yang sama tetap
                              berlaku.
                            example: true
                          dataSlice:
                            type: object
                            description: Meminta sebagian data akun.
                            properties:
                              length:
                                type: integer
                                description: Jumlah byte yang akan dikembalikan.
                                example: 10
                              offset:
                                type: integer
                                description: Offset byte untuk mulai membaca.
                                example: 0
                          encoding:
                            type: string
                            description: Format pengodean untuk data Akun.
                            enum:
                              - base58
                              - base64
                              - base64+zstd
                              - jsonParsed
                            example: jsonParsed
                          limit:
                            type: integer
                            description: >-
                              Jumlah maksimum akun token yang akan dikembalikan
                              per permintaan (1-10.000).
                            minimum: 1
                            maximum: 10000
                            example: 1000
                          paginationKey:
                            type: string
                            description: >-
                              Kursor paginasi yang dikodekan dalam base-58 untuk
                              mengambil halaman berikutnya. Gunakan
                              paginationKey dari respons sebelumnya.
                            example: 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
                          changedSinceSlot:
                            type: integer
                            description: >-
                              Hanya mengembalikan akun token yang diubah pada
                              atau setelah nomor slot ini. Berguna untuk
                              pembaruan portofolio inkremental.
                            example: 12345678
      responses:
        '200':
          description: Berhasil mengambil akun token berpaginasi berdasarkan pemilik.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: Versi protokol JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Pengidentifikasi yang cocok dengan permintaan.
                    example: '1'
                  result:
                    oneOf:
                      - $ref: >-
                          #/components/schemas/TokenAccountsByOwnerV2ResultDirect
                        title: tanpa withContext
                      - type: object
                        title: dengan withContext
                        description: >-
                          Hasil terbungkus saat `withContext` bernilai `true`
                          dalam opsi permintaan.
                        required:
                          - context
                          - value
                        properties:
                          context:
                            type: object
                            description: >-
                              Metadata snapshot untuk respons node (konsistensi
                              slot, debugging).
                            properties:
                              slot:
                                type: integer
                                description: Slot tempat node membuat respons ini.
                                example: 341197933
                              apiVersion:
                                type: string
                                description: Versi RPC API jika tersedia.
                                example: 2.0.15
                          value:
                            $ref: '#/components/schemas/TokenAccountsByOwnerV2Page'
              example:
                jsonrpc: '2.0'
                id: '1'
                result:
                  value:
                    - pubkey: BGocb4GEpbTFm8UFV2VsDSaBXHELPfAXrvd4vtt8QWrA
                      account:
                        lamports: 2039280
                        owner: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                        data:
                          program: spl-token
                          parsed:
                            info:
                              isNative: false
                              mint: 2cHr7QS3xfuSV8wdxo3ztuF4xbiarF6Nrgx3qpx3HzXR
                              owner: A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd
                              state: initialized
                              tokenAmount:
                                amount: '420000000000000'
                                decimals: 6
                                uiAmount: 420000000
                                uiAmountString: '420000000'
                          space: 165
                        executable: false
                        rentEpoch: 18446744073709552000
                        space: 165
                  paginationKey: 8WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
        '400':
          description: >-
            Permintaan Buruk - Parameter permintaan tidak valid atau format
            permintaan salah.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Invalid params
                id: '1'
        '401':
          description: Tidak Diotorisasi - Kunci API tidak valid atau tidak tersedia.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Unauthorized
                id: '1'
        '429':
          description: Terlalu Banyak Permintaan - Batas laju terlampaui.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Too many requests
                id: '1'
        '500':
          description: Kesalahan Server Internal - Terjadi kesalahan pada server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Internal error
                id: '1'
        '503':
          description: Layanan Tidak Tersedia - Layanan untuk sementara tidak tersedia.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Service unavailable
                id: '1'
        '504':
          description: Batas Waktu Gateway - Waktu permintaan habis.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32003
                  message: Gateway timeout
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    TokenAccountsByOwnerV2ResultDirect:
      type: object
      description: >-
        Akun token berpaginasi saat `withContext` bernilai false atau tidak
        dicantumkan. Sesuai dengan struktur umum tempat daftar akun berupa array
        di `result.value` (tidak disarangkan di bawah `accounts`).
      properties:
        value:
          type: array
          description: Akun token untuk halaman saat ini.
          items:
            $ref: '#/components/schemas/TokenAccountByOwnerV2Entry'
        paginationKey:
          type: string
          description: >-
            Kursor paginasi untuk halaman berikutnya. Bernilai null hanya jika
            tidak ada akun token yang dikembalikan (akhir paginasi). Perhatikan
            bahwa jumlah akun yang dikembalikan dapat lebih sedikit daripada
            batas akibat pemfilteran, tetapi hal ini tidak menunjukkan akhir
            paginasi.
          example: 8WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
          nullable: true
    TokenAccountsByOwnerV2Page:
      type: object
      description: >-
        Akun token berpaginasi saat `withContext` bernilai true. Berisi
        `accounts` dan `paginationKey` di bawah `result.value` bersama
        `result.context`.
      properties:
        accounts:
          type: array
          description: Akun token untuk halaman saat ini.
          items:
            $ref: '#/components/schemas/TokenAccountByOwnerV2Entry'
        paginationKey:
          type: string
          description: >-
            Kursor paginasi untuk halaman berikutnya. Bernilai null hanya jika
            tidak ada akun token yang dikembalikan (akhir paginasi). Perhatikan
            bahwa jumlah akun yang dikembalikan dapat lebih sedikit daripada
            batas akibat pemfilteran, tetapi hal ini tidak menunjukkan akhir
            paginasi.
          example: 8WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
          nullable: true
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: Versi protokol JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Kode kesalahan.
              example: -32602
            message:
              type: string
              description: Pesan kesalahan.
            data:
              type: object
              description: Data tambahan tentang kesalahan.
        id:
          type: string
          description: Pengidentifikasi yang cocok dengan permintaan.
          example: '1'
    TokenAccountByOwnerV2Entry:
      type: object
      properties:
        pubkey:
          type: string
          description: Pubkey akun sebagai string yang dikodekan dalam base-58.
          example: BGocb4GEpbTFm8UFV2VsDSaBXHELPfAXrvd4vtt8QWrA
        account:
          type: object
          description: Detail akun token.
          properties:
            lamports:
              type: integer
              description: Jumlah lamport yang dialokasikan ke akun.
              example: 2039280
            owner:
              type: string
              description: Pubkey program yang menerima penetapan akun ini.
              example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
            data:
              type: object
              description: Data status token yang terkait dengan akun.
              properties:
                program:
                  type: string
                  description: Nama program.
                  example: spl-token
                parsed:
                  type: object
                  description: Data token yang telah diurai.
                  properties:
                    info:
                      type: object
                      description: Informasi akun token.
                      properties:
                        isNative:
                          type: boolean
                          description: Menunjukkan apakah akun menyimpan SOL native.
                          example: false
                        mint:
                          type: string
                          description: Pubkey mint token.
                          example: 2cHr7QS3xfuSV8wdxo3ztuF4xbiarF6Nrgx3qpx3HzXR
                        owner:
                          type: string
                          description: Pubkey pemilik akun.
                          example: A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd
                        state:
                          type: string
                          description: Status akun token.
                          example: initialized
                        tokenAmount:
                          type: object
                          description: Detail jumlah token.
                          properties:
                            amount:
                              type: string
                              description: Saldo mentah tanpa desimal.
                              example: '420000000000000'
                            decimals:
                              type: integer
                              description: Jumlah angka desimal.
                              example: 6
                            uiAmount:
                              type: number
                              description: Saldo dalam format yang mudah dibaca pengguna.
                              example: 420000000
                            uiAmountString:
                              type: string
                              description: Saldo sebagai string.
                              example: '420000000'
                space:
                  type: integer
                  description: Ruang yang dialokasikan untuk akun.
                  example: 165
            executable:
              type: boolean
              description: Menunjukkan apakah akun berisi program.
              example: false
            rentEpoch:
              type: integer
              description: Epoch saat akun berikutnya harus membayar sewa.
              example: 18446744073709552000
            space:
              type: integer
              description: Ukuran data akun.
              example: 165
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Kunci API Helius Anda. Anda dapat memperolehnya secara gratis di
        [dasbor](https://dashboard.helius.dev/api-keys).

````