Абстракція акаунтів
У NeuroChain акаунт — це ключ ML-DSA-65, а не контракт, тож абстракцію акаунтів вбудовано в протокол, а не емульовано контрактами-гаманцями. Вона охоплює три речі: газ платить хтось інший, обмежений ключ діє за вас і AI-агенти безпечно користуються обома.
Спонсорований газ
Пул газу — це NRO, відкладені для оплати комісій транзакцій.
| Хто платить комісію | Коли |
|---|---|
| Власний пул відправника | Коли в ньому достатньо на комісію |
| Мережевий спонсор для новачків | Гаманець може покрити суму переказу, але не комісію (нові користувачі, які мають лише надіслану їм суму) |
| Баланс відправника | В інших випадках |
Правила:
- Спонсорована комісія — не більше
NEUROCHAIN_MAX_SPONSORED_FEE(100 000 uNRO) на транзакцію. - Спонсоровані комісії спалюються й виплачуються пропонувальнику, як будь-які інші.
- Спонсор для новачків —
NEUROCHAIN_GAS_SPONSOR(за замовчуваннямneuro:faucet.vault); його пул поповнюється один раз при генезисі наNEUROCHAIN_GAS_SPONSOR_FUND(1 000 000 NRO), а згодом — депозитами.
| Дія | Ендпоінт | Підпис для |
|---|---|---|
| Покласти NRO у свій пул | POST /api/v1/sponsor/deposit (address, amount) | neuro:system.sponsor |
| Забрати назад | POST /api/v1/sponsor/withdraw (address, amount) | neuro:system.sponsor |
| Баланс пулу | GET /api/v1/sponsor/:address | — |
Сесійні ключі
Сесійний ключ — окремий ключ ML-DSA-65, якому ваш майстер-ключ дозволяє діяти від імені вашого акаунта — у заданих вами межах:
| Обмеження | Поле | Значення |
|---|---|---|
| Дозвіл | scope | Адреси через кому, на які ключ може надсилати, або * для будь-яких |
| Ліміт витрат | cap | Загальна кількість uNRO, яку ключ може перемістити за весь час |
| Строк дії | expiry_block | Остання висота блоку, на якій ключ дійсний; має бути в майбутньому |
POST /api/v1/session/grant
{
"account": "neuro:<15 hex>.human",
"session_pk": "<публічний ключ сесії, hex>",
"scope": "neuro:<10 hex>.app",
"cap": 5000000,
"expiry_block": 120000,
"signature": "…", "public_key": "<майстер-ключ>", "nonce": 1791200000000
}Далі сесійний ключ підписує звичайні транзакції як акаунт (from — ваша адреса, public_key — сесійний ключ). Кожен валідатор у консенсусі перевіряє:
- підпис дійсний для сесійного ключа;
- акаунт видав цей ключ, і його не відкликано;
- поточна висота не перевищує
expiry_block; - ціль є в
scope; - вже витрачене плюс ця сума не перевищує
cap.
Витрати записуються, лише коли транзакцію успішно застосовано. Відкликати можна будь-коли через POST /api/v1/session/revoke (account, session_pk); список дозволів — GET /api/v1/session/list/:account.
Чого сесійний ключ не може ніколи: керувати списком довіри Sentinel, підтверджувати чи скасовувати утриманий переказ — для цього потрібен майстер-ключ. Тож агент може почати ризикований переказ, але схвалити його можете лише ви.
Як це тестується: мережевий тест на кількох валідаторах підтвердив, що ліміт витрат тримається при конкурентних транзакціях, повторена транзакція відхиляється, а відкликання діє на кожній ноді.
Акаунти .agent
Адреса .agent — платне ім'я для акаунта AI-агента: реєструється вашим гаманцем .human, керується вашим ключем і призначена тримати пул газу й сесійні ключі агента. Це не валідатор, і стейку вона не має. Ціна залежить від довжини імені, як для власних імен (Адреси → Ціни імен).
POST /api/v1/agents/register (name, owner; підпис для neuro:system.agent), GET /api/v1/agents/:address.
AI-агенти через MCP
Сервер neurochain-mcp дає AI-асистентам (Claude Code, Claude Desktop, будь-якому MCP-клієнту) доступ на читання до мережі, а із сесійним ключем — nc_transfer, nc_call_contract і nc_deploy, але ніколи не майстер-ключ. Налаштування, усі інструменти й обмеження: AI-агенти (MCP).