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

# getHistoricalAccountInfo

> Baca akun Solana apa pun sebagaimana kondisinya pada slot sebelumnya atau tepat setelah transaksi tertentu, dengan pengodean getAccountInfo dan posisi penulisan terakhir.

> [!NOTE]
>
> `getHistoricalAccountInfo` berada dalam versi Beta. Parameter, harga, format respons, dan cakupan data dapat berubah.

## Ringkasan

`getHistoricalAccountInfo` mengembalikan akun Solana sebagaimana kondisinya pada slot sebelumnya, atau tepat setelah transaksi tertentu dalam slot tersebut. Ini adalah metode RPC eksklusif Helius. `getAccountInfo` standar hanya mengembalikan status saat ini.

Respons memiliki kolom akun yang sama seperti `getAccountInfo`, ditambah `lastUpdatedAt`: slot dan transaksi yang terakhir kali menulis status yang Anda terima.

Riwayat tersedia mulai slot 444,959,999 (7 September 2026), yaitu status pada awal epoch 1030. Permintaan untuk slot yang lebih awal mengembalikan kesalahan `-32018`.

`getHistoricalAccountInfo` tersedia di mainnet untuk paket Business dan yang lebih tinggi, serta dikenai biaya 0 kredit per panggilan selama periode beta. Harga dapat berubah.

## Pilih posisi dalam riwayat

Parameter kedua adalah objek kueri yang memilih titik dalam riwayat yang akan dibaca:

| Kueri | Mengembalikan akun |
| - | - |
| Dihilangkan atau `{}` | Pada slot terindeks terbaru, dibatasi sesuai tingkat komitmen yang diminta |
| `{ "slot": 445000000 }` | Pada akhir slot 445,000,000 |
| `{ "slot": 445000000, "transactionIndex": 10 }` | Tepat setelah transaksi pada indeks 10 di slot 445,000,000 dieksekusi |

`transactionIndex` memerlukan `slot`. Untuk membaca akun tepat sebelum transaksi pada indeks `N`, kueri `transactionIndex: N - 1`. Untuk transaksi pertama dalam sebuah slot, kueri slot sebelumnya tanpa `transactionIndex`.

Penulisan nontransaksi, seperti imbalan epoch, diterapkan pada akhir slot. Kueri dengan `transactionIndex` tidak pernah menyertakannya.

## Contoh permintaan

```bash theme={"system"}
curl https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "getHistoricalAccountInfo",
    "params": [
      "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      { "slot": 445000000 },
      { "encoding": "jsonParsed" }
    ]
  }'
```

## Baca respons

* **`value`** adalah akun sebagaimana kondisinya pada posisi yang diminta, atau `null` jika akun belum ada saat itu: akun belum dibuat atau sudah ditutup. Respons `null` tidak memiliki `lastUpdatedAt`.
* **`lastUpdatedAt.slot`** dan **`lastUpdatedAt.transactionIndex`** mengidentifikasi penulisan yang menghasilkan status ini. Penulisan tersebut berada pada atau sebelum posisi yang Anda minta.
* **`lastUpdatedAt.transactionIndex` bernilai `null`** saat penulisan terjadi di luar transaksi, seperti imbalan epoch.
* **`lastUpdatedAt.slot` bernilai 444,959,999 dengan `transactionIndex` bernilai `null`** berarti akun belum berubah sejak cakupan riwayat dimulai. Ini tidak berarti akun ditulis dalam slot tersebut.
* **`context.slot`** adalah slot terbaru yang telah diindeks Helius saat melayani permintaan, bukan slot yang Anda kueri.
* **Akun token `jsonParsed`** menggunakan jumlah desimal mint pada posisi yang diminta. Jika mint tidak dapat dibaca pada posisi tersebut, akun kembali menggunakan base64.

Untuk mencantumkan setiap status akun sebelumnya, gunakan `lastUpdatedAt` sebagai kursor. Lihat [Telusuri mundur riwayat akun](https://www.helius.dev/docs/id/rpc/historical-accounts.md#menelusuri-mundur-riwayat-akun).

## Kesalahan

| Kode | Arti |
| - | - |
| `-32018` | Slot berada sebelum cakupan riwayat dimulai (slot 444,959,999) |
| `-32004` | Slot lebih baru daripada yang diizinkan oleh tingkat komitmen yang diminta. Gunakan `confirmed` atau kueri slot yang lebih lama |
| `-32602` | Parameter tidak valid, seperti `transactionIndex` tanpa `slot`, pengodean `base58`, atau kolom konfigurasi yang tidak dikenal |
| `-32601` | Metode tidak ditemukan. Panggil endpoint mainnet Helius atau Gatekeeper Anda; metode ini tidak tersedia di devnet |

## Metode terkait

> [card] [Historical Accounts Guide](https://www.helius.dev/docs/id/rpc/historical-accounts.md)
>
> Cara kerja posisi, cakupan, dan lastUpdatedAt untuk metode akun historis

> [card] [getHistoricalTokenAccountsByOwner](https://www.helius.dev/docs/id/api-reference/rpc/http/gethistoricaltokenaccountsbyowner.md)
>
> Cantumkan akun token dompet pada slot sebelumnya

> [card] [getTransactionsForAddress](https://www.helius.dev/docs/id/rpc/gettransactionsforaddress.md)
>
> Temukan slot dan transactionIndex dari transaksi yang ingin Anda periksa

> [card] [getAccountInfo](https://www.helius.dev/docs/id/api-reference/rpc/http/getaccountinfo.md)
>
> Baca status akun saat ini

## Parameter Permintaan

**pubkey** `string` *required*

Alamat akun yang akan dibaca, dengan pengodean Base-58.

**slot** `number`

Slot tempat status akan dibaca. Mengembalikan akun sebagaimana kondisinya pada akhir slot ini. Slot paling awal yang didukung adalah 444959999, yaitu status pada awal epoch 1030. Jika dihilangkan, membaca slot terindeks terbaru yang dibatasi sesuai tingkat komitmen yang diminta.

**transactionIndex** `number`

Posisi transaksi dalam slot. Mengembalikan status akun tepat setelah transaksi tersebut dieksekusi, bukan pada akhir slot. Memerlukan slot.

**encoding** `string` (default: base64)

Format pengodean untuk data akun. base58 dan biner tidak didukung.

* `base64`
* `base64+zstd`
* `jsonParsed`

**dataSlice** `object`

Hanya mengembalikan sebagian data setiap akun. Berlaku untuk pengodean base64 dan base64+zstd.

**dataSlice.offset** `number` *required*

Offset byte untuk mulai membaca.

**dataSlice.length** `number` *required*

Jumlah byte yang akan dikembalikan.

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

Tingkat komitmen. processed tidak didukung.

* `finalized`
* `confirmed`

**minContextSlot** `number`

Slot minimum tempat permintaan dapat dievaluasi.


## OpenAPI

````yaml id/openapi/rpc-http/getHistoricalAccountInfo.yaml POST /
openapi: 3.1.0
info:
  title: API RPC Solana
  version: 1.0.0
  description: >-
    API status akun historis Solana untuk membaca akun apa pun sebagaimana
    kondisinya pada slot sebelumnya, atau tepat setelah transaksi tertentu dalam
    suatu slot.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Titik akhir RPC Mainnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: getHistoricalAccountInfo
      description: >
        **Beta.** Parameter, format respons, dan cakupan data dapat berubah.


        Mengembalikan akun Solana sebagaimana kondisinya pada slot sebelumnya,
        atau tepat setelah transaksi tertentu dalam slot tersebut. Metode RPC
        Helius ini menggunakan alamat dan opsi pengodean yang sama seperti
        getAccountInfo, ditambah objek kueri yang memilih posisi dalam riwayat
        untuk dibaca.


        Riwayat mencakup slot 444959999 (awal epoch 1030) dan seterusnya. Setiap
        akun yang dikembalikan menyertakan lastUpdatedAt, yaitu slot dan
        transaksi yang terakhir kali menulis status yang Anda terima.
      operationId: getHistoricalAccountInfo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - id
                - method
                - params
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  example: '2.0'
                  description: Versi protokol JSON-RPC.
                  default: '2.0'
                id:
                  type: string
                  example: '1'
                  description: Pengidentifikasi unik untuk permintaan.
                  default: '1'
                method:
                  type: string
                  enum:
                    - getHistoricalAccountInfo
                  example: getHistoricalAccountInfo
                  description: Nama metode RPC yang akan dipanggil.
                  default: getHistoricalAccountInfo
                params:
                  type: array
                  description: >-
                    Larik yang berisi alamat akun, objek kueri opsional yang
                    memilih posisi dalam riwayat, dan objek konfigurasi
                    opsional.
                  minItems: 1
                  maxItems: 3
                  default:
                    - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                    - slot: 445000000
                    - encoding: jsonParsed
                  items:
                    oneOf:
                      - type: string
                        title: Kunci publik
                        description: >-
                          Alamat akun yang akan dibaca, dengan pengodean
                          base-58.
                        example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                      - $ref: '#/components/schemas/HistoricalAccountQuery'
                        title: Kueri
                      - type: object
                        title: Konfigurasi
                        description: Objek konfigurasi opsional.
                        properties:
                          encoding:
                            type: string
                            description: >-
                              Format pengodean untuk data akun. base58 dan
                              binary tidak didukung.
                            enum:
                              - base64
                              - base64+zstd
                              - jsonParsed
                            default: base64
                            example: jsonParsed
                          dataSlice:
                            $ref: '#/components/schemas/DataSliceConfig'
                          commitment:
                            type: string
                            description: Tingkat komitmen. processed tidak didukung.
                            enum:
                              - finalized
                              - confirmed
                            default: finalized
                            example: finalized
                          minContextSlot:
                            type: integer
                            description: Slot minimum tempat permintaan dapat dievaluasi.
                            example: 445000000
                        additionalProperties: false
      responses:
        '200':
          description: Status akun historis berhasil diambil.
          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:
                    type: object
                    properties:
                      context:
                        $ref: '#/components/schemas/HistoricalContext'
                      value:
                        oneOf:
                          - $ref: '#/components/schemas/HistoricalAccount'
                          - type: 'null'
                        description: >-
                          Akun pada posisi yang diminta, atau null jika akun
                          tersebut belum ada pada saat itu.
        '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 ada.
          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 tidak tersedia untuk sementara.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Service unavailable
                id: '1'
        '504':
          description: Waktu Tunggu Gateway Habis - Waktu tunggu 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:
    HistoricalAccountQuery:
      type: object
      description: >-
        Posisi dalam riwayat yang akan dibaca. Abaikan parameter ini, atau kirim
        objek kosong, untuk membaca slot terindeks terbaru.
      properties:
        slot:
          type: integer
          description: >-
            Slot tempat status akan dibaca. Mengembalikan akun sebagaimana
            kondisinya pada akhir slot ini. Slot paling awal yang didukung
            adalah 444959999, yaitu status pada awal epoch 1030. Jika diabaikan,
            membaca slot terindeks terbaru, yang dibatasi pada tingkat komitmen
            yang diminta.
          minimum: 444959999
          example: 445000000
        transactionIndex:
          type: integer
          description: >-
            Posisi transaksi dalam slot. Mengembalikan status akun tepat setelah
            transaksi tersebut dieksekusi, bukan pada akhir slot. Memerlukan
            slot.
          minimum: 0
          maximum: 16777214
          example: 10
      additionalProperties: false
    DataSliceConfig:
      type: object
      description: >-
        Hanya mengembalikan potongan data setiap akun. Berlaku untuk pengodean
        base64 dan base64+zstd.
      properties:
        offset:
          type: integer
          description: Offset byte untuk mulai membaca.
          example: 0
        length:
          type: integer
          description: Jumlah byte yang akan dikembalikan.
          example: 8
      required:
        - offset
        - length
    HistoricalContext:
      type: object
      description: Metadata respons.
      properties:
        slot:
          type: integer
          description: >-
            Slot terbaru yang telah diindeks oleh penyimpanan riwayat ketika
            melayani permintaan. Ini bukan slot yang Anda kueri.
          example: 468129571
    HistoricalAccount:
      type: object
      description: >-
        Akun sebagaimana kondisinya pada posisi yang diminta, beserta posisi
        terakhir status tersebut ditulis.
      properties:
        lamports:
          type: integer
          description: Jumlah lamport yang ditetapkan ke akun ini.
          example: 531589475273
        owner:
          type: string
          description: >-
            Kunci publik program yang ditetapkan sebagai pemilik akun ini,
            dengan pengodean base-58.
          example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
        data:
          description: >-
            Data akun. Dengan base64 atau base64+zstd, berupa larik dua item
            yang berisi data terenkode dan jenis pengodeannya. Dengan
            jsonParsed, berupa objek dengan program, parsed, dan space. Akun
            yang tidak dapat diurai akan menggunakan larik base64 sebagai
            alternatif.
          oneOf:
            - type: array
              items:
                type: string
            - type: object
              properties:
                program:
                  type: string
                  description: Nama program yang memiliki akun.
                  example: spl-token
                parsed:
                  type: object
                  description: Status akun terurai yang spesifik untuk program.
                space:
                  type: integer
                  description: Ukuran data akun.
                  example: 82
        executable:
          type: boolean
          description: Menunjukkan apakah akun berisi program.
          example: false
        rentEpoch:
          type: integer
          description: >-
            Epoch saat akun ini berikutnya harus membayar sewa. Akun yang
            dibebaskan dari sewa melaporkan nilai maksimum u64.
        space:
          type: integer
          description: Ukuran data akun dalam byte.
          example: 82
        lastUpdatedAt:
          $ref: '#/components/schemas/AccountWritePosition'
      required:
        - lamports
        - owner
        - data
        - executable
        - rentEpoch
        - space
        - lastUpdatedAt
    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'
    AccountWritePosition:
      type: object
      description: >-
        Posisi terakhir status yang dikembalikan ditulis, pada atau sebelum
        posisi yang diminta.
      properties:
        slot:
          type: integer
          description: >-
            Slot penulisan terakhir. Nilai 444959999 dengan transactionIndex
            null berarti akun belum berubah sejak cakupan riwayat dimulai.
          example: 444999837
        transactionIndex:
          oneOf:
            - type: integer
            - type: 'null'
          description: >-
            Posisi transaksi yang melakukan penulisan terakhir. Bernilai null
            ketika penulisan terjadi di luar transaksi (misalnya, imbalan
            epoch), atau ketika akun belum berubah sejak cakupan riwayat
            dimulai.
          example: 700
      required:
        - slot
        - transactionIndex
  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).

````

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