¿Qué es un nonce?

Última actualización: 31 mar 2025

Introducción

Un nonce es un número que identifica de forma única cada llamada a los puntos finales privados de la API REST. Se requiere un nonce para todas las llamadas autenticadas a la API REST de Spot, incluidos los puntos finales de gestión de cuentas (como Balance, QueryOrders, QueryLedgers, etc.), los puntos finales de financiación/ganancias (DepositAddresses, DepositStatus, etc.) y los puntos finales de trading (AddOrder, CancelOrder, etc.).

Para la autenticación REST de Futures, un valor nonce no es necesario.

Implementación

Un nonce se implementa como un contador que debe ser único y debe aumentar con cada llamada a la API. Por ejemplo, asumiendo un valor nonce inicial de 0, los valores nonce válidos subsiguientes serían 1, 2, 3, 4, y así sucesivamente.

Aunque un contador simple como el anterior proporcionaría un nonce válido, un método más efectivo para generar valores nonce válidos es usar una marca de tiempo UNIX en milisegundos (el número de milisegundos desde el 1 de enero de 1970 a las 00:00:00 UTC). El uso de una marca de tiempo de milisegundos o de mayor resolución para el nonce garantiza que se cumplan todos los requisitos de un nonce válido (unicidad y aumento constante), y proporciona valores suficientes para los traders que realizan llamadas API sucesivas rápidas (creadores de mercado, bots de trading de alta frecuencia, etc.).

Código de ejemplo

A continuación, se muestran algunos ejemplos de cómo generar valores nonce válidos con resolución de milisegundos en diferentes lenguajes de programación:

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

Claves API y nonces

Cada clave API tiene su propio nonce separado, y el valor nonce es persistente, lo que significa que el nonce utilizado más recientemente permanecerá sin cambios incluso si una clave API no se utiliza durante algún tiempo.

Tenga en cuenta que no es posible restablecer el nonce para una clave API específica. En el caso de que un valor nonce se vuelva inválido (como usar accidentalmente una marca de tiempo UNIX muy lejana en el futuro), la solución sería eliminar la clave API afectada y generar una nueva clave API, que automáticamente tendría un nuevo valor nonce inicial de 0 (cero).

¿Necesita más ayuda?