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

# Utenti e risorse

Questa guida è rivolta a **Agent Java SDK `v0.3.0`**, Java 8+ e agli appalti pubblici contrassegnati. Gli esempi vengono eseguiti nel backend di un partner dopo aver inizializzato `client` in [Avvio rapido](/it/sdk/agent-sdk/java/quick-start).

## Prerequisiti di esempio

Gli snippet Java condividono queste importazioni. Inizializza `client` utilizzando Quick Start e ottieni `platformUserId` dall'associazione salvata. Gli ID utente/ordine di esempio devono essere sostituiti con i tuoi valori persistenti.

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

## Regole ID utente

`platformUserId` è l'ID utente esterno 6MM Attualmente è un numero di 10 cifre
stringa, ad esempio:

```text
1188041528
```

Regole:

* Memorizzalo come una stringa, non come un numero intero.
* Non generare, decodificare o dedurre significato da esso.
* Utilizza il tuo ID utente lato partner come `agentUserId`.
* Persistenza della relazione tra `agentUserId`, `platformUserId` e `agentOrderNo`.

## Associa utente

Bind crea o recupera la relazione tra un utente partner e un 6MM
utente della piattaforma. Chiamalo quando un utente entra per la prima volta nel flusso di trading o prima del
primo trasferimento in 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);
```

Campi richiesta:

| Campo         | Tipo   | Necessario | Descrizione                                                                           |
| ------------- | ------ | ---------- | ------------------------------------------------------------------------------------- |
| `agentUserId` | string | SÌ         | ID utente univoco lato partner                                                        |
| `username`    | string | NO         | Nome visualizzato lato partner utilizzato come nickname dell'utente della piattaforma |
| `ext`         | string | NO         | Campo estensione. Si consiglia la stringa JSON                                        |

Campi di risposta:

| Campo             | Tipo    | Descrizione                               |
| ----------------- | ------- | ----------------------------------------- |
| `platformUserId`  | string  | 6MM ID utente esterno                     |
| `bindStatus`      | string  | Di solito `BOUND`                         |
| `isSimulatedUser` | boolean | Indica se si tratta di un utente simulato |

## Interroga l'account del partner

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

Quando `currency` è assente, SDK utilizza `defaultCurrency`.

## Interrogare le risorse utente

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

Campi:

| Campo              | Tipo    | Descrizione                               |
| ------------------ | ------- | ----------------------------------------- |
| `walletBalance`    | string  | Saldo del portafoglio                     |
| `frozenMargin`     | string  | Margine congelato                         |
| `usedMargin`       | string  | Margine utilizzato                        |
| `availableBalance` | string  | Saldo disponibile                         |
| `isolatedMargin`   | string  | Margine isolato                           |
| `version`          | int64   | Versione dell'asset                       |
| `isSimulatedUser`  | boolean | Indica se si tratta di un utente simulato |

### Distinguere i tre portafogli

| portafoglio                         | Fonte del saldo                                       | utilizzo                                                                     |
| ----------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------- |
| Portafoglio utente del commerciante | Il sistema contabile del commerciante                 | Il saldo disponibile dell'utente dal lato commerciante                       |
| Finanziamento della piattaforma     | `queryUserAssets` di `funding`                        | Secondi scambi di fondi e trasferimento reciproco di finanziamenti/contratti |
| Contratto di piattaforma            | Il campo della risorsa contratto di `queryUserAssets` | Margine contrattuale perpetuo e saldo trasferibile                           |

`queryAccount` Interroga il conto di margine della piattaforma del commerciante, non il portafoglio dell'utente del commerciante. Questa interfaccia non dispone di parametri `environment` e non può essere interrogata come risorsa utente simulata.

Interroga i due portafogli della piattaforma degli utenti simulati:

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

Interfaccia: `POST /v1/agent/query-user-assets`. Il finanziamento viene richiesto solo quando `includeFunding=true`; per impostazione predefinita viene utilizzata la semantica della query della risorsa contratto originale.

| campi di risposta                                                                   | Senso                                                                                                                                                    |
| ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `walletBalance`, `availableBalance`, `frozenMargin`, `usedMargin`, `isolatedMargin` | Importi relativi al portafoglio contrattuale                                                                                                             |
| `funding.assetCode`                                                                 | Attualmente USDT                                                                                                                                         |
| `funding.availableAmount`, `heldAmount`, `totalAmount`                              | Fondi disponibili, occupati e importo totale                                                                                                             |
| `funding.materialized`                                                              | Se il conto di finanziamento è stato materializzato?                                                                                                     |
| `environment`                                                                       | Questo campo viene ripetuto quando l'ambiente viene passato esplicitamente; le vecchie richieste che omettono l'ambiente non restituiscono questo campo. |
| `isSimulatedUser`                                                                   | Classificazione dei conti; non può sostituire la selezione dell'ambiente di trading                                                                      |

Gli importi vengono gestiti come stringhe o `BigDecimal`, non `float`/`double`.

## Fonte e guide correlate

* [Fonte ufficiale v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Panoramica delle query e impaginazione](/it/sdk/agent-sdk/java/perpetual-queries)
* [Portafoglio di finanziamento](/it/sdk/agent-sdk/java/funding-wallet)
* [Guida all'aggiornamento](/it/sdk/agent-sdk/java/upgrade)