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

# Получение баланса токена за прошлый период

> Получите баланс кошелька для определенного токена или нативного SOL на момент указанной метки времени, даты и времени либо слота.

Каждый запрос стоит **100 кредитов**.

## Параметры запроса

<ParamField body="wallet" type="string" required default="GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz">
  Адрес кошелька Solana (в кодировке base58)
</ParamField>

<ParamField body="mint" type="string" required default="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v">
  Адрес выпуска токена. Для нативного SOL используйте `So11111111111111111111111111111111111111111`.
</ParamField>

<ParamField body="time" type="number" default="1750000000">
  Метка времени Unix в **секундах**. Возвращает баланс на этот момент времени. Укажите ровно один из параметров: `time`, `datetime` или `slot`.
</ParamField>

<ParamField body="datetime" type="string">
  Строка даты и времени. Допустимые форматы: `2025-01-10` (полночь по UTC), `2025-01-10 19:20:00`,
  `2025-01-10T19:20:00` (секунды необязательны) или формат с явным указанием часового пояса
  (`2025-01-10T19:20:00Z`, `...+02:00`). **Интерпретируется как UTC, если явно не указан
  часовой пояс.** Укажите ровно один из параметров: `time`, `datetime` или `slot`.
</ParamField>

<ParamField body="slot" type="number">
  Номер слота. Возвращает баланс на момент этого слота. Результат точен и детерминирован. Укажите ровно один из параметров: `time`, `datetime` или `slot`.
</ParamField>


## OpenAPI

````yaml ru/openapi/wallet-api/openapi.yaml GET /v1/wallet/{wallet}/balance-at
openapi: 3.0.3
info:
  title: Wallet API
  description: >
    Высокопроизводительный REST API для запросов данных кошельков Solana,
    включая балансы, историю транзакций, переводы и сведения об идентификации.


    ## Аутентификация


    Для всех запросов требуется ключ API, передаваемый одним из следующих
    способов:

    - Параметр запроса: `?api-key=YOUR_API_KEY`

    - Заголовок: `X-Api-Key: YOUR_API_KEY`
  version: 1.0.0
  contact:
    name: Поддержка API
    url: https://helius.dev
servers:
  - url: https://api.helius.xyz
    description: Рабочий сервер
security:
  - ApiKeyQuery: []
  - ApiKeyHeader: []
tags:
  - name: Идентификация
    description: Поиск идентификационных данных кошельков и известных адресов
  - name: Балансы
    description: Запрос балансов токенов и NFT
  - name: История
    description: История транзакций и изменения баланса
  - name: Переводы
    description: Операции перевода токенов
  - name: Финансирование
    description: Сведения о финансировании кошелька
paths:
  /v1/wallet/{wallet}/balance-at:
    get:
      tags:
        - Балансы
      summary: Получить исторический баланс
      description: >
        Получает баланс определенного токена (или нативного SOL) в кошельке на
        момент в прошлом,

        заданный временной меткой Unix, строкой даты и времени или номером
        слота.


        Баланс считывается из последней транзакции кошелька с участием токена,
        совершенной **в запрошенный

        момент или до него**. Используется баланс после транзакции, который по
        определению сохранялся

        до следующей транзакции кошелька. Это точное, а не приблизительное
        значение.


        Необходимо указать **ровно один** из параметров: `time`, `datetime` или
        `slot`. Значения `datetime`

        без явного часового пояса интерпретируются как **UTC**. Для точных и
        детерминированных результатов

        используйте `slot`: время блока, сообщаемое валидаторами, может
        отличаться на несколько секунд.


        Для нативного SOL передайте псевдо-минт
        `So11111111111111111111111111111111111111111` в параметре `mint`.


        Если у кошелька нет соответствующих операций в запрошенный момент или до
        него, это **не** считается ошибкой —

        конечная точка возвращает `200` с `balance: "0"` и `asOf: null`.


        `balance` и `balanceRaw` возвращаются в виде **строк**, чтобы избежать
        потери точности для больших значений.
      operationId: getWalletBalanceAt
      parameters:
        - $ref: '#/components/parameters/WalletAddress'
        - name: mint
          in: query
          required: true
          description: >-
            Адрес минтинга токена. Для нативного SOL используйте
            `So11111111111111111111111111111111111111111`.
          schema:
            type: string
            default: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
          example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
        - name: time
          in: query
          description: >-
            Временная метка Unix в **секундах**. Возвращает баланс на этот
            момент. Укажите ровно один из параметров: `time`, `datetime` или
            `slot`.
          schema:
            type: integer
            default: 1750000000
            minimum: 0
          example: 1736536800
        - name: datetime
          in: query
          description: >
            Строка даты и времени. Допустимые форматы: `2025-01-10` (полночь по
            UTC), `2025-01-10 19:20:00`,

            `2025-01-10T19:20:00` (секунды необязательны) или формат с явно
            указанным часовым поясом

            (`2025-01-10T19:20:00Z`, `...+02:00`). **Если часовой пояс не указан
            явно, значение

            интерпретируется как UTC.** Укажите ровно один из параметров:
            `time`, `datetime` или `slot`.
          schema:
            type: string
          example: '2025-01-10 19:20:00'
        - name: slot
          in: query
          description: >-
            Номер слота. Возвращает баланс на момент этого слота. Точный и
            детерминированный результат. Укажите ровно один из параметров:
            `time`, `datetime` или `slot`.
          schema:
            type: integer
            minimum: 0
          example: 313000000
      responses:
        '200':
          description: Исторический баланс успешно получен
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceAtResponse'
        '400':
          description: >-
            Отсутствует `mint`; недопустимый минт; не указано ни одного или
            указано более одного из `time`/`datetime`/`slot`; `time`/`slot` не
            является целым числом; либо не удалось разобрать `datetime`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: >-
                  Необходимо указать ровно один из параметров: time, datetime
                  или slot
                code: 400
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Недопустимый адрес кошелька в пути
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
        '502':
          description: >-
            Ошибка или тайм-аут вышестоящего RPC. Запрос можно повторить с
            экспоненциальной задержкой.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: UPSTREAM_ERROR
                code: 502
                details: Сбой запроса к вышестоящему RPC. Повторите попытку.
components:
  parameters:
    WalletAddress:
      name: wallet
      in: path
      required: true
      description: Адрес кошелька Solana (в кодировке base58)
      schema:
        type: string
        pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
        default: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
      example: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
  schemas:
    BalanceAtResponse:
      type: object
      properties:
        wallet:
          type: string
          description: Повтор запрошенного адреса кошелька
          example: 5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9
        mint:
          type: string
          description: Повтор запрошенного минта (псевдо-минт SOL для нативного токена)
          example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
        isNative:
          type: boolean
          description: Является ли результат нативным SOL
          example: false
        balance:
          type: string
          description: >-
            Удобочитаемая сумма в виде десятичной **строки** (не числа, поэтому
            большие балансы не теряют точность). Завершающие нули удаляются.
          example: '284961463.392936'
        balanceRaw:
          type: string
          description: Точная сумма в наименьшей единице (лампортах для SOL) в виде строки
          example: '284961463392936'
        decimals:
          type: integer
          description: Количество десятичных разрядов токена (9 для SOL)
          example: 6
        requested:
          type: object
          description: >-
            Повтор запроса. При использовании `datetime` поле `time` также
            заполняется разрешенным значением эпохи в секундах, чтобы была видна
            интерпретация UTC.
          properties:
            time:
              type: integer
              nullable: true
              description: >-
                Запрошенное время в секундах эпохи (также задается при
                использовании `datetime`)
              example: 1736536800
            slot:
              type: integer
              nullable: true
              description: Запрошенный слот при использовании `slot`
              example: null
            datetime:
              type: string
              nullable: true
              description: Исходная строка даты и времени при использовании `datetime`
              example: null
          required:
            - time
            - slot
            - datetime
        asOf:
          type: object
          nullable: true
          description: >-
            Транзакция, из которой был считан баланс. **Имеет значение `null`,
            если у кошелька не было соответствующей транзакции в запрошенный
            момент или до него**. Это означает, что баланс действительно равен
            `0` (к тому моменту кошелек еще не владел токеном), а не что
            произошла ошибка.
          properties:
            slot:
              type: integer
              description: Слот транзакции
              example: 313000000
            blockTime:
              type: integer
              nullable: true
              description: Время блока транзакции в секундах Unix (может быть null)
              example: 1736536794
            signature:
              type: string
              description: Подпись транзакции
              example: 5Cyy7Mh9nVgFq3T8wJp2sKxR4dE6bA1uZoNcLrXmYqUpon
          required:
            - slot
            - signature
      required:
        - wallet
        - mint
        - isNative
        - balance
        - balanceRaw
        - decimals
        - requested
        - asOf
    Error:
      type: object
      properties:
        error:
          type: string
          description: Сообщение об ошибке
          example: Недопустимый адрес кошелька
        code:
          type: integer
          description: Код состояния HTTP
          example: 400
        details:
          type: string
          description: Дополнительные сведения об ошибке
          example: '''invalid-address'' не является допустимым адресом Solana'
      required:
        - error
        - code
  responses:
    Unauthorized:
      description: Ключ API отсутствует или недействителен
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: >-
              Требуется ключ API. Передайте его через ?api-key=xxx или заголовок
              X-Api-Key
            code: 401
    RateLimited:
      description: Превышено ограничение частоты запросов.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: RATE_LIMIT_EXCEEDED
            code: 429
            details: Слишком много запросов. Повторите попытку через 2 секунды.
    InternalError:
      description: >-
        Временная ошибка сервера. Запрос можно повторить с экспоненциальной
        задержкой.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: INTERNAL_ERROR
            code: 500
            details: Произошла непредвиденная ошибка. Повторите попытку.
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: Ключ API, передаваемый как параметр запроса
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key
      description: Ключ API, передаваемый в заголовке запроса

````

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