Co je nonce?

Naposledy aktualizováno: 31. března 2025

Úvod

Nonce je číslo, které jednoznačně identifikuje každé volání soukromých koncových bodů REST API. Nonce je vyžadováno pro všechna ověřená volání Spot REST API, včetně koncových bodů pro správu účtu (jako jsou Balance, QueryOrders, QueryLedgers atd.), koncových bodů pro financování/výdělky (DepositAddresses, DepositStatus atd.) a koncových bodů pro obchodování (AddOrder, CancelOrder atd.).

Pro Futures REST authentication hodnota nonce není vyžadována.

Implementace

Nonce je implementováno jako čítač, který musí být unikátní a musí se zvyšovat s každým voláním API. Například, za předpokladu počáteční hodnoty nonce 0, by následné platné hodnoty nonce byly 1, 2, 3, 4 a tak dále.

Zatímco jednoduchý čítač, jako je výše uvedený, by poskytoval platné nonce, efektivnější metodou generování platných hodnot nonce je použití UNIX časového razítka v milisekundách (počet milisekund od 1. ledna 1970 v 00:00:00 UTC). Použití časového razítka s rozlišením milisekund nebo vyšším pro nonce zaručuje splnění všech požadavků na platné nonce (jedinečnost a neustálé zvyšování) a poskytuje dostatečné hodnoty pro obchodníky provádějící rychlá po sobě jdoucí volání API (tvůrci trhu, vysokofrekvenční obchodní boti atd.).

Příklad kódu

Níže jsou uvedeny příklady, jak generovat platné hodnoty nonce s rozlišením milisekund v různých programovacích jazycích:

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 klíče a nonces

Každý API klíč má své vlastní oddělené nonce a hodnota nonce je perzistentní, což znamená, že naposledy použité nonce zůstane nezměněno, i když API klíč není po nějakou dobu používán.

Vezměte prosím na vědomí, že není možné resetovat nonce pro konkrétní API klíč. V případě, že se hodnota nonce stane neplatnou (například náhodným použitím UNIX časového razítka daleko do budoucnosti), řešením by bylo smazat dotčený API klíč a vygenerovat nový API klíč, který by automaticky měl novou počáteční hodnotu nonce 0 (nula).

Potřebujete další pomoc?