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

# getHistoricalTokenAccountsByOwner

> Liệt kê các tài khoản SPL Token và Token-2022 mà một ví Solana sở hữu tại một slot trước đây hoặc ngay sau một giao dịch cụ thể, có hỗ trợ bộ lọc mint và phân trang.

> [!NOTE]
>
> `getHistoricalTokenAccountsByOwner` đang ở giai đoạn Beta. Các tham số, mức giá, định dạng phản hồi và phạm vi dữ liệu có thể thay đổi.

## Tổng quan

`getHistoricalTokenAccountsByOwner` trả về các tài khoản SPL Token và Token-2022 mà một ví sở hữu tại một slot trước đây hoặc ngay sau một giao dịch cụ thể trong slot đó. Đây là phương thức RPC độc quyền của Helius. `getTokenAccountsByOwner` tiêu chuẩn chỉ trả về trạng thái hiện tại.

Với kiểu mã hóa `jsonParsed`, số lượng token sử dụng số chữ số thập phân của từng mint tại vị trí được yêu cầu, do đó số dư phản ánh lượng token mà ví nắm giữ tại thời điểm đó.

Dữ liệu lịch sử có sẵn từ slot 444,959,999 (ngày 7 tháng 9 năm 2026) trở đi, tương ứng với trạng thái tại thời điểm bắt đầu epoch 1030.

`getHistoricalTokenAccountsByOwner` có sẵn trên mainnet cho các gói Business trở lên và có giá 0 credit cho mỗi lệnh gọi trong giai đoạn beta. Mức giá có thể thay đổi.

## Điểm khác biệt so với getTokenAccountsByOwner

* **Bộ lọc mint hoặc chương trình là tùy chọn.** Khi không có bộ lọc, bạn nhận được mọi tài khoản token mà ví sở hữu. Để thu hẹp kết quả, hãy đặt `mint` hoặc `programId` trong đối tượng cấu hình (tham số thứ ba), nhưng không đặt cả hai.
* **Tham số thứ hai là đối tượng truy vấn** dùng để chọn vị trí trong lịch sử, không phải bộ lọc mint hoặc chương trình.
* **`result.value` là một đối tượng** có `accounts` và `paginationKey`, không phải một mảng.

## Chọn một vị trí trong lịch sử

Tham số thứ hai là một đối tượng truy vấn:

* **Bị bỏ qua hoặc `{}`**: slot mới nhất đã được lập chỉ mục, giới hạn theo mức cam kết được yêu cầu.
* **`{ "slot": 445000000 }`**: cuối slot 445,000,000.
* **`{ "slot": 445000000, "transactionIndex": 10 }`**: ngay sau khi giao dịch tại chỉ mục 10 trong slot đó được thực thi.

Xem [Hướng dẫn về tài khoản lịch sử](https://www.helius.dev/docs/vi/rpc/historical-accounts.md) để tìm hiểu cách hoạt động của các vị trí.

## Yêu cầu mẫu

Yêu cầu này trả về các tài khoản token USDC của ví tại thời điểm cuối slot 445,000,000:

```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": "getHistoricalTokenAccountsByOwner",
    "params": [
      "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
      { "slot": 445000000 },
      { "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "encoding": "jsonParsed" }
    ]
  }'
```

## Phân trang qua tất cả tài khoản token

Kết quả được sắp xếp trước tiên theo mint, sau đó theo địa chỉ tài khoản token. Mỗi phản hồi trả về `value.accounts` và `value.paginationKey`, một con trỏ có dạng `<mint>:<tokenAccount>`. Truyền lại con trỏ này trong yêu cầu tiếp theo cho đến khi nó là `null`.

> [!WARNING]
>
> Một trang có thể có ít mục hoặc thậm chí trống nhưng vẫn chứa `paginationKey`. Chỉ khi `paginationKey` là `null` thì bạn mới đến cuối.

Luôn truyền một `slot` rõ ràng khi phân trang. Nếu bỏ qua, mỗi trang sẽ đọc slot mới nhất đã được lập chỉ mục, vì vậy các trang có thể đến từ những thời điểm khác nhau.

```typescript theme={"system"}
const url = `https://mainnet.helius-rpc.com/?api-key=${process.env.HELIUS_API_KEY}`;

async function getTokenAccountsAt(owner: string, slot: number) {
  const accounts = [];
  let paginationKey: string | null = null;

  do {
    const response = await fetch(url, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        jsonrpc: "2.0",
        id: "1",
        method: "getHistoricalTokenAccountsByOwner",
        params: [
          owner,
          { slot },
          { encoding: "jsonParsed", limit: 1000, ...(paginationKey && { paginationKey }) },
        ],
      }),
    });
    const { result, error } = await response.json();
    if (error) throw new Error(`${error.code}: ${error.message}`);

    accounts.push(...result.value.accounts);
    paginationKey = result.value.paginationKey;
  } while (paginationKey);

  return accounts;
}

const tokenAccounts = await getTokenAccountsAt("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY", 445000000);
```

## Đọc phản hồi

Mỗi mục trong `value.accounts` có `pubkey` của tài khoản token và một đối tượng `account`. Đối tượng tài khoản có các trường giống `getAccountInfo`, cùng với `lastUpdatedAt`:

* **`lastUpdatedAt.slot`** và **`lastUpdatedAt.transactionIndex`** xác định thao tác ghi đã tạo ra trạng thái này.
* **`lastUpdatedAt.slot` bằng 444,959,999 với `transactionIndex` là `null`** có nghĩa là tài khoản token chưa thay đổi kể từ khi phạm vi dữ liệu lịch sử bắt đầu.
* **`context.slot`** là slot mới nhất mà Helius đã lập chỉ mục khi xử lý yêu cầu, không phải slot bạn đã truy vấn.

## Lỗi

| Mã | Ý nghĩa |
| - | - |
| `-32018` | Slot nằm trước thời điểm bắt đầu phạm vi dữ liệu lịch sử (slot 444,959,999) |
| `-32004` | Slot mới hơn mức mà cam kết được yêu cầu cho phép. Hãy sử dụng `confirmed` hoặc truy vấn một slot cũ hơn |
| `-32602` | Tham số không hợp lệ, chẳng hạn như đặt cả `mint` và `programId`, `programId` không phải là một chương trình token hoặc mint của `paginationKey` không khớp với `mint` |
| `-32601` | Không tìm thấy phương thức. Hãy gọi endpoint mainnet hoặc Gatekeeper của Helius; phương thức này không có trên devnet |

## Các phương thức liên quan

> [card] [Historical Accounts Guide](https://www.helius.dev/docs/vi/rpc/historical-accounts.md)
>
> Cách hoạt động của vị trí, phạm vi dữ liệu và lastUpdatedAt đối với các phương thức tài khoản lịch sử

> [card] [getHistoricalAccountInfo](https://www.helius.dev/docs/vi/api-reference/rpc/http/gethistoricalaccountinfo.md)
>
> Đọc một tài khoản tại một slot trước đây

> [card] [getTransactionsForAddress](https://www.helius.dev/docs/vi/rpc/gettransactionsforaddress.md)
>
> Tìm slot và transactionIndex của các giao dịch bạn muốn kiểm tra

> [card] [getTokenAccountsByOwnerV2](https://www.helius.dev/docs/vi/api-reference/rpc/http/gettokenaccountsbyownerv2.md)
>
> Phân trang qua các tài khoản token hiện tại của một ví

## Tham số yêu cầu

**owner** `string` *required*

Địa chỉ được mã hóa Base-58 của ví sở hữu các tài khoản token. Truyền ví chủ sở hữu, không phải tài khoản token.

**slot** `number`

Slot dùng để đọc trạng thái. Trả về tài khoản ở thời điểm cuối slot này. Slot sớm nhất được hỗ trợ là 444959999, tương ứng với trạng thái tại thời điểm bắt đầu epoch 1030. Khi bị bỏ qua, phương thức sẽ đọc slot mới nhất đã được lập chỉ mục, giới hạn theo mức cam kết được yêu cầu.

**transactionIndex** `number`

Vị trí của một giao dịch trong slot. Trả về trạng thái tài khoản ngay sau khi giao dịch đó được thực thi thay vì tại thời điểm cuối slot. Yêu cầu phải có slot.

**mint** `string`

Chỉ trả về các tài khoản token cho mint này. Không thể kết hợp với programId.

**programId** `string`

Chỉ trả về các tài khoản token do chương trình token này sở hữu. Không thể kết hợp với mint.

* `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`
* `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`

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

Định dạng mã hóa cho dữ liệu tài khoản. Với jsonParsed, số lượng token sử dụng số chữ số thập phân của mint tại vị trí được yêu cầu. base58 và binary không được hỗ trợ.

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

**dataSlice** `object`

Chỉ trả về một phần dữ liệu của từng tài khoản. Áp dụng cho kiểu mã hóa base64 và base64+zstd.

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

Độ lệch byte để bắt đầu đọc.

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

Số byte cần trả về.

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

Số lượng tài khoản token tối đa cần trả về (1-5.000).

**paginationKey** `string`

Con trỏ từ paginationKey của phản hồi trước, có dạng `&lt;mint&gt;:&lt;tokenAccount&gt;`. Khi cũng đặt mint, mint của con trỏ phải khớp với giá trị đó.

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

Mức cam kết. processed không được hỗ trợ.

* `finalized`
* `confirmed`

**minContextSlot** `number`

Slot tối thiểu mà tại đó yêu cầu có thể được đánh giá.


## OpenAPI

````yaml vi/openapi/rpc-http/getHistoricalTokenAccountsByOwner.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    API tài khoản token Solana lịch sử để liệt kê các tài khoản SPL Token và
    Token-2022 mà một ví sở hữu tại một slot trong quá khứ, với bộ lọc mint hoặc
    chương trình token tùy chọn và phân trang dựa trên con trỏ.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Điểm cuối RPC Mainnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: getHistoricalTokenAccountsByOwner
      description: >
        **Beta.** Các tham số, định dạng phản hồi và phạm vi dữ liệu có thể thay
        đổi.


        Trả về các tài khoản SPL Token và Token-2022 mà một ví sở hữu tại một
        slot trong quá khứ, hoặc

        ngay sau một giao dịch cụ thể trong slot đó. Phương thức RPC Helius này

        mặc định trả về mọi tài khoản token. Thu hẹp kết quả bằng mint hoặc

        programId của chương trình token trong đối tượng cấu hình.


        Kết quả được sắp xếp theo mint, sau đó theo địa chỉ tài khoản token. Một
        trang có thể có ít kết quả hoặc

        trống nhưng vẫn trả về paginationKey;

        tiếp tục phân trang cho đến khi paginationKey là null.
      operationId: getHistoricalTokenAccountsByOwner
      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: Phiên bản giao thức JSON-RPC.
                  default: '2.0'
                id:
                  type: string
                  example: '1'
                  description: Mã định danh duy nhất cho yêu cầu.
                  default: '1'
                method:
                  type: string
                  enum:
                    - getHistoricalTokenAccountsByOwner
                  example: getHistoricalTokenAccountsByOwner
                  description: Tên phương thức RPC cần gọi.
                  default: getHistoricalTokenAccountsByOwner
                params:
                  type: array
                  description: >-
                    Mảng chứa địa chỉ ví của chủ sở hữu, một đối tượng truy vấn
                    tùy chọn để chọn vị trí trong lịch sử và một đối tượng cấu
                    hình tùy chọn.
                  minItems: 1
                  maxItems: 3
                  default:
                    - 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY
                    - slot: 445000000
                    - encoding: jsonParsed
                      limit: 2
                  items:
                    oneOf:
                      - type: string
                        title: Chủ sở hữu
                        description: >-
                          Địa chỉ được mã hóa base-58 của ví từng sở hữu các tài
                          khoản token. Truyền ví của chủ sở hữu, không phải tài
                          khoản token.
                        example: 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY
                      - $ref: '#/components/schemas/HistoricalAccountQuery'
                        title: Truy vấn
                      - type: object
                        title: Cấu hình
                        description: >-
                          Đối tượng cấu hình tùy chọn. Chỉ đặt tối đa một trong
                          hai trường mint hoặc programId.
                        properties:
                          mint:
                            type: string
                            description: >-
                              Chỉ trả về các tài khoản token cho mint này. Không
                              thể kết hợp với programId.
                            example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                          programId:
                            type: string
                            description: >-
                              Chỉ trả về các tài khoản token do chương trình
                              token này sở hữu. Không thể kết hợp với mint.
                            enum:
                              - TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                              - TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                            example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                          encoding:
                            type: string
                            description: >-
                              Định dạng mã hóa cho dữ liệu tài khoản. Với
                              jsonParsed, số lượng token sử dụng số chữ số thập
                              phân của mint tại vị trí được yêu cầu. base58 và
                              binary không được hỗ trợ.
                            enum:
                              - base64
                              - base64+zstd
                              - jsonParsed
                            default: base64
                            example: jsonParsed
                          dataSlice:
                            $ref: '#/components/schemas/DataSliceConfig'
                          limit:
                            type: integer
                            description: Số tài khoản token tối đa cần trả về (1-5.000).
                            minimum: 1
                            maximum: 5000
                            default: 5000
                            example: 1000
                          paginationKey:
                            type: string
                            description: >-
                              Con trỏ từ paginationKey của phản hồi trước, ở
                              dạng `<mint>:<tokenAccount>`. Khi bạn cũng đặt
                              mint, mint của con trỏ phải khớp với giá trị đó.
                            example: >-
                              11112zAgXhc6hGfdfr5anSY91mq7Cs4HHpSVEQc4ASG:EKyGnXReqmmXyqBHmMjV2CKCLafJS47xyhXXZ5WuFMxD
                          commitment:
                            type: string
                            description: Mức cam kết. processed không được hỗ trợ.
                            enum:
                              - finalized
                              - confirmed
                            default: finalized
                            example: finalized
                          minContextSlot:
                            type: integer
                            description: >-
                              Slot tối thiểu mà yêu cầu có thể được đánh giá tại
                              đó.
                            example: 445000000
                        additionalProperties: false
      responses:
        '200':
          description: Đã truy xuất thành công một trang tài khoản token lịch sử.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: Phiên bản giao thức JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Mã định danh khớp với yêu cầu.
                    example: '1'
                  result:
                    type: object
                    properties:
                      context:
                        $ref: '#/components/schemas/HistoricalContext'
                      value:
                        type: object
                        properties:
                          accounts:
                            type: array
                            description: >-
                              Các tài khoản token trên trang này, được sắp xếp
                              theo mint rồi theo địa chỉ tài khoản token.
                            items:
                              $ref: '#/components/schemas/HistoricalKeyedAccount'
                          paginationKey:
                            oneOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Con trỏ cho trang tiếp theo, ở dạng
                              `<mint>:<tokenAccount>`, hoặc null sau khi mọi tài
                              khoản đã được trả về. Một trang có ít kết quả hoặc
                              trống nhưng có paginationKey nghĩa là quá trình
                              quét đã dừng sớm, không phải bạn đã đến cuối.
                            example: >-
                              11112zAgXhc6hGfdfr5anSY91mq7Cs4HHpSVEQc4ASG:EKyGnXReqmmXyqBHmMjV2CKCLafJS47xyhXXZ5WuFMxD
        '400':
          description: >-
            Yêu cầu không hợp lệ - Tham số yêu cầu không hợp lệ hoặc yêu cầu sai
            định dạng.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Tham số không hợp lệ
                id: '1'
        '401':
          description: Không được ủy quyền - Khóa API không hợp lệ hoặc bị thiếu.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Không được ủy quyền
                id: '1'
        '429':
          description: Quá nhiều yêu cầu - Đã vượt quá giới hạn tốc độ.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Quá nhiều yêu cầu
                id: '1'
        '500':
          description: Lỗi máy chủ nội bộ - Đã xảy ra lỗi trên máy chủ.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Lỗi nội bộ
                id: '1'
        '503':
          description: Dịch vụ không khả dụng - Dịch vụ tạm thời không khả dụng.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Dịch vụ không khả dụng
                id: '1'
        '504':
          description: Hết thời gian chờ cổng kết nối - Yêu cầu đã hết thời gian chờ.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32003
                  message: Hết thời gian chờ cổng kết nối
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    HistoricalAccountQuery:
      type: object
      description: >-
        Vị trí trong lịch sử cần đọc. Bỏ qua hoặc gửi một đối tượng rỗng để đọc
        slot mới nhất đã được lập chỉ mục.
      properties:
        slot:
          type: integer
          description: >-
            Slot để đọc trạng thái. Trả về tài khoản tại thời điểm kết thúc slot
            này. Slot sớm nhất được hỗ trợ là 444959999, tức trạng thái tại thời
            điểm bắt đầu epoch 1030. Khi bị bỏ qua, hệ thống đọc slot mới nhất
            đã được lập chỉ mục, giới hạn theo mức cam kết được yêu cầu.
          minimum: 444959999
          example: 445000000
        transactionIndex:
          type: integer
          description: >-
            Vị trí của một giao dịch trong slot. Trả về trạng thái tài khoản
            ngay sau khi giao dịch đó được thực thi, thay vì vào cuối slot. Yêu
            cầu phải có slot.
          minimum: 0
          maximum: 16777214
          example: 10
      additionalProperties: false
    DataSliceConfig:
      type: object
      description: >-
        Chỉ trả về một phần dữ liệu của mỗi tài khoản. Áp dụng cho mã hóa base64
        và base64+zstd.
      properties:
        offset:
          type: integer
          description: Độ lệch byte để bắt đầu đọc.
          example: 0
        length:
          type: integer
          description: Số byte cần trả về.
          example: 8
      required:
        - offset
        - length
    HistoricalContext:
      type: object
      description: Siêu dữ liệu phản hồi.
      properties:
        slot:
          type: integer
          description: >-
            Slot mới nhất mà kho lưu trữ lịch sử đã lập chỉ mục khi xử lý yêu
            cầu. Đây không phải là slot bạn đã truy vấn.
          example: 468129571
    HistoricalKeyedAccount:
      type: object
      properties:
        pubkey:
          type: string
          description: Địa chỉ được mã hóa base-58 của tài khoản token.
          example: EKyGnXReqmmXyqBHmMjV2CKCLafJS47xyhXXZ5WuFMxD
        account:
          $ref: '#/components/schemas/HistoricalAccount'
      required:
        - pubkey
        - account
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: Phiên bản giao thức JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Mã lỗi.
              example: -32602
            message:
              type: string
              description: Thông báo lỗi.
            data:
              type: object
              description: Dữ liệu bổ sung về lỗi.
        id:
          type: string
          description: Mã định danh khớp với yêu cầu.
          example: '1'
    HistoricalAccount:
      type: object
      description: >-
        Tài khoản tại vị trí được yêu cầu, cùng với vị trí mà trạng thái đó được
        ghi lần cuối.
      properties:
        lamports:
          type: integer
          description: Số lamport được gán cho tài khoản này.
          example: 531589475273
        owner:
          type: string
          description: >-
            Khóa công khai được mã hóa base-58 của chương trình mà tài khoản này
            được gán cho.
          example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
        data:
          description: >-
            Dữ liệu tài khoản. Với base64 hoặc base64+zstd, đây là một mảng gồm
            hai phần tử: dữ liệu đã mã hóa và kiểu mã hóa. Với jsonParsed, đây
            là một đối tượng chứa program, parsed và space. Các tài khoản không
            thể phân tích sẽ chuyển về mảng base64.
          oneOf:
            - type: array
              items:
                type: string
            - type: object
              properties:
                program:
                  type: string
                  description: Tên chương trình sở hữu tài khoản.
                  example: spl-token
                parsed:
                  type: object
                  description: >-
                    Trạng thái tài khoản đã phân tích dành riêng cho chương
                    trình.
                space:
                  type: integer
                  description: Kích thước dữ liệu của tài khoản.
                  example: 82
        executable:
          type: boolean
          description: Cho biết tài khoản có chứa chương trình hay không.
          example: false
        rentEpoch:
          type: integer
          description: >-
            Epoch tiếp theo mà tài khoản này sẽ phải trả phí thuê. Các tài khoản
            được miễn phí thuê trả về giá trị u64 tối đa.
        space:
          type: integer
          description: Kích thước dữ liệu của tài khoản tính bằng byte.
          example: 82
        lastUpdatedAt:
          $ref: '#/components/schemas/AccountWritePosition'
      required:
        - lamports
        - owner
        - data
        - executable
        - rentEpoch
        - space
        - lastUpdatedAt
    AccountWritePosition:
      type: object
      description: >-
        Vị trí mà trạng thái được trả về đã được ghi lần cuối, tại hoặc trước vị
        trí được yêu cầu.
      properties:
        slot:
          type: integer
          description: >-
            Slot của lần ghi cuối cùng. Giá trị 444959999 với transactionIndex
            là null có nghĩa là tài khoản chưa thay đổi kể từ khi phạm vi lịch
            sử bắt đầu.
          example: 444999837
        transactionIndex:
          oneOf:
            - type: integer
            - type: 'null'
          description: >-
            Vị trí của giao dịch thực hiện lần ghi cuối cùng. Là null khi lần
            ghi xảy ra ngoài một giao dịch (ví dụ: phần thưởng epoch), hoặc khi
            tài khoản chưa thay đổi kể từ khi phạm vi lịch sử bắt đầu.
          example: 700
      required:
        - slot
        - transactionIndex
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Khóa API Helius của bạn. Bạn có thể nhận khóa miễn phí trong [bảng điều
        khiển](https://dashboard.helius.dev/api-keys).

````

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