Портал разработчика

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[]optional
read и/или 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)

Отзывает ключ — после отзыва запросы с ним перестают авторизовываться.