> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.6mm.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.6mm.com/_mcp/server.

# Договірна книга

Цей посібник призначений для **Agent Java SDK `v0.3.0`**, Java 8+ і публічного контракту з тегами. Приклади виконуються в серверній частині партнера після ініціалізації `client` у [Швидкий старт](/uk/sdk/agent-sdk/java/quick-start).

## Приклад передумов

Фрагменти Java поділяють ці імпортовані файли. Ініціалізуйте `client` за допомогою швидкого запуску та отримайте `platformUserId` із збереженого зв’язування. Приклади ідентифікаторів користувача/замовлення потрібно замінити вашими постійними значеннями.

```java
import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;
```

## `listPerpetualLedger`

Модель запиту: `PerpetualLedgerRequest`.

```java
import com.sixmm.agent.model.PerpetualLedgerRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;

PerpetualLedgerRequest request = new PerpetualLedgerRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualLedger(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);
```

### Поля запиту

| Поле              | Тип Java.                | Обов'язковий | Значення                                                                                                                                                             |
| ----------------- | ------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `platformUserIds` | `java.util.List<String>` | Умовний      | 1–100 унікальних публічних ідентифікаторів; необхідні для заповнення та умовних замовлень. Пропустити підтримувані запити для області прямого гравця; \[] недійсний. |
| `assetType`       | `String`                 | немає        | Класифікація активів згідно з обліковою книгою; не припускайте USDT.                                                                                                 |
| `changeType`      | `String`                 | немає        | Тип бізнес-зміни бухгалтерської книги зі збереженням вихідних значень.                                                                                               |
| `startTime`       | `Long`                   | немає        | Включно Unix мілісекунди; використовуйте фіксоване вікно історії UTC.                                                                                                |
| `endTime`         | `Long`                   | немає        | Ексклюзивні мілісекунди Unix.                                                                                                                                        |
| `limit`           | `Integer`                | немає        | За замовчуванням 500; 1–1000.                                                                                                                                        |
| `cursor`          | `String`                 | немає        | Використовуйте повернутий nextCursor із незмінними фільтрами; зупинятися, коли hasMore невірно.                                                                      |

Приклад читає одну сторінку. Для обов’язкових полів, обсягу гравця, семантики фільтра, обмеження, курсору та обмежених повторних спроб див [Огляд запиту](/uk/sdk/agent-sdk/java/perpetual-queries). Зберігайте всі фільтри незмінними під час перегляду сторінок; не інтерпретуйте помилку як порожній результат.

## Записи в книзі договорів

Інтерфейс: `account/ledger`. Повернуті дані містять лише такі 11 бізнес-полів і не містять логічних позначок порядку.

| `data` поле           | типу    | значення                                                                                                                                                                         |
| --------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ledgerId`            | string  | Вихідна книга записує ідентифікатор транзакції; одна і та ж транзакція може бути розділена на кілька деталей                                                                     |
| `symbol`              | string  | Пов’язана торгова пара, якщо не пов’язана, її можна опустити                                                                                                                     |
| `assetType`           | string  | Тип активу, збережений за вихідним значенням; використовується для класифікації активів, не виводиться за замовчуванням USDT                                                     |
| `changeType`          | string  | Зміна типу бізнесу в обліковому записі, збережена відповідно до вихідної вартості, як-от комісія за обробку, прибуток і збиток, переказ; можна відфільтрувати за тим самим полем |
| `amount`              | string  | Сума зміни цієї деталі, додатне число вказує на збільшення, від'ємне число вказує на зменшення; точність зберігається                                                            |
| `walletBalanceBefore` | string  | Баланс гаманця до зміни облікового запису, записаний у цій деталі                                                                                                                |
| `walletBalanceAfter`  | string  | Баланс гаманця після зміни рахунку, записаний у цьому реквізиті                                                                                                                  |
| `frozenBalanceBefore` | string  | Заморожений баланс, зареєстрований до зміни облікового запису, реєструється в цій деталі                                                                                         |
| `frozenBalanceAfter`  | string  | Заморожений баланс, зафіксований у цьому реквізиті після зміни рахунку                                                                                                           |
| `referenceId`         | string  | Пов’язаний бізнес-номер; інтерпретується як changeType і не може розглядатися як порядок orderId; «0» означає, що джерело не має дійсного пов’язаного номера                     |
| `createdAt`           | integer | Час створення реквізитів зміни облікового запису, мілісекунди; це поле використовується для фільтрації часу в цьому інтерфейсі                                                   |

Використовуйте баланс до та після зміни рахунку, який повертає інтерфейс. Різні changeType мають різну семантику, і не можна вважати, що кожна сума дорівнює walletBalanceAfter − walletBalanceBefore. Відображення/підсумок записів головної книги має зберігати ідентифікатор типу та деталей.

Ось приклад формату з використанням фіктивного ідентифікатора та суми:

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "items": [
      {
        "platformUserId": "1188041528",
        "entityType": "ACCOUNT_LEDGER",
        "entityId": "900001",
        "data": {
          "ledgerId": "ledger-example-001",
          "symbol": "BTCUSDT",
          "assetType": "USDT",
          "changeType": "HANDLING_FEE",
          "amount": "-0.10000000",
          "walletBalanceBefore": "100.00000000",
          "walletBalanceAfter": "99.90000000",
          "frozenBalanceBefore": "0.00000000",
          "frozenBalanceAfter": "0.00000000",
          "referenceId": "800001",
          "createdAt": 1791590400000
        }
      }
    ],
    "nextCursor": "",
    "hasMore": false
  }
}
```

## Приклад конверта відповіді

Це ілюстративна порожня сторінка, а не зразок завершеної торгівлі. У наведених вище таблицях полів для певних ресурсів описано заповнені `items[].data`.

```json
{"code":0,"message":"success","data":{"items":[],"nextCursor":"","hasMore":false}}
```

## Джерело та відповідні посібники

* [Офіційне джерело v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Огляд запиту та розбивка на сторінки](/uk/sdk/agent-sdk/java/perpetual-queries)
* [Гаманець для фінансування](/uk/sdk/agent-sdk/java/funding-wallet)
* [Посібник з оновлення](/uk/sdk/agent-sdk/java/upgrade)