Найти тему
Записки Бакулина

Подключение к тестовой сети Binance по API

Оглавление

В процессе работы над интеграцией с API Binance вам предстоит делать тестирование и дебаг своего кода. Для этого подходит публичный тестовый стенд Binance.

стартовая страница Binance Testnet
стартовая страница Binance Testnet

Регистрируемся там через свой аккаунт на Github.

оказывается я уже 4 года как зарегистрировался
оказывается я уже 4 года как зарегистрировался

Так выгдядит стартовая страница для авторизованного через Github пользователя.

-3


Теперь можем сгенерировать пару ключей для подключения к API.


Первый способ,
Generate HMAC_SHA256 Key, предполагает, что Binance сам сгенерирует пару RSA ключей, сохранит у себя публичный ключ и отдаст вам приватный.


Второй способ,
Register RSA Key, предполагает, что вы самостоятельно сгенерируете ключи по инструкции из раздела FAQ ниже на той же странице и загрузите Бинансу публичный ключ.

Способ первый: Бинанс генерирует HMAC ключи

Переходим по ссылке Generate HMAC_SHA256 Key, придумываем название ключа и нажимаем Generate.

-4

Получаем публичный ключ (API key), которым Бинанс будет нас идентифицировать, и секретный ключ (Secret Key), которым мы будем подписывать свои сообщения. Обязательно сохраняем оба ключа, никому не показываем и нигде не светим. Даже тестовые.

-5

Теперь возвращаемся на стартовую страницу и видим там наш сгенерированный ключ Spot-monitor-bot. Если ключ был скомпрометирован или вы попросту забыли секретную часть, этот ключ можно отозвать (удалить), нажав Revoke и сгенерировать новый.

-6

Теперь давайте проверим наш новый ключ. Создадим небольшой bash скрипт, который шифрует параметры запроса и делает запрос к /api/v3/account.

bash для проверки HMAC_SHA256 ключей для Binance Testnet

Сохраните скрипт в bash файл test.sh и дайте ему права на запуск (chmod a+x test.sh). После запуска этого файла вы увидите похожий ответ:

$ ./test.sh
[GET] api/v3/account?&timestamp=1680649738000
{"makerCommission":0,"takerCommission":0,"buyerCommission":0,"sellerCommission":0,"commissionRates":{"maker":"0.00000000","taker":"0.00000000","buyer":"0.00000000","seller":"0.00000000"},"canTrade":true,"canWithdraw":false,"canDeposit":false,"brokered":false,"requireSelfTradePrevention"...

Значит наши API key и подпись прошли проверку.

Способ второй: сами генерируем RSA ключи

На стартовой странице спускаемся в раздел FAQ How can I use RSA API Keys? и запускаем в терминале всего 2 команды. Для генерации приватного RSA ключа:

$ openssl genrsa -out test-prv-key.pem 2048

И для генерации по нему публичного ключа:

$ openssl rsa -in test-prv-key.pem -pubout -outform PEM -out test-pub-key.pem

Копируем содержимое файла с публичным ключем test-pub-key.pem и переходим на страницу добавления RSA ключа https://testnet.binance.vision/key/register. Там придумываем название, вставляем содержимое ключа в форму и жмем Register.

-7

Не забываем скопировать API key так как он отличается для каждого ключа.

-8

Попробуем 2-ой ключ в действии. Создадим похожий bash скрипт test-rsa.sh, который делает то же самое, но на этот раз использует API key от RSA ключа и подпись параметров делается приватным ключем из файла:

bash для проверки RSA ключей для Binance Testnet

Ответ от запуска будет аналогичным.

$ ./test-rsa.sh
[GET] api/v3/account?&timestamp=1680651566000
{"makerCommission":0,"takerCommission":0,"buyerCommission":0,"sellerCommission":0,"commissionRates":{"maker":"0.00000000","taker":"0.00000000","buyer":"0.00000000","seller":"0.00000000"},"canTrade":true,"canWithdraw":false,"canDeposit":false,"brokered":false,"requireSelfTradePrevention":false, ...

Вот так мы получили пары ключей для подключения к тестовой сети Binance. Спецификация Binance API находится здесь https://binance-docs.github.io/apidocs/spot/en/#change-log.

Примеры подписи для разных языков программирования можно найти тут https://github.com/binance/binance-signature-examples.