Швидкий старт
Від нуля до розгорнутого токена в локальній мережі приблизно за десять хвилин.
Перш ніж почати
Публічна мережа ще не запущена, тож цей посібник використовує ноду і gateway на вашому комп'ютері. Запустіть їх з CHAIN_ENV=testnet (так вмикається кран) — див. Запуск ноди. Потім:
export NODE_RPC=http://localhost:9933
export GATEWAY=http://localhost:30001. Перевірте мережу
curl -s "$GATEWAY/api/v1/network/status"
curl -s "$NODE_RPC/health"height має зростати кожні кілька секунд. bft_ready: false на одній локальній ноді — нормально: це означає, що валідаторів менше 7.
2. Отримайте гаманець
Відкрийте вебзастосунок (http://localhost:8080), оберіть Create wallet і запишіть 24 слова. Застосунок покаже вашу адресу neuro:<15 hex>.human.
Або виведіть її на власній сторінці через SDK:
import { NeuroChain } from './neurochain.js'
const nc = new NeuroChain({ gateway: 'http://localhost:3000' })
const wallet = await nc.walletFromMnemonic('<ваші 24 слова>')
console.log(wallet.address, wallet.publicKey)Для підпису потрібен криптомодуль WASM, який SDK завантажує в браузері. Див. JavaScript SDK → Криптомодуль.
3. Поповніть його
curl -s -X POST "$NODE_RPC/api/v1/faucet" \
-H 'Content-Type: application/json' \
-d '{"address":"neuro:<15 hex>.human","public_key":"<публічний ключ hex>"}'Кран за замовчуванням дає 50 тестових NRO і прив'язує ваш публічний ключ до адреси. У вебзастосунку є кнопка Faucet, що робить те саме.
curl -s "$GATEWAY/api/v1/accounts/neuro:<15 hex>.human"Дивіться на balance_human (NRO) і nonce.
4. Надішліть NRO
Перекази через SDK у поточній збірці не працюють
nc.transfer() надсилає суму рядком JSON, і нода її відхиляє (Missing from/to/value). Доки SDK не виправлено, надсилайте переказ з числовим value — див. JavaScript SDK → Відомі проблеми.
import { toRaw } from './neurochain.js'
const { base_fee } = await nc.gasEstimate()
const gas_price = Math.ceil(base_fee * 1.5) // вище за базову комісію
const to = 'neuro:<інша адреса>.human'
const value = Number(toRaw('1.5')) // 1,5 NRO в uNRO, числом
const nonce = await nc.nextNonce(wallet.address)
const sig = wallet.sign(to, value, nonce) // { signature, public_key }
const res = await fetch('http://localhost:3000/api/v1/transactions', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ from: wallet.address, to, value, nonce, gas_price, ...sig }),
}).then(r => r.json())
// { tx_hash, status: 'pending', estimated_block, sentinel_score, … }У відповіді — hash транзакції зі статусом pending; за секунду GET /api/v1/transactions/:hash покаже confirmed.
5. Розгорніть токен
У репозиторії є скомпільований токен NRC-20: neurochain/contracts/nrc20/nrc20.hex.
const bytecodeHex = (await (await fetch('/nrc20.hex')).text()).trim()
await nc.deployContract({
wallet,
bytecodeHex,
name: 'MyToken',
template: 'nrc20',
initArgs: { name: 'MyToken', symbol: 'MTK', decimals: 6, total_supply: '1000000' },
})Розгортання — це транзакція на neuro:system.deploy. Кожен валідатор проганяє байткод через аудит VMGuardian, створює контракт за адресою neuro:<10 hex>.app і викликає initialize з вашими initArgs. Вказуйте total_supply у цілих токенах, а decimals — числом: нода переведе пропозицію в найменші одиниці токена (1000000 при 6 знаках стає 10¹² одиниць), і все буде зараховано вам. Байткод NRC-20 з репозиторію є в білому списку, тож отримує оцінку безпеки 100. Адресу шукайте в історії транзакцій або через GET /api/v1/contracts.
6. Читання і виклик контракту
const token = 'neuro:<10 hex>.app'
// Читання — без транзакції і без газу
await nc.contractQuery(token, 'balance_of', { address: wallet.address })
// → '{"ok":true,"value":1000000000000}' (найменші одиниці)
// Запис — підписана транзакція з даними виклику в JSON
await nc.contractCall({
wallet,
address: token,
fn: 'transfer',
args: { to: 'neuro:<інша адреса>.human', amount: '250' }, // цілі токени — нода переведе
gasPrice: Math.ceil(base_fee * 1.5),
})Контракт дізнається, хто його викликав, від хоста (get_caller()), а не з аргументів. Див. ABI і дані виклику.
Далі
- JavaScript SDK — усі методи.
- Розгортання контрактів — шлюз аудиту, конструктор і ліміти.
- NeuroWASM — як написати власний контракт.