Was ist eine Nonce?

Zuletzt aktualisiert: 31. März 2025

Einführung

Eine Nonce ist eine Zahl, die jeden Aufruf an die privaten Endpunkte der REST-API eindeutig identifiziert. Eine Nonce ist für alle authentifizierten Aufrufe an die Spot REST API erforderlich, einschließlich der Endpunkte für die Kontoverwaltung (wie z. B. Balance, QueryOrders, QueryLedgers usw.), der Einzahlungs-/Verdienst-Endpunkte (DepositAddresses, DepositStatus usw.) und der Handels-Endpunkte (AddOrderCancelOrder usw.).

Für die Futures REST-Authentifizierung ist ein Nonce-Wert nicht erforderlich.

Implementierung

Eine Nonce wird als Zähler implementiert, der eindeutig sein und mit jedem API-Aufruf erhöht werden muss. Wenn man beispielsweise einen Start-Nonce-Wert von 0 annimmt, wären nachfolgende gültige Nonce-Werte 1, 2, 3, 4 usw.

Während ein einfacher Zähler wie der oben genannte eine gültige Nonce liefern würde, ist eine effektivere Methode zur Generierung gültiger Nonce-Werte die Verwendung eines UNIX-Zeitstempels in Millisekunden (die Anzahl der Millisekunden seit dem 1. Januar 1970 um 00:00:00 UTC). Die Verwendung eines Zeitstempels mit Millisekunden- oder höherer Auflösung für die Nonce garantiert, dass alle Anforderungen an eine gültige Nonce erfüllt werden (Eindeutigkeit und ständiges Erhöhen), und bietet ausreichende Werte für Trader, die schnelle aufeinanderfolgende API-Aufrufe tätigen (Market Maker, Hochfrequenz-Trading-Bots usw.).

Beispielcode

Im Folgenden finden Sie einige Beispiele, wie gültige Nonce-Werte mit Millisekundenauflösung in verschiedenen Programmiersprachen generiert werden können:

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

API-Schlüssel und Nonces

Jeder API-Schlüssel hat seine eigene separate Nonce, und der Nonce-Wert ist persistent, was bedeutet, dass der zuletzt verwendete Nonce-Wert unverändert bleibt, auch wenn ein API-Schlüssel für einige Zeit nicht verwendet wird.

Beachten Sie, dass es nicht möglich ist, die Nonce für einen bestimmten API-Schlüssel zurückzusetzen. Falls ein Nonce-Wert ungültig wird (z. B. durch versehentliche Verwendung eines UNIX-Zeitstempels weit in der Zukunft), wäre die Lösung, den betroffenen API-Schlüssel zu löschen und einen neuen API-Schlüssel zu generieren, der automatisch einen neuen Start-Nonce-Wert von 0 (null) hätte.

Brauchst du weitere Hilfe?