# Змінні середовища

> Усі змінні середовища NeuroChain — нода (мережа, консенсус, економіка, AI, IBC v2, безпека), gateway, вебзастосунок, сайт документації та MCP-сервер — зі значеннями за замовчуванням і тим, що кожна змінює.

Source: https://docs.nro.world/uk/operate/env

Усі сервіси читають налаштування зі змінних середовища; `.env.example` у репозиторії перелічує їх з коментарями. Значення за замовчуванням нижче — те, що використовує код, коли змінну не задано.

Кілька значень протоколу (бюджет газу, стейк, винагороди, слешинг, пороги AI) — **параметри управління**, що зберігаються в мережі. Якщо для такого є змінна середовища, вона перекриває значення з мережі **на цій ноді під час запуску** — це для тестових мереж; у спільній мережі кожен валідатор має використовувати однакове значення. Див. [Управління → Параметри](/uk/learn/governance#parameters).

## Нода

### Мережа й ідентичність

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `CHAIN_ENV` | `mainnet` | `mainnet`: суворі підписи, кран вимкнено, RPC на localhost. `testnet`: підписи лише з попередженням, кран увімкнено |
| `NEUROCHAIN_NETWORK` | `neurochain-mainnet-1` | Id мережі |
| `NEUROCHAIN_DATA_DIR` | `./data` | Папка даних (стан, WAL, ключ) |
| `NEUROCHAIN_MODELS_DIR` | `./models` | Ваги AI-моделей |
| `NEUROCHAIN_RPC_PORT` | `9933` | Порт HTTP RPC |
| `NEUROCHAIN_RPC_HOST` | `localhost` (mainnet) / `0.0.0.0` (testnet) | Адреса прив'язки RPC |
| `NEUROCHAIN_P2P_PORT` | `30333` | P2P-порт (несе й консенсус) |
| `NEUROCHAIN_P2P_PORT_MIN` / `_MAX` | `1024` / `65534` | Допустимий діапазон портів пірів |
| `NEUROCHAIN_NODE_ADDR` | `localhost:<p2p port>` | Адреса, за якою піри досягають цієї ноди; не може бути `0.0.0.0`. Зіставляє ноду з її записом валідатора в генезисі |
| `NEUROCHAIN_BOOTSTRAP` | — | Піри через кому, до яких підключитися на старті |
| `NEUROCHAIN_PEER_DISCOVERY_SECS` | `30` | Інтервал пошуку пірів |
| `NEUROCHAIN_P2P_CONN_RATE_LIMIT` | `20` | Вхідних P2P-з'єднань за секунду з одного IP |
| `NEUROCHAIN_TLS_CERT`, `NEUROCHAIN_TLS_KEY` | — | Обслуговувати RPC через HTTPS |

### Генезис

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `NEUROCHAIN_GENESIS_VALIDATORS` | лише ця нода | `neuro:name.node|p2p_host:port|stake_nro|trust|ml_dsa_pubkey_hex,…` — однакове на кожному валідаторі. Див. [Запуск ноди](./node#a-multi-validator-network) |
| `NEUROCHAIN_GENESIS_ACCOUNTS` | — | `neuro:addr.human|nro,…` — початкові баланси |
| `NEUROCHAIN_FAUCET_BALANCE` | 1 000 000 000 NRO | Баланс сховища крана при генезисі |
| `NEUROCHAIN_INITIAL_BALANCE` | `0` | uNRO, що зараховуються невідомому акаунту при першому читанні (лише тестові мережі) |
| `NEUROCHAIN_GAS_SPONSOR` | `neuro:faucet.vault` | Спонсор газу для новачків |
| `NEUROCHAIN_GAS_SPONSOR_FUND` | 1 000 000 NRO | Його пул газу при генезисі |
| `NEUROCHAIN_CHECKPOINT_URL` | — | Запустити порожню ноду зі знімка стану цієї ноди |

### Консенсус і шардинг

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `NEUROCHAIN_MIN_VALIDATORS` | `7` | Нижче цього нода попереджає про знижену стійкість до збоїв |
| `NEUROCHAIN_BLOCK_MS` | `200` | Мінімальне очікування перед пропозицією блоку з транзакціями |
| `NEUROCHAIN_EMPTY_BLOCK_MS` | `2000` | Мінімальне очікування перед пропозицією порожнього блоку |
| `NEUROCHAIN_SYNC_HISTORY_BLOCKS` | `10000` | Скільки вирішених блоків тримати для пірів, що наздоганяють |
| `NEUROCHAIN_JAIL_BLOCKS` | `10000` | Тривалість jail після слешингу (параметр управління `jail_blocks`) |
| `NEUROCHAIN_SLASH_FRACTION_DOUBLE_SIGN_BPS` | `500` | Слешинг за подвійний підпис, базисні пункти від `min_stake` |
| `NEUROCHAIN_SLASH_REWARD_FRACTION_BPS` | `100` | Частка слешингу тому, хто повідомив |
| `NEUROCHAIN_SLASH_EVIDENCE_WINDOW` | `10000` | Найстаріше порушення (у блоках), яке можуть довести докази |
| `NEUROCHAIN_SHARD_ID` | — | Шард, який обслуговує ця нода; не задано = один шард |
| `NEUROCHAIN_SHARDS` | `4` з id шарда, інакше `1` | Кількість шардів |
| `NEUROCHAIN_SHARD_DIR_PREFIX` | `shard` | Назва підпапки для кожного шарда |

### Економіка й мемпул

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `NEUROCHAIN_UNBONDING_BLOCKS` | управління (1 512 000) | Блокування стейку |
| `NEUROCHAIN_REWARD_INTERVAL_BLOCKS` | управління (216 000) | Блоків між виплатами винагород |
| `NEUROCHAIN_FUEL_PER_GAS_UNIT` | `20000` | Fuel контракту за одиницю газу |
| `NEUROCHAIN_MAX_SPONSORED_FEE` | `100000` uNRO | Найбільша комісія, яку пул газу платить за транзакцію |
| `NEUROCHAIN_MAX_MEMPOOL` | `10000` | Скільки очікуваних транзакцій тримати |
| `NEUROCHAIN_MAX_PENDING_PER_ACCOUNT` | `64` | Очікуваних транзакцій на відправника |
| `NEUROCHAIN_RBF_MIN_BUMP_PCT` | `10` | Підвищення ціни газу, потрібне для заміни очікуваної транзакції |
| `NEUROCHAIN_MIN_FEE_PER_GAS` | `0` | Додатковий мінімум ціни в мемпулі |
| `NEUROCHAIN_FAUCET_MAX_NRO` | `100` | Найбільший запит до крана (тестові мережі) |
| `NEUROCHAIN_FAUCET_COOLDOWN_SECS` | `86400` | Пауза крана для адреси; `0` = без паузи |

### AI

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `MONITOR_INTERVAL_SECS` | `20` | Повторний аудит розгорнутих контрактів |
| `MONITOR_SCORE_THRESHOLD` | `10` | Зміна оцінки, що запускає оновлення сертифіката |
| `NEUROCHAIN_SENTINEL_POLICY_ENABLED` | управління (`0`) | Шар політик Sentinel увімкнено/вимкнено |
| `NEUROCHAIN_SENTINEL_HOLD_THRESHOLD` | управління (`60`) | Оцінка × 100, з якої перекази утримуються |
| `NEUROCHAIN_SENTINEL_STEPUP_THRESHOLD` | управління (`70`) | Оцінка × 100, з якої власник має підтвердити |
| `NEUROCHAIN_SENTINEL_HOLD_BLOCKS` | управління (`50`) | Затримка автоматичного звільнення |
| `NEUROCHAIN_SENTINEL_CONFIRM_EXPIRY_BLOCKS` | управління (`1000`) | Очікування підтвердження до повернення |
| `NEUROCHAIN_SENTINEL_AGENT_CONFIRM_THRESHOLD` | управління (`60`) | Поріг для переказів сесійним ключем |
| `NEUROCHAIN_TRUST_ACTIVATION_BLOCKS` | управління (`300`) | Затримка, перш ніж довірений отримувач почне діяти |
| `AI_EXPORT_MAX_LIMIT` | `5000` | Рядків на запит експорту даних для AI |

### IBC v2

Див. [IBC v2 і шардинг → Конфігурація](./ibc#configuration): `NEUROCHAIN_IBC_OPERATOR_PUBKEYS`, `NEUROCHAIN_IBC_TRUSTED_PUBKEYS`, `NEUROCHAIN_IBC_REQUIRE_HEADER`, `NEUROCHAIN_IBC_REQUIRE_PACKET_COMMITMENT`, `NEUROCHAIN_IBC_TIMEOUT_BLOCKS`, `NEUROCHAIN_IBC_MAX_PACKET_UNRO`, `NEUROCHAIN_IBC_MAX_CHANNEL_ESCROW_UNRO`, `NEUROCHAIN_IBC_NATIVE_DENOM`.

### Нативні активи

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `NEUROCHAIN_ASSET_ISSUERS` | — | Адреси, що отримують рівень емітента `verified` при генезисі |
| `NEUROCHAIN_RESERVED_SYMBOLS` | — | Тікери, зарезервовані при генезисі |

Обидві читаються один раз, при генезисі; далі реєстри змінюються лише через управління.

### Доступ і ліміти

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `NEUROCHAIN_RPC_RATE_LIMIT` | `100` | RPC-запитів за секунду на IP |
| `CORS_ALLOWED_ORIGINS` | `*` | Дозволені джерела браузера |
| `NEUROCHAIN_INTERNAL_TOKEN` | — | Обов'язковий `X-Internal-Token` для внутрішніх ендпоінтів |
| `NEUROCHAIN_SNAPSHOT_TOKEN` | — | Обов'язковий bearer-токен для `/api/v1/state/snapshot` |
| `NEUROCHAIN_ALLOW_SERVER_DERIVE` | `false` | Дозволити `POST /api/v1/wallet/derive-address` (отримує фразу відновлення) у тестових мережах; у mainnet завжди вимкнено |
| `RUST_LOG` | `neurochain=info,warn` | Рівень журналу |

## Gateway

З поясненнями — на сторінці [Gateway](./gateway#configuration): `PORT`, `NODE_RPC_URL`, `NEUROCHAIN_SHARD_NODES`, `SHARD_NODE_URLS`, `NETWORK_ID`, `CORS_ALLOWED_ORIGINS`, `TLS_CERT`, `TLS_KEY`, ліміти (`GLOBAL_RL_MAX_RPS`, `AI_RL_MAX_RPM`, `WS_*`), спостереження за мережею (`POLL_NODE_INTERVAL_MS`, `SENTINEL_*`, `ALERT_COOLDOWN_MS`), кран (`FAUCET_AMOUNT`, `FAUCET_COOLDOWN_SECS`, `REDIS_URL`) і AI-інструменти (`ANTHROPIC_API_KEY`, `SMARTFORGE_*`, `AI_EXPORT_TOKEN`, `ASSISTANT_*`).

## Вебзастосунок

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `WEB_PORT` | `8080` | Порт сервера розробки |
| `WEB_HOST` | `localhost` | Прив'язка сервера розробки; `0.0.0.0`, щоб відкрити в мережі |
| `GATEWAY_URL` | `http://localhost:3000` | Gateway, на який сервер розробки проксує `/api` і `/ws` |
| `VUE_APP_NEUROCHAIN_RPC` | — (те саме джерело) | Вшити у збірку фіксовану базову адресу API |
| `VUE_APP_SITE_URL`, `VUE_APP_SITE_NAME`, `VUE_APP_SITE_OG_IMAGE` | — | Метадані розгорнутого застосунку |
| `VUE_APP_DOCS_URL` | — | Посилання на цю документацію |

## Сайт документації

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `DOCS_SITE_URL` | `https://docs.nro.world` | Канонічні адреси, sitemap, `hreflang`, `llms.txt` |
| `DOCS_OG_IMAGE` | `/og-image.png` | Зображення для прев'ю в соцмережах |
| `DOCS_GOOGLE_SITE_VERIFICATION`, `DOCS_BING_SITE_VERIFICATION` | — | Токени підтвердження власності для пошукових консолей |
| `DOCS_HOST`, `DOCS_PORT` | `localhost`, `5173` | Сервер розробки |
| `DOCS_BASE` | `/` | Базовий шлях |

## MCP-сервер

| Змінна | За замовчуванням | Значення |
|--------|------------------|----------|
| `NEUROCHAIN_MCP_CONFIG` | — | Шлях до JSON-конфігурації — див. [AI-агенти (MCP)](/uk/build/mcp) |
