# Гаманець

> Гаманець NeuroChain — фраза відновлення з 24 слів, постквантовий ключ ML-DSA-65, виведений у браузері, зашифроване сховище, переказ NRO, підписані операції, статуси транзакцій і кран тестової мережі.

Source: https://docs.nro.world/uk/learn/wallet

Гаманець NeuroChain — це **фраза відновлення з 24 слів**. Усе інше — ключ підпису та адреса `.human` — обчислюється з неї у вашому браузері й нікуди звідти не виходить.

## Способи користуватися гаманцем

Усі вони використовують ті самі ключі й ту саму адресу `.human`; різниця — де зберігається ключ і хто підписує.

| Спосіб | Де ключ | Хто підписує | Для чого | Сторінка |
|--------|---------|--------------|----------|----------|
| **Вебгаманець** | Ваш браузер, зашифровано паролем | Ви, у застосунку | Щоденне користування: перекази, стейкінг, голосування, імена, агенти | Ця сторінка |
| **Спливне вікно підпису** | Ваш браузер (вебгаманець) | Ви, підтверджуючи у спливному вікні | Робота з dApp на іншому сайті без передачі йому фрази | [Signer SDK](/uk/build/sdk#signer-sdk) |
| **JavaScript SDK** | Ваша сторінка чи скрипт | Ваш код, з фразою, яку ви йому дали | dApp або автоматизація з власним гаманцем | [JavaScript SDK](/uk/build/sdk) |
| **Сесійний ключ (AI-агент)** | Машина агента — окремий обмежений ключ | Агент, у межах дозволених адрес, ліміту витрат і строку | Дати AI-асистенту діяти від вашого імені через MCP | [AI-агенти (MCP)](/uk/build/mcp) |
| **Платні імена** (`.node`, `.vault`, `.agent`, …) | Власного ключа немає | Гаманець `.human`, якому вони належать | Валідатори, спільні скарбниці, акаунти агентів | [Адреси](./addresses) |

`.vault` керують разом кілька учасників: виплата потребує порогової кількості їхніх підписів.

## Створення або імпорт

| | Що відбувається |
|---|---|
| **Створити** | Браузер генерує 24 слова з 256 біт випадкової ентропії (словник BIP-39 з контрольною сумою). Запишіть їх: їх показують один раз. |
| **Імпортувати** | Введіть наявну фразу з 24 слів. Спершу перевіряється контрольна сума. |

Зі слів браузер виводить пару ключів ML-DSA-65 і адресу, як описано в розділі [Адреси](./addresses#your-wallet-address-human). Та сама фраза завжди дає ту саму адресу на будь-якому пристрої.

## Де зберігається ключ

| Що | Де | Захист |
|----|----|--------|
| Фраза відновлення | `localStorage` браузера, ключ `nc_ks_<адреса>` | Зашифровано паролем: PBKDF2-SHA256 (100 000 ітерацій, випадкова 16-байтна сіль) → AES-256-GCM |
| Ключ підпису | Лише пам'ять відкритої вкладки | Виводиться з фрази заново після розблокування |
| Пароль | Ніде | Лише шифрує й розшифровує фразу |

В одному браузері можна тримати кілька гаманців і перемикатися між ними в застосунку.

::: warning Бережіть фразу, а не пароль
Пароль лише відмикає копію в цьому браузері. Якщо ви втратите і фразу, і дані браузера, гаманець втрачено — відновити його ніхто не зможе. Якщо фраза потрапила до когось, той може підписувати від вашого імені; перейдіть на новий ключ через [Ідентичність](/uk/ai/identity).
:::

## Переказ NRO

1. Застосунок читає ваш наступний nonce і поточну базову комісію.
2. Ставить ціну газу **1,5 × базова комісія** (з округленням угору), щоб транзакція лишалася дійсною, якщо базова комісія зросте до включення в блок.
3. Браузер локально (WASM) перевіряє баланс, nonce і комісію й показує помилку ще до відправлення.
4. Підписує `nc-tx-v2|from|to|value|nonce` вашим ключем і надсилає транзакцію разом із публічним ключем.
5. Нода перевіряє підпис і те, що з вашого публічного ключа виводиться ваша адреса, і ставить транзакцію в чергу.

Переказ самому собі коштує лише комісію; застосунок так його і показує.

## Статуси транзакцій

| Статус | Значення |
|--------|----------|
| `pending` | Прийнято нодою, чекає в mempool. Відкидається, якщо не потрапила в блок за 60 секунд. |
| `confirmed` | В остаточному блоці й застосована. |
| `failed` | В остаточному блоці, але виклик контракту перервався або вичерпав fuel. Сума і зміни сховища відкочені; комісія і nonce витрачені. |
| `held` | Прийнята, але затримана [шаром політик Sentinel](/uk/ai/sentinel) <Badge type="warning" text="вимкнено за замовчуванням" />: сума звільниться автоматично після затримки або чекає вашого підтвердження. |
| `cancelled` | Утримана транзакція, яку ви скасували; сума повернута. |
| `refunded` | Суму повернуто вам — утримана транзакція без підтвердження до терміну або міжшардовий переказ, що не завершився вчасно. |

## Підписані операції {#signed-operations}

Стейкінг, реєстрація імен, голосування та подібні дії — не перекази, але підписуються так само. Гаманець підписує `nc-tx-v2|<ви>|<системна ціль>|<сума>|<nonce>`, де ціль називає операцію (`neuro:system.stake`, `neuro:system.node`, `neuro:system.name`, `neuro:system.governance`, …).

Для них nonce — позначка часу в мілісекундах, і нода приймає лише nonce, більший за останній від вашої адреси, — перехоплений запит не можна повторити.

## Кран <Badge type="warning" text="лише тестові мережі" />

На ноді, запущеній з `CHAIN_ENV=testnet`, `POST /api/v1/faucet` нараховує тестові NRO. За `CHAIN_ENV=mainnet` (за замовчуванням) кран вимкнено.

| Налаштування | За замовчуванням | Змінна |
|--------------|------------------|--------|
| Сума на запит | 50 NRO | поле запиту `amount` |
| Максимум на запит | 100 NRO | `NEUROCHAIN_FAUCET_MAX_NRO` |
| Пауза для адреси | 24 години | `NEUROCHAIN_FAUCET_COOLDOWN_SECS` (0 — вимкнути) |

```bash
curl -s -X POST "$NODE_RPC/api/v1/faucet" \
  -H 'Content-Type: application/json' \
  -d '{"address":"neuro:<ваша адреса>.human","public_key":"<ваш публічний ключ ML-DSA-65, hex>"}'
```

Під час першого нарахування кран прив'язує надісланий публічний ключ до адреси.

## Гаманець командного рядка

У репозиторії ноди ще є старий гаманець командного рядка `neurowallet`. Він створений до поточної схеми адрес (`NC_KDF_v3`) і не підписує ML-DSA-65, тож поточна мережа не приймає його адреси й транзакції. Користуйтеся вебгаманцем або [JavaScript SDK](/uk/build/sdk).
