> 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` в [Быстрый старт](/ru/sdk/agent-sdk/java/quick-start).

## Пример предварительных условий

Фрагменты Java разделяют этот импорт. Инициализируйте `client` с помощью быстрого запуска и получите `platformUserId` из сохраненной привязки. Примеры идентификаторов пользователей/заказов необходимо заменить вашими собственными сохраненными значениями.

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

## Правила идентификации пользователя

`platformUserId` — это 6MM внешний идентификатор пользователя. В настоящее время это 10-значное число.
строка, например:

```text
1188041528
```

Правила:

* Сохраните его как строку, а не как целое число.
* Не генерируйте, не декодируйте и не выводите из него смысл.
* Используйте свой собственный идентификатор пользователя на стороне партнера как `agentUserId`.
* Сохраните отношения между `agentUserId`, `platformUserId` и `agentOrderNo`.

## Привязать пользователя

Bind создает или извлекает связь между пользователем-партнером и 6MM
пользователь платформы. Вызовите его, когда пользователь впервые входит в торговый процесс или перед
первый перенос в 6MM.

```java
import com.sixmm.agent.model.BindRequest;
import com.sixmm.agent.model.BindResponse;

BindResponse resp = client.bind(
        BindRequest.of("agent-user-001")
                .withUsername("alice")
                .withExt("{\"source\":\"web\"}"));

System.out.println(resp.platformUserId);
System.out.println(resp.bindStatus);
System.out.println(resp.isSimulatedUser);
```

Поля запроса:

| Поле          | Тип    | Необходимый | Описание                                                                                         |
| ------------- | ------ | ----------- | ------------------------------------------------------------------------------------------------ |
| `agentUserId` | string | Да          | Уникальный идентификатор пользователя на стороне партнера                                        |
| `username`    | string | Нет         | Отображаемое имя на стороне партнера, используемое в качестве псевдонима пользователя платформы. |
| `ext`         | string | Нет         | Поле расширения. Рекомендуется строка JSON                                                       |

Поля ответа:

| Поле              | Тип     | Описание                                     |
| ----------------- | ------- | -------------------------------------------- |
| `platformUserId`  | string  | 6MM идентификатор внешнего пользователя      |
| `bindStatus`      | string  | Обычно `BOUND`                               |
| `isSimulatedUser` | boolean | Является ли это симулированным пользователем |

## Запрос партнерского аккаунта

```java
import com.sixmm.agent.model.QueryAccountRequest;
import com.sixmm.agent.model.QueryAccountResponse;

QueryAccountResponse resp = client.queryAccount(QueryAccountRequest.of("USDT"));

System.out.println(resp.agentCode);
System.out.println(resp.agentStatus);
resp.assets.forEach(asset -> {
    System.out.println(asset.currency);
    System.out.println(asset.depositBalance);
});
```

Когда `currency` отсутствует, SDK использует `defaultCurrency`.

## Запрос пользовательских ресурсов

```java
import com.sixmm.agent.model.QueryUserAssetsRequest;
import com.sixmm.agent.model.QueryUserAssetsResponse;

QueryUserAssetsResponse resp = client.queryUserAssets(
        QueryUserAssetsRequest.of("1188041528"));

System.out.println(resp.walletBalance);
System.out.println(resp.availableBalance);
System.out.println(resp.version);
```

Поля:

| Поле               | Тип     | Описание                                     |
| ------------------ | ------- | -------------------------------------------- |
| `walletBalance`    | string  | Баланс кошелька                              |
| `frozenMargin`     | string  | Замороженная маржа                           |
| `usedMargin`       | string  | Использованная маржа                         |
| `availableBalance` | string  | Доступный баланс                             |
| `isolatedMargin`   | string  | Изолированная маржа                          |
| `version`          | int64   | Версия актива                                |
| `isSimulatedUser`  | boolean | Является ли это симулированным пользователем |

### Различаем три кошелька

| кошелек                                       | Источник баланса                        | использовать                                                        |
| --------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------- |
| Собственный пользовательский кошелек продавца | Собственная система учета торговца      | Доступный баланс пользователя на стороне продавца                   |
| Финансирование платформы                      | `queryUserAssets` из `funding`          | Торговые фонды Seconds и взаимный перевод «Финансирование/Контракт» |
| Платформенный контракт                        | Поле актива контракта `queryUserAssets` | Маржа по бессрочному контракту и переводной баланс                  |

`queryAccount` Запросите маржинальный счет торговой платформы, а не кошелек пользователя продавца. Этот интерфейс не имеет параметров `environment` и не может быть запрошен как имитируемый пользовательский актив.

Запросите два кошелька платформы симулированных пользователей:

```java
QueryUserAssetsResponse assets = client.queryUserAssets(
        QueryUserAssetsRequest.of(platformUserId)
                .withFunding()
                .withEnvironment(ExecutionEnvironment.SIMULATED));
```

Интерфейс: `POST /v1/agent/query-user-assets`. Финансирование запрашивается только тогда, когда `includeFunding=true`; по умолчанию используется исходная семантика запроса актива контракта.

| поля ответа                                                                         | значение                                                                                                                |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `walletBalance`, `availableBalance`, `frozenMargin`, `usedMargin`, `isolatedMargin` | Суммы, связанные с контрактным кошельком                                                                                |
| `funding.assetCode`                                                                 | В настоящее время USDT                                                                                                  |
| `funding.availableAmount`, `heldAmount`, `totalAmount`                              | Доступное финансирование, занятость и общая сумма                                                                       |
| `funding.materialized`                                                              | Был ли счет финансирования материализован?                                                                              |
| `environment`                                                                       | Это поле отображается, когда среда передается явно; старые запросы, в которых не указана среда, не возвращают это поле. |
| `isSimulatedUser`                                                                   | Классификация счетов; не может заменить выбор торговой среды                                                            |

Суммы обрабатываются как строки или `BigDecimal`, а не `float`/`double`.

## Источник и связанные руководства

* [Официальный источник v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Обзор запроса и нумерация страниц](/ru/sdk/agent-sdk/java/perpetual-queries)
* [Финансирование кошелька](/ru/sdk/agent-sdk/java/funding-wallet)
* [Руководство по обновлению](/ru/sdk/agent-sdk/java/upgrade)