Nonce nedir?

Son güncelleme: 31 Mar 2025

Giriş

Nonce, REST API özel uç noktalarına yapılan her çağrıyı benzersiz şekilde tanımlayan bir sayıdır. Nonce, hesap yönetimi uç noktaları (Bakiye, Siparişleri Sorgula, Defterleri Sorgula vb.), fonlama/kazanç uç noktaları (Para Yatırma Adresleri, Para Yatırma Durumu vb.) ve işlem uç noktaları (Sipariş Ekle, Sipariş İptal Et vb.) dahil olmak üzere Spot REST API'ye yapılan tüm kimliği doğrulanmış çağrılar için gereklidir.

Vadeli İşlemler REST kimlik doğrulaması için bir nonce değeri gerekli değildir.

Uygulama

Nonce, benzersiz olması ve API'ye yapılan her çağrıda artması gereken bir sayaç olarak uygulanır. Örneğin, başlangıç nonce değeri 0 ise, sonraki geçerli nonce değerleri 1, 2, 3, 4 vb. olacaktır.

Yukarıdaki gibi basit bir sayaç geçerli bir nonce sağlarken, geçerli nonce değerleri oluşturmanın daha etkili bir yöntemi, milisaniye cinsinden bir UNIX zaman damgası kullanmaktır (1 Ocak 1970, 00:00:00 UTC'den bu yana geçen milisaniye sayısı). Nonce için milisaniye veya daha yüksek çözünürlüklü bir zaman damgası kullanmak, geçerli bir nonce'un tüm gereksinimlerinin (benzersizlik ve her zaman artma) karşılandığını garanti eder ve hızlı ardışık API çağrıları yapan yatırımcılar (piyasa yapıcılar, yüksek frekanslı işlem botları vb.) için yeterli değerler sağlar.

Örnek kod

Aşağıda, farklı programlama dillerinde geçerli milisaniye çözünürlüklü nonce değerlerinin nasıl oluşturulacağına dair bazı örnekler verilmiştir:

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 anahtarları ve noncelar

Her API anahtarının kendi ayrı nonce değeri vardır ve nonce değeri kalıcıdır, yani bir API anahtarı bir süre kullanılmasa bile en son kullanılan nonce değişmeden kalacaktır.

Belirli bir API anahtarı için nonce'u sıfırlamanın mümkün olmadığını unutmayın. Bir nonce değeri geçersiz hale gelirse (gelecekteki bir UNIX zaman damgasının yanlışlıkla kullanılması gibi), çözüm etkilenen API anahtarını silmek ve otomatik olarak yeni bir başlangıç nonce değeri olan 0 (sıfır) ile yeni bir API anahtarı oluşturmak olacaktır.

Daha fazla yardıma mı ihtiyacınız var?