Código ejemplo (#1)
Introducción
Un nonce es un número que identifica de forma única cada llamada a los endpoints privados de REST API (https://docs.kraken.com/rest/). Se requiere un nonce para todas las llamadas a la REST API, incluidos los endpoints de gestión de la cuenta (tales como Balance, Consultar órdenes, Consultar ledgers, etc.), los endpoints de depósitos y retiros/staking (Direcciones de depósito, Estado de depósitos, etc.), y los endpoints de trading (Crear orden, Cancelar orden, etc.).
Implementación
Un nonce se implementa como un contador que debe ser único y aumentar con cada llamada a la API. Por ejemplo, asumiendo que el valor inicial de un nonce es 0, los valores nonce subsiguientes válidos serían 1, 2, 3, 4, y así sucesivamente.
Mientras un simple contador como el anterior proporcionaría un nonce válido, un método más efectivo para generar valores de nonce válidos es utilizar una marca de tiempo UNIX en milisegundos (el número de milisegundos desde el primero de enero de 1970 a las 00:00:00 UTC). El uso de una marca de tiempo en milisegundos, o una resolución más alta para el nonce, garantiza que se cumplan todos los requisitos de un nonce válido (único y siempre en aumento), y proporciona valores suficientes para los traders que realizan llamadas de API rápidas y sucesivas (creadores de mercado, bots de trading de alta frecuencia, etc.).
Código ejemplo
Los siguientes son algunos ejemplos de cómo generar valores de nonce con resolución en milisegundos válidos 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 único, y el valor del nonce es constante, lo que significa que el nonce utilizado más recientemente seguirá siendo el mismo incluso si no se usa una clave API 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 de nonce resulte inválido (como usar accidentalmente una marca de tiempo de UNIX en un futuro lejano), la solución sería eliminar la clave API afectada y generar una nueva clave API (https://support.kraken.com/hc/articles/360000919966-How-to-generate-an-API-key-pair-), la cual tendría automáticamente un valor de nonce inicial nuevo de 0 (cero).