Начало работы

Быстрый старт

От регистрации по ЭЦП до задеплоенного контракта и REST-вызова — за несколько минут.

Что понадобится#

  • Установленный NCALayer и ключ ЭЦП (для входа в портал).
  • Браузер — для портала разработчика на dev.kazsmartchain.org.
  • curl или любой HTTP-клиент — для вызова REST API.
Всё в testnet
Для старта используйте testnet (chainId 17991): деплой проходит мгновенно и бесплатно, газ выдаётся через faucet. На mainnet деплой требует ручного одобрения.

1. Регистрация по ЭЦП#

1
Откройте портал разработчика

Перейдите на dev.kazsmartchain.org и выберите «Зарегистрироваться».

2
Подпишите вход ключом ЭЦП

Портал запросит подпись challenge через NCALayer. Ваш ИИН извлекается из сертификата и становится идентификатором аккаунта. Приватный ключ ЭЦП не покидает ваш компьютер.

3
Получите кошелёк автоматически

При первой регистрации портал создаёт для вас кастодиальный кошелёк и начисляет стартовый газ в testnet.

Программная аутентификация
Тот же поток доступен по API: POST /api/devportal/auth/eds/challenge → подпись → POST /api/devportal/auth/eds/login. В ответ приходит token (JWT разработчика, действует 12 часов) — подробнее в разделе Аутентификация.

2. Газ из faucet#

В testnet газ начисляется бесплатно. Запросить пополнение можно в разделе «Wallet & Faucet» портала или по API:

POST /api/devportal/faucet/drip
curl -X POST https://kazsmartchain.org/api/devportal/faucet/drip \
  -H "Authorization: Bearer <DEV_JWT>" \
  -H "Content-Type: application/json" \
  -d '{ "network": "testnet" }'

Лимит — до 5 начислений в сутки на разработчика, по 10 KSC за раз (значения по умолчанию).

3. Деплой контракта#

Загрузите исходник на Solidity — портал сам скомпилирует его (solc 0.8.20, EVM paris, доступны @openzeppelin/contracts) и задеплоит c вашего кошелька.

MyToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor() ERC20("My Token", "MTK") {
        _mint(msg.sender, 1_000_000 * 10 ** decimals());
    }
}
Деплой через API
curl -X POST https://kazsmartchain.org/api/devportal/contracts/deploy \
  -H "Authorization: Bearer <DEV_JWT>" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "<SOLIDITY_SOURCE>",
    "contractName": "MyToken",
    "network": "testnet"
  }'

В ответе вернётся объект контракта с id, address, deployTxHash и abi. Запомните id — он нужен для вызовов.

4. Выпуск API-ключа#

Чтобы вызывать контракт из своего приложения, выпустите API-ключ в разделе «API keys». Ключ вида ksc_… показывается один раз — сохраните его.

POST /api/devportal/developers/:id/api-keys
curl -X POST \
  https://kazsmartchain.org/api/devportal/developers/<DEV_ID>/api-keys \
  -H "Authorization: Bearer <DEV_JWT>" \
  -H "Content-Type: application/json" \
  -d '{ "name": "my-app", "scopes": ["read", "write"] }'

5. Вызов контракта по REST#

Для каждого метода ABI портал поднимает эндпоинты query (чтение) и invoke (запись). Авторизация — заголовком x-api-key.

Чтение баланса (query)
curl -X POST \
  https://kazsmartchain.org/api/devportal/contracts/<CONTRACT_ID>/query/balanceOf \
  -H "x-api-key: ksc_<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{ "args": ["0xYourWalletAddress"] }'
Готово
Вы зарегистрировались, задеплоили контракт и вызвали его по REST. Дальше — изучите вызов контрактов и полный API-референс.