# API-ключ
Приватные методы API ноды (например, подписание транзакции от имени ноды или экспорт seed) доступны только владельцу ноды и требуют API-ключ в HTTP запросе. Владелец ноды может задать API-ключ и другие параметры в секции Настройки REST API файла конфигурации ноды. Если вы не владелец ноды, то вам доступны только публичные методы.
Ваш API-ключ ноды очень важен, как и seed и пароль кошелька.
Примечание: API-ключ передается в HTTP-заголовке в виде незащищенного текста. Злоумышленник может перехватить его при передаче по сети и использовать для кражи ваших средств. Очень важно защитить передачу данных с помощью переадресации портов HTTPS или SSH.
# Задать API-ключ
Чтобы задать API-ключ, укажите его хеш в файле конфигурации ноды.
Создайте уникальную строку, которую будете использовать в качестве API-ключа.
Перейдите в веб-интерфейс Swagger.
Откройте API метод /utils/hash/secure и введите вашу уникальную строку в поле
message
.Нажмите Execute чтобы получить хеш API-ключа.
В файле конфигурации вашей ноды в параметре
api-key-hash
укажите хеш API-ключа.Перезапустите ноду.
# API-ключ для приватных методов
Приватные методы API ноды помечены значком 🔒 в Swagger UI. При вызове приватных методов необходимо указывать исходный API-ключ (не хеш!) в HTTP-заголовке X-Api-Key
.
Пример вызова приватного метода подписания транзакции:
curl -X POST --header 'X-API-Key: YOUR UNIQUE API KEY' --header 'Content-Type: application/json' --header 'Accept: application/json'
-d '{ \
"amount": 5800000000, \
"fee": 100000, \
"type": 4, \
"version": 1, \
"attachment": "", \
"sender": "3P3pUKEAKxegWr3PZkGYNq1mzQQaQ5zxZbw", \
"feeAssetId": null, \
"assetId": null, \
"recipient": "3P9p39MwZ5JjwdBSYEWC6XYri4jpovzcAbs", \
"feeAsset": null, \
"timestamp": 1568020044350 \
}' 'http://nodes.wavesnodes.com/transactions/sign'
API ноды позволяет подписывать транзакции только от имени аккаунтов, которые хранятся в кошельке ноды. Если вы хотите подписать свою транзакцию/транзакцию другого пользователя, но нода не ваша, используйте клиентские библиотеки (см. примеры в разделе Как создать транзакцию и отправить ее на блокчейн).