Cos'è un nonce?

Ultimo aggiornamento: 31 mar 2025

Introduzione

Un nonce è un numero che identifica in modo univoco ogni chiamata agli endpoint privati dell'API REST. Un nonce è richiesto per tutte le chiamate autenticate alla Spot REST API, inclusi gli endpoint di gestione dell'account (come Balance, QueryOrders, QueryLedgers, ecc.), gli endpoint di finanziamento/guadagno (DepositAddresses, DepositStatus, ecc.) e gli endpoint di trading (AddOrder, CancelOrder, ecc.).

Per l'autenticazione REST di Futures, un valore nonce non è richiesto.

Implementazione

Un nonce è implementato come un contatore che deve essere unico e deve aumentare ad ogni chiamata all'API. Ad esempio, assumendo un valore nonce iniziale di 0, i valori nonce validi successivi sarebbero 1, 2, 3, 4 e così via.

Mentre un semplice contatore come quello sopra fornirebbe un nonce valido, un metodo più efficace per generare valori nonce validi è utilizzare un timestamp UNIX in millisecondi (il numero di millisecondi dal 1° gennaio 1970 alle 00:00:00 UTC). L'utilizzo di un timestamp con risoluzione in millisecondi o superiore per il nonce garantisce che tutti i requisiti di un nonce valido siano soddisfatti (unicità e aumento costante) e fornisce valori sufficienti per i trader che effettuano chiamate API rapide e successive (market maker, bot di trading ad alta frequenza, ecc.).

Codice di esempio

Di seguito sono riportati alcuni esempi di come generare valori nonce validi con risoluzione in millisecondi in diversi linguaggi di programmazione:

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

Chiavi API e nonce

Ogni chiave API ha il proprio nonce separato, e il valore nonce è persistente, il che significa che il nonce utilizzato più di recente rimarrà invariato anche se una chiave API non viene utilizzata per un certo periodo di tempo.

Si noti che non è possibile reimpostare il nonce per una specifica chiave API. Nel caso in cui un valore nonce diventi non valido (ad esempio, utilizzando accidentalmente un timestamp UNIX molto lontano nel futuro), la soluzione sarebbe eliminare la chiave API interessata e generare una nuova chiave API, che avrebbe automaticamente un nuovo valore nonce iniziale di 0 (zero).

Hai ancora bisogno di aiuto?