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 или сгенерируйте клиент.

