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

# Użytkownicy i zasoby

Ten przewodnik jest przeznaczony dla **Agent Java SDK `v0.3.0`**, Java 8+ i oznaczonych zamówień publicznych. Przykłady działają w zapleczu partnera po inicjalizacji `client` w [Szybki start](/pl/sdk/agent-sdk/java/quick-start).

## Przykładowe wymagania wstępne

Fragmenty Java dzielą ten import. Zainicjuj `client` za pomocą Szybki start i uzyskaj `platformUserId` z zapisanego powiązania. Przykładowe identyfikatory użytkowników/zamówień należy zastąpić własnymi, utrwalonymi wartościami.

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

## Zasady dotyczące identyfikatora użytkownika

`platformUserId` to 6MM identyfikator użytkownika zewnętrznego. Obecnie jest to 10-cyfrowa liczba
ciąg, na przykład:

```text
1188041528
```

Zasady:

* Zapisz go jako ciąg, a nie jako liczbę całkowitą.
* Nie generuj, nie dekoduj ani nie wnioskuj z tego znaczenia.
* Użyj własnego identyfikatora użytkownika po stronie partnera jako `agentUserId`.
* Utrzymaj relację między `agentUserId`, `platformUserId` i `agentOrderNo`.

## Powiąż użytkownika

Bind tworzy lub pobiera relację pomiędzy użytkownikiem-partnerem a 6MM
użytkownik platformy. Wywołaj go, gdy użytkownik po raz pierwszy wejdzie w przepływ transakcji lub przed
pierwszy przelew do 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);
```

Pola żądania:

| Pole          | Typ    | Wymagany | Opis                                                                               |
| ------------- | ------ | -------- | ---------------------------------------------------------------------------------- |
| `agentUserId` | string | Tak      | Unikalny identyfikator użytkownika po stronie partnera                             |
| `username`    | string | NIE      | Nazwa wyświetlana po stronie partnera używana jako pseudonim użytkownika platformy |
| `ext`         | string | NIE      | Pole rozszerzenia. Zalecany jest ciąg JSON.                                        |

Pola odpowiedzi:

| Pole              | Typ     | Opis                                       |
| ----------------- | ------- | ------------------------------------------ |
| `platformUserId`  | string  | 6MM identyfikator użytkownika zewnętrznego |
| `bindStatus`      | string  | Zwykle `BOUND`                             |
| `isSimulatedUser` | boolean | Czy jest to symulowany użytkownik          |

## Zapytanie o konto partnera

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

Gdy `currency` jest nieobecne, SDK używa `defaultCurrency`.

## Zapytanie o zasoby użytkownika

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

Pola:

| Pole               | Typ     | Opis                              |
| ------------------ | ------- | --------------------------------- |
| `walletBalance`    | string  | Saldo portfela                    |
| `frozenMargin`     | string  | Zamrożony margines                |
| `usedMargin`       | string  | Wykorzystany margines             |
| `availableBalance` | string  | Dostępne saldo                    |
| `isolatedMargin`   | string  | Izolowany margines                |
| `version`          | int64   | Wersja aktywów                    |
| `isSimulatedUser`  | boolean | Czy jest to symulowany użytkownik |

### Rozróżnij trzy portfele

| portfel                               | Źródło równowagi                             | używać                                                      |
| ------------------------------------- | -------------------------------------------- | ----------------------------------------------------------- |
| Własny portfel użytkownika sprzedawcy | Własny system księgowy Sprzedawcy            | Dostępne saldo użytkownika po stronie sprzedawcy            |
| Finansowanie platformy                | `queryUserAssets` z `funding`                | Fundusze handlu sekundami i wzajemny transfer środków/umowy |
| Umowa Platformy                       | Pole aktywów kontraktowych `queryUserAssets` | Marża kontraktowa bezterminowa i saldo zbywalne             |

`queryAccount` Zapytaj o konto depozytu zabezpieczającego platformy sprzedawcy, a nie o portfel użytkownika sprzedawcy. Ten interfejs nie ma parametrów `environment` i nie można go sprawdzać jako symulowanego zasobu użytkownika.

Zapytaj dwa portfele platformy symulowanych użytkowników:

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

Interfejs: `POST /v1/agent/query-user-assets`. O finansowanie wnioskuje się tylko wtedy, gdy `includeFunding=true`; Domyślnie używana jest semantyka zapytań o zasobach kontraktu.

| pola odpowiedzi                                                                     | oznaczający                                                                                                                   |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `walletBalance`, `availableBalance`, `frozenMargin`, `usedMargin`, `isolatedMargin` | Kwoty powiązane z portfelem kontraktowym                                                                                      |
| `funding.assetCode`                                                                 | Obecnie USDT                                                                                                                  |
| `funding.availableAmount`, `heldAmount`, `totalAmount`                              | Dostępne środki, zajęte i całkowita kwota                                                                                     |
| `funding.materialized`                                                              | Czy konto finansowania zostało zmaterializowane?                                                                              |
| `environment`                                                                       | To pole jest powtarzane, gdy środowisko jest przekazywane jawnie; stare żądania pomijające środowisko nie zwracają tego pola. |
| `isSimulatedUser`                                                                   | Klasyfikacja konta; nie może zastąpić wyboru środowiska handlowego                                                            |

Kwoty są obsługiwane jako ciągi znaków lub `BigDecimal`, a nie `float`/`double`.

## Źródło i powiązane przewodniki

* [Oficjalne źródło v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Przegląd zapytań i paginacja](/pl/sdk/agent-sdk/java/perpetual-queries)
* [Portfel finansowania](/pl/sdk/agent-sdk/java/funding-wallet)
* [Przewodnik po aktualizacji](/pl/sdk/agent-sdk/java/upgrade)