什么是 Nonce?

上次更新时间: 2025年3月31日

简介

Nonce 是一个数字,用于唯一标识对 REST API 私有端点的每次调用。所有对 现货 REST API 的认证调用都需要 Nonce,包括账户管理端点(例如 余额查询订单查询账本 等)、资金/收益端点(充值地址充值状态 等)以及交易端点(添加订单取消订单 等)。

对于 期货 REST 认证,Nonce 值需要。

实现

Nonce 被实现为一个计数器,每次调用 API 时都必须是唯一的且必须递增。例如,假设起始 Nonce 值为 0,则后续有效的 Nonce 值将是 1、2、3、4 等。

虽然上述简单的计数器可以提供有效的 Nonce,但生成有效 Nonce 值的更有效方法是使用毫秒级的 UNIX 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数)。使用毫秒或更高分辨率的时间戳作为 Nonce 可以确保满足有效 Nonce 的所有要求(唯一性且始终递增),并为进行快速连续 API 调用的交易者(做市商、高频交易机器人等)提供足够的值。

示例代码

以下是在不同编程语言中生成有效毫秒级 Nonce 值的一些示例:

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 密钥和 Nonce

每个 API 密钥都有自己独立的 Nonce,并且 Nonce 值是持久的,这意味着即使 API 密钥在一段时间内未使用,最近使用的 Nonce 也将保持不变。

请注意,无法重置特定 API 密钥的 Nonce。如果 Nonce 值变得无效(例如意外使用了未来很远的 UNIX 时间戳),解决方案是删除受影响的 API 密钥并 生成新的 API 密钥,这将自动获得一个新的起始 Nonce 值 0(零)。

需要更多帮助吗?