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

# Grand livre des contrats

Ce guide cible **Agent Java SDK `v0.3.0`**, Java 8+ et le contrat public étiqueté. Exemples exécutés dans un backend partenaire après l'initialisation de `client` dans [Démarrage rapide](/fr/sdk/agent-sdk/java/quick-start).

## Exemples de prérequis

Les extraits de code Java partagent ces importations. Initialisez `client` à l'aide de Quick Start et obtenez `platformUserId` à partir de la liaison enregistrée. Les exemples d’ID utilisateur/commande doivent être remplacés par vos propres valeurs persistantes.

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

## `listPerpetualLedger`

Modèle de demande : `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);
```

### Champs de requête

| Champ             | Java tapez               | Requis       | Signification                                                                                                                                                                                       |
| ----------------- | ------------------------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `platformUserIds` | `java.util.List<String>` | Conditionnel | 1 à 100 identifiants publics uniques ; requis pour les exécutions et les commandes conditionnelles. Omettre les requêtes prises en charge pour la portée directe du lecteur ; \[] n'est pas valide. |
| `assetType`       | `String`                 | Non          | Classification des actifs telle que renvoyée par le grand livre ; ne supposez pas USDT.                                                                                                             |
| `changeType`      | `String`                 | Non          | Type de changement commercial du grand livre, préservant les valeurs sources.                                                                                                                       |
| `startTime`       | `Long`                   | Non          | Millisecondes Unix incluses ; utilisez une fenêtre d'historique UTC fixe.                                                                                                                           |
| `endTime`         | `Long`                   | Non          | Millisecondes Unix exclusives.                                                                                                                                                                      |
| `limit`           | `Integer`                | Non          | Par défaut 500 ; 1 à 1000.                                                                                                                                                                          |
| `cursor`          | `String`                 | Non          | Utilisez le nextCursor renvoyé avec des filtres inchangés ; arrêter lorsque hasMore est faux.                                                                                                       |

L'exemple lit une page. Pour les champs obligatoires, la portée du joueur, la sémantique du filtre, la limite, le curseur et les tentatives limitées, suivez [Présentation de la requête](/fr/sdk/agent-sdk/java/perpetual-queries). Gardez tous les filtres inchangés pendant la pagination ; n’interprètez pas une erreur comme un résultat vide.

## Registres du grand livre des contrats

Interface : `account/ledger`. Les données renvoyées contiennent uniquement les 11 champs métier suivants et ne portent pas les indicateurs booléens d'ordre.

| Champ `data`          | taper   | signification                                                                                                                                                                                    |
| --------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ledgerId`            | string  | Le grand livre source enregistre l'ID de transaction ; la même transaction peut être divisée en plusieurs détails                                                                                |
| `symbol`              | string  | Paire de trading associée, peut être omise si elle n'est pas liée                                                                                                                                |
| `assetType`           | string  | Type d'actif, enregistré par valeur source ; utilisé pour la classification des actifs, non déduit par défaut USDT                                                                               |
| `changeType`          | string  | Type d'activité de changement de compte, enregistré en fonction de la valeur source, telle que les frais de traitement, les profits et pertes, le transfert ; peut être filtré par le même champ |
| `amount`              | string  | Le montant de la modification de ce détail, un nombre positif indique une augmentation, un nombre négatif indique une diminution ; la précision est conservée                                    |
| `walletBalanceBefore` | string  | Le solde du portefeuille avant le changement de compte enregistré dans ce détail                                                                                                                 |
| `walletBalanceAfter`  | string  | Le solde du portefeuille après le changement de compte enregistré dans ce détail                                                                                                                 |
| `frozenBalanceBefore` | string  | Le solde gelé enregistré avant le changement de compte est enregistré dans ce détail                                                                                                             |
| `frozenBalanceAfter`  | string  | Le solde gelé enregistré dans ce détail après le changement de compte                                                                                                                            |
| `referenceId`         | string  | Numéro d'entreprise associé ; interprété comme changeType et ne peut pas être uniformément considéré comme un ordre orderId ; "0" indique que la source n'a pas de numéro associé valide         |
| `createdAt`           | integer | Temps de création des détails de modification du compte, millisecondes ; ce champ est utilisé pour le filtrage temporel dans cette interface                                                     |

Utilisez le solde avant et après le changement de compte renvoyé par l'interface. Différents changeType ont une sémantique différente, et on ne peut pas supposer que chaque montant est égal à walletBalanceAfter − walletBalanceBefore. L'affichage/le résumé des enregistrements du grand livre doit conserver le type et l'identité détaillée.

Voici un exemple du format, utilisant un identifiant et un montant fictifs :

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

## Exemple d'enveloppe de réponse

Il s'agit d'une page vide illustrative, et non d'un échantillon d'une transaction terminée. Les tableaux de champs spécifiques aux ressources ci-dessus décrivent les `items[].data` renseignés.

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

## Source et guides associés

* [Source officielle v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Présentation et pagination des requêtes](/fr/sdk/agent-sdk/java/perpetual-queries)
* [Portefeuille de financement](/fr/sdk/agent-sdk/java/funding-wallet)
* [Guide de mise à niveau](/fr/sdk/agent-sdk/java/upgrade)