Wat is een nonce?

Laatst bijgewerkt: 31 mrt 2025

Introductie

Een nonce is een nummer dat elke aanroep naar de privé-eindpunten van de REST API uniek identificeert. Een nonce is vereist voor alle geauthenticeerde aanroepen naar de Spot REST API, inclusief de eindpunten voor accountbeheer (zoals Balance, QueryOrders, QueryLedgers, enz.), de eindpunten voor financiering/verdienen (DepositAddresses, DepositStatus, enz.) en de handels-eindpunten (AddOrder, CancelOrder, enz.).

Voor Futures REST-authenticatie is een nonce-waarde niet vereist.

Implementatie

Een nonce wordt geïmplementeerd als een teller die uniek moet zijn en moet toenemen bij elke aanroep naar de API. Als we bijvoorbeeld uitgaan van een startwaarde van 0 voor de nonce, zouden de volgende geldige nonce-waarden 1, 2, 3, 4, enzovoort zijn.

Hoewel een eenvoudige teller zoals hierboven een geldige nonce zou opleveren, is een effectievere methode om geldige nonce-waarden te genereren het gebruik van een UNIX-tijdstempel in milliseconden (het aantal milliseconden sinds 1 januari 1970 om 00:00:00 UTC). Het gebruik van een tijdstempel met milliseconde- of hogere resolutie voor de nonce garandeert dat aan alle vereisten van een geldige nonce wordt voldaan (uniciteit en altijd toenemend), en biedt voldoende waarden voor traders die snel opeenvolgende API-aanroepen doen (market makers, high-frequency trading bots, enz.).

Voorbeeldcode

Hieronder volgen enkele voorbeelden van hoe geldige nonce-waarden met milliseconde-resolutie kunnen worden gegenereerd in verschillende programmeertalen:

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-sleutels en nonces

Elke API-sleutel heeft zijn eigen afzonderlijke nonce, en de nonce-waarde is persistent, wat betekent dat de meest recent gebruikte nonce ongewijzigd blijft, zelfs als een API-sleutel enige tijd niet wordt gebruikt.

Merk op dat het niet mogelijk is om de nonce voor een specifieke API-sleutel te resetten. In het geval dat een nonce-waarde ongeldig wordt (zoals het per ongeluk gebruiken van een UNIX-tijdstempel ver in de toekomst), zou de oplossing zijn om de betreffende API-sleutel te verwijderen en een nieuwe API-sleutel te genereren, die automatisch een nieuwe startwaarde van 0 (nul) voor de nonce zou hebben.

Meer hulp nodig?