API-референс

Contract Gateway API

REST-доступ к методам вашего контракта по API-ключу: чтение (query) и запись (invoke).

Авторизация#

Все вызовы gateway требуют API-ключ. Передавайте его в заголовке x-api-key или как Authorization: Bearer ksc_….

query — чтение#

POST/api/devportal/contracts/:id/query/:methodAPI key · read

Выполняет eth_call (без транзакции и газа). Тело: { args?: unknown[] }. Ответ: { result } — декодированное значение.

bash
curl -X POST \
  https://kazsmartchain.org/api/devportal/contracts/<ID>/query/balanceOf \
  -H "x-api-key: ksc_..." \
  -H "Content-Type: application/json" \
  -d '{ "args": ["0xWallet..."] }'

invoke — запись#

POST/api/devportal/contracts/:id/invoke/:methodAPI key · write

Создаёт транзакцию через кастодиальный кошелёк. Тело: { args?: unknown[] }. Ответ: { txHash, blockNumber, gasUsed, status }.

bash
curl -X POST \
  https://kazsmartchain.org/api/devportal/contracts/<ID>/invoke/transfer \
  -H "x-api-key: ksc_..." \
  -H "Content-Type: application/json" \
  -d '{ "args": ["0xRecipient...", "1000000000000000000"] }'

Правила доступа#

  • Ключ должен принадлежать владельцу контракта.
  • Если ключ ограничен контрактом (contractId), он работает только с ним.
  • Для query нужен скоуп read, для invoke — write.
  • Передавайте большие числа строкой (wei) во избежание потери точности.
invoke необратим
invoke отправляет реальную транзакцию on-chain. Проверяйте аргументы и метод — отменить подтверждённую транзакцию нельзя.

Спецификация контракта#

GET/api/devportal/contracts/:id/openapi.jsonpublic

Возвращает OpenAPI 3.0.3 для конкретного контракта: по одному POST на каждый метод ABI со схемой безопасности ApiKeyAuth (x-api-key). Импортируйте в Postman/Swagger UI или сгенерируйте клиент.