API-ключи
Выпуск, скоупы, использование и отзыв ключей для доступа к контрактам по REST.
Назначение#
API-ключи авторизуют запросы к Contract Gateway — эндпоинтам чтения и записи ваших контрактов. JWT разработчика нужен для управления аккаунтом (деплой, ключи, faucet), а API-ключи — для машинного доступа к контрактам из ваших приложений.
Формат и хранение#
- Ключ имеет вид
ksc_…и показывается один раз при создании. - На сервере хранится только SHA-256 хэш ключа — восстановить исходный ключ нельзя.
- Для удобства сохраняется короткий префикс ключа (для отображения в списке).
Сохраните ключ сразу
Полный ключ возвращается только в ответе на создание. Если вы его потеряли — выпустите новый и отзовите старый.
Скоупы#
readscopeoptionalРазрешает вызовы query (чтение, eth_call).
writescopeoptionalРазрешает вызовы invoke (запись, транзакции).
По умолчанию ключ выпускается со скоупами ["read", "write"]. Ключ можно ограничить конкретным контрактом.
Выпуск ключа#
POST
/api/devportal/developers/:id/api-keysBearer (dev)namestringoptionalЧеловекочитаемое имя ключа.
scopesstring[]optionalread и/или write. По умолчанию оба.
contractIdstringoptionalОграничить ключ одним контрактом.
projectIdstringoptionalПривязать к проекту.
Ответ (ключ показан один раз)
{
"id": "k1...",
"apiKey": "ksc_9f3a...d21",
"prefix": "ksc_9f3a...",
"scopes": ["read", "write"]
}Использование#
Передавайте ключ в заголовке x-api-key (предпочтительно) или как Authorization: Bearer ksc_….
bash
curl -X POST \
https://kazsmartchain.org/api/devportal/contracts/<ID>/query/totalSupply \
-H "x-api-key: ksc_9f3a...d21" \
-H "Content-Type: application/json" \
-d '{ "args": [] }'Список и отзыв#
GET
/api/devportal/developers/:id/api-keysBearer (dev)Возвращает метаданные ключей без секрета (имя, префикс, скоупы, статус, lastUsedAt).
DELETE
/api/devportal/api-keys/:keyIdBearer (dev)Отзывает ключ — после отзыва запросы с ним перестают авторизовываться.

