Создание ключа API (#1)
Настройка ключа API (разрешения/настройки) (#2)
Использование ключа API (#3)
Двухфакторная аутентификация (2FA) ключа API (#4)
Ключи API – это один из основных компонентов аутентификации API, они представляют собой API-эквивалент имени пользователя и пароля для аккаунта Kraken.
Ключи API необходимы для вызова любых конечных точек API для конкретного аккаунта (частных), а именно конечных точек управления аккаунтом (https://docs.kraken.com/rest/#operation/getAccountBalance), торговли (https://docs.kraken.com/rest/#operation/addOrder), перевода (https://docs.kraken.com/rest/#operation/getDepositMethods) и стейкинга (https://docs.kraken.com/rest/#operation/stake). Ключи API не требуются для вызова конечных точек API для рыночных данных (https://docs.kraken.com/rest/#operation/getTickerInformation) (публичных), так как конечные точки для рыночных данных не связаны с каким-либо определенным аккаунтом Kraken.
Ключи API могут использоваться любым программным обеспечением, которое взаимодействует с нашими рынками и аккаунтами, например нашими клиентами командной строки REST API (https://support.kraken.com/hc/en-us/articles/360025180232), некоторыми мобильными приложениями, трейдинговыми платформами, такими как Cryptowatch (https://cryptowat.ch/), сторонними торговыми ботами (https://support.kraken.com/hc/en-us/articles/360001373983) и множеством других продуктов или услуг.
Создание ключа API
Войдите в свой аккаунт Kraken (https://www.kraken.com/sign-in)
Откройте меню аккаунта (нажмите на свое имя в правом верхнем углу страницы)
Выберите пункт Безопасность
Выберите пункт API
Нажмите на ссылку Добавить ключ (вы сможете настроить ключ API на следующих этапах)
Настройка ключа API
Ключи API имеют несколько параметров и опций, которые необходимо настроить перед использованием ключа API, в частности имя или описание и разрешения на доступ.
Описание ключа
Описание ключа – это, по сути, имя ключа API, и оно может быть практически любым по вашему усмотрению, при условии что описание уникально (отличается от описаний любых других ключей API в рамках одного аккаунта).
По умолчанию описание ключа будет представлять собой подобное значение: api-key-1605316109249. Это описание по умолчанию можно сохранить или заменить более описательным вариантом (например, «Торговый ключ», «Ключ управления аккаунтом», «Ключ Python API 6» или «Ключ мобильного приложения»).
Разрешения ключа
Разрешения ключа определяют, какие конечные точки API для конкретного аккаунта (частные) разрешено запрашивать для ключа API:
Средства
Запрос средств – требуется для конечных точек API, которые запрашивают информацию о балансе аккаунта, например Balance и TradeBalance.
Перевод средств – требуется для конечных точек перевода, связанных с пополнением средств, например DepositMethods и DepositAddresses.
Вывод средств – требуется для конечных точек перевода, связанных со выводом средств, например WithdrawInfo, Withdraw и WithdrawCancel.
Ордера и сделки
Запрос открытых ордеров и сделок – требуется для конечных точек API, которые запрашивают уже существующие ордера и маржинальные позиции, например OpenOrders, QueryOrders и OpenPositions.
Запрос закрытых ордеров и сделок – требуется для конечных точек, которые запрашивают предыдущие закрытые или отмененные ордера и маржинальные позиции, например ClosedOrders, QueryOrders и QueryTrades.
Изменение ордеров – требуется для конечных точек торговли, которые размещают новые ордера, таких как AddOrder, EditOrder и AddOrderBatch.
Отмена/закрытие ордеров – требуется для конечных точек торговли, которые отменяют открытые или отложенные ордера, например CancelOrder, CancelAll и CancelOrderBatch.
Другое
Запрос записей журнала – требуется для конечных точек API, которые извлекают исторические данные аккаунта из леджера аккаунта, а именно Ledgers и QueryLedgers.
Экспорт данных – требуется для конечных точек, которые экспортируют (загружают) леджер аккаунта, а именно AddExport, RetrieveExport, ExportStatus и RemoveExport.
Доступ к API WebSockets – требуется для получения токена аутентификации для WebSocket API через конечную точку GetWebSocketsToken.
В качестве примера правильного использования разрешений ключа API рассмотрим ключ API, предоставленный третьей стороне для торговых целей. Для такого ключа API определенно потребуются разрешения на изменение ордеров и отмену/закрытие ордеров. Возможно, потребуется разрешение на запрос открытых ордеров и сделок, но почти наверняка не потребуется разрешение на вывод средств.
Правильная настройка разрешений позволит клиенту API совершать сделки в аккаунте, но не позволит клиенту API получить доступ к какой-либо информации об аккаунте или выполнить задачи по переводам.
Дополнительные настройки
Остальные настройки ключа API требуются только для более расширенных конфигураций, поэтому их можно оставить со значениями по умолчанию:
Nonce Window – это параметр, используемый для устранения неполадок в сети, которые могут привести к тому, что запросы API будут приходить в неправильном порядке. Устанавливается короткий промежуток времени (1 секунда, 10 секунд и т. д.), в течение которого запросы API с недопустимым значением одноразового случайного числа (если значение одноразового случайного числа меньше, чем ранее использовавшееся значение одноразового случайного числа) не будут вызывать ошибку одноразового случайного числа.
Белый список IP-адресов – это функция безопасности, которая ограничивает использование ключа API для определенных IP-адресов на стороне клиента.
Срок действия ключа может использоваться для создания ключа API, который работает только в течение определенного периода времени, например ключа, который действителен только в течение одной недели.
Дата/время начала/окончания запроса – это параметр, который ограничивает запросы исторических данных аккаунта определенным периодом времени (например ключ, который может извлечь историю торговли за этот год, но не за более ранние годы).
После надлежащей настройки параметров ключа API можно создать новый ключ API, нажав кнопку Сгенерировать ключ.
Обратите внимание: С ключом API, закрытым ключом и QR-кодом нужно обращаться так же, как и с именем пользователя или паролем. Сохраните их в менеджере паролей, если вам потребуется снова получить к ним доступ позже. Не сохраняйте их в незашифрованном формате!
Использование ключа API
Ключ API включает в себя открытый и закрытый ключ, при этом оба ключа в паре должны быть предоставлены клиентскому программному обеспечению API.
Существует три способа использования:
Пара ключей может быть скопирована и вставлена как обычный текст непосредственно в клиентский код API. Пример: способ, используемый нашим клиентом PHP API. (https://github.com/krakenfx/kraken-api-client)
Пара ключей может быть скопирована и вставлена в текстовые файлы, к которым может получить доступ клиент API. Пример: способ, используемый нашим клиентом API командной строки (https://support.kraken.com/hc/en-us/sections/360003946512-REST-API-via-Command-Line).
Обратите внимание: закрытый ключ также известен как секретный ключ API (или просто секретный ключ) в некоторых клиентских приложениях API.
2FA для ключа API
Ключи API уже обеспечивают безопасный способ аутентификации доступа API к аккаунту Kraken, но эту защиту можно дополнительно усилить, включив двухфакторную аутентификацию (2FA).
Можно включить двухфакторную аутентификацию для уже существующего ключа API на странице безопасности и использовать статический пароль или Google Authenticator.
Обратите внимание: включение 2FA для ключа API также требует, чтобы клиент API поддерживал 2FA (предоставлял данные 2FA для каждого вызова частных способов API), в противном случае вместо желаемого вывода API будет возвращена непредвиденная ошибка.
Узнайте больше о том, как работает 2FA для ключей API, здесь (https://support.kraken.com/hc/en-us/articles/360000714526).