Qu'est-ce qu'un nonce ?

Dernière mise à jour : 31 mars 2025

Introduction

Un nonce est un nombre qui identifie de manière unique chaque appel aux points de terminaison privés de l'API REST. Un nonce est requis pour tous les appels authentifiés à l'API REST Spot, y compris les points de terminaison de gestion de compte (tels que Balance, QueryOrders, QueryLedgers, etc.), les points de terminaison de financement/gain (DepositAddresses, DepositStatus, etc.) et les points de terminaison de trading (AddOrderCancelOrder, etc.).

Pour l'authentification REST Futures, une valeur de nonce n'est pas requise.

Implémentation

Un nonce est implémenté comme un compteur qui doit être unique et doit augmenter à chaque appel à l'API. Par exemple, en supposant une valeur de nonce de départ de 0, les valeurs de nonce valides suivantes seraient 1, 2, 3, 4, et ainsi de suite.

Bien qu'un simple compteur comme celui ci-dessus fournirait un nonce valide, une méthode plus efficace pour générer des valeurs de nonce valides consiste à utiliser un horodatage UNIX en millisecondes (le nombre de millisecondes depuis le 1er janvier 1970 à 00:00:00 UTC). L'utilisation d'un horodatage en millisecondes ou à plus haute résolution pour le nonce garantit que toutes les exigences d'un nonce valide sont satisfaites (unicité et augmentation constante), et fournit des valeurs suffisantes pour les traders effectuant des appels API successifs rapides (teneurs de marché, robots de trading haute fréquence, etc.).

Exemple de code

Voici quelques exemples de la façon de générer des valeurs de nonce valides avec une résolution en millisecondes dans différents langages de programmation :

Python

api_nonce = str(int(time.time()*1000))

JavaScript

var api_nonce = Date.now().toString()

PHP

$api_nonce = explode(' ', microtime());
$api_nonce = $api_nonce[1].substr($api_nonce[0], 2, 3);

Clés API et nonces

Chaque clé API possède son propre nonce distinct, et la valeur du nonce est persistante, ce qui signifie que le nonce le plus récemment utilisé restera inchangé même si une clé API n'est pas utilisée pendant un certain temps.

Notez qu'il n'est pas possible de réinitialiser le nonce pour une clé API spécifique. Dans le cas où une valeur de nonce deviendrait invalide (par exemple, en utilisant accidentellement un horodatage UNIX trop éloigné dans le futur), la solution consisterait à supprimer la clé API affectée et à générer une nouvelle clé API, qui aurait automatiquement une nouvelle valeur de nonce de départ de 0 (zéro).

Besoin d’aide supplémentaire ?