什麼是 Nonce?

上次更新時間: 2025年3月31日

簡介

Nonce 是一個數字,用於唯一識別對 REST API 私人端點的每次呼叫。所有對 現貨 REST API 的已驗證呼叫都需要 Nonce,包括帳戶管理端點(例如 BalanceQueryOrdersQueryLedgers 等)、資金/賺取端點(DepositAddressesDepositStatus 等)以及交易端點(AddOrderCancelOrder 等)。

對於 期貨 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 金鑰,新的 API 金鑰將自動擁有新的起始 Nonce 值 0(零)。

需要更多幫助?