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

# Benutzer und Vermögenswerte

Dieser Leitfaden richtet sich an **Agent Java SDK `v0.3.0`**, Java 8+ und den getaggten öffentlichen Auftrag. Beispiele werden nach der Initialisierung von `client` in einem Partner-Backend ausgeführt [Schnellstart](/de/sdk/agent-sdk/java/quick-start).

## Beispielvoraussetzungen

Die Java-Snippets teilen diese Importe. Initialisieren Sie `client` mit Quick Start und rufen Sie `platformUserId` aus der gespeicherten Bindung ab. Beispiel-Benutzer-/Bestell-IDs müssen durch Ihre eigenen persistenten Werte ersetzt werden.

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

## Benutzer-ID-Regeln

`platformUserId` ist die externe Benutzer-ID 6MM. Derzeit handelt es sich um eine 10-stellige Zahl
Zeichenfolge, zum Beispiel:

```text
1188041528
```

Regeln:

* Speichern Sie es als Zeichenfolge, nicht als Ganzzahl.
* Erzeugen, entschlüsseln oder leiten Sie daraus keine Bedeutung ab.
* Verwenden Sie Ihre eigene Partner-Benutzer-ID als `agentUserId`.
* Behalten Sie die Beziehung zwischen `agentUserId`, `platformUserId` und `agentOrderNo` bei.

## Benutzer binden

Bind erstellt oder ruft die Beziehung zwischen einem Partnerbenutzer und einem 6MM ab.
Plattformbenutzer. Rufen Sie es auf, wenn ein Benutzer zum ersten Mal in den Handelsfluss eintritt oder bevor
Erster Transfer nach 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);
```

Anfragefelder:

| Feld          | Typ    | Erforderlich | Beschreibung                                                                         |
| ------------- | ------ | ------------ | ------------------------------------------------------------------------------------ |
| `agentUserId` | string | Ja           | Eindeutige Partner-Benutzer-ID                                                       |
| `username`    | string | NEIN         | Partnerseitiger Anzeigename, der als Spitzname des Plattformbenutzers verwendet wird |
| `ext`         | string | NEIN         | Erweiterungsfeld. Die Zeichenfolge JSON wird empfohlen                               |

Antwortfelder:

| Feld              | Typ     | Beschreibung                                     |
| ----------------- | ------- | ------------------------------------------------ |
| `platformUserId`  | string  | 6MM externe Benutzer-ID                          |
| `bindStatus`      | string  | Normalerweise `BOUND`                            |
| `isSimulatedUser` | boolean | Ob es sich um einen simulierten Benutzer handelt |

## Partnerkonto abfragen

```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);
});
```

Wenn `currency` fehlt, verwendet SDK `defaultCurrency`.

## Benutzerressourcen abfragen

```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);
```

Felder:

| Feld               | Typ     | Beschreibung                                     |
| ------------------ | ------- | ------------------------------------------------ |
| `walletBalance`    | string  | Wallet-Guthaben                                  |
| `frozenMargin`     | string  | Gefrorener Rand                                  |
| `usedMargin`       | string  | Gebrauchter Rand                                 |
| `availableBalance` | string  | Verfügbares Guthaben                             |
| `isolatedMargin`   | string  | Isolierter Rand                                  |
| `version`          | int64   | Asset-Version                                    |
| `isSimulatedUser`  | boolean | Ob es sich um einen simulierten Benutzer handelt |

### Unterscheiden Sie die drei Geldbörsen

| Geldbörse                            | Balance-Quelle                                      | verwenden                                                                    |
| ------------------------------------ | --------------------------------------------------- | ---------------------------------------------------------------------------- |
| Eigenes Benutzer-Wallet des Händlers | Eigenes Buchhaltungssystem des Händlers             | Das verfügbare Guthaben des Benutzers auf der Händlerseite                   |
| Plattformfinanzierung                | `queryUserAssets` von `funding`                     | Sekundenhandel mit Geldern und gegenseitige Finanzierung/Vertragsübertragung |
| Plattformvertrag                     | Das Vertragsvermögenswertfeld von `queryUserAssets` | Dauervertragsmarge und übertragbarer Saldo                                   |

`queryAccount` Fragen Sie das Margin-Konto der Händlerplattform ab, nicht die Wallet des Händlerbenutzers. Diese Schnittstelle verfügt nicht über `environment`-Parameter und kann nicht als simuliertes Benutzer-Asset abgefragt werden.

Fragen Sie die beiden Plattform-Wallets simulierter Benutzer ab:

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

Schnittstelle: `POST /v1/agent/query-user-assets`. Eine Finanzierung wird nur beantragt, wenn `includeFunding=true`; Standardmäßig wird die ursprüngliche Abfragesemantik für Vertragsvermögenswerte verwendet.

| Antwortfelder                                                                       | Bedeutung                                                                                                                                             |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `walletBalance`, `availableBalance`, `frozenMargin`, `usedMargin`, `isolatedMargin` | Beträge im Zusammenhang mit der Vertragsmappe                                                                                                         |
| `funding.assetCode`                                                                 | Derzeit USDT                                                                                                                                          |
| `funding.availableAmount`, `heldAmount`, `totalAmount`                              | Verfügbare Fördermittel, belegte Mittel und Gesamtbetrag                                                                                              |
| `funding.materialized`                                                              | Ob das Finanzierungskonto realisiert wurde?                                                                                                           |
| `environment`                                                                       | Dieses Feld wird wiedergegeben, wenn die Umgebung explizit übergeben wird. Alte Anfragen, die die Umgebung weglassen, geben dieses Feld nicht zurück. |
| `isSimulatedUser`                                                                   | Kontoklassifizierung; kann die Auswahl der Handelsumgebung nicht ersetzen                                                                             |

Beträge werden als Zeichenfolgen oder `BigDecimal` behandelt, nicht als `float`/`double`.

## Quelle und zugehörige Leitfäden

* [Offizielle Quelle v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Abfrageübersicht und Paginierung](/de/sdk/agent-sdk/java/perpetual-queries)
* [Funding-Wallet](/de/sdk/agent-sdk/java/funding-wallet)
* [Upgrade-Anleitung](/de/sdk/agent-sdk/java/upgrade)