# TonTarria — Game Guide for LLMs/AI agents > TonTarria is a Telegram Mini App RPG on the TON blockchain. This file is a clean, structured snapshot of the official game bible (RU primary, EN names included) for AI agents. Human/SEO version: https://tontarria.org/wiki.html Last updated: 2026-06-21 --- # TonTarria — Вики (полный гайд игры) --- ## 1. Концепция **TonTarria** — мобильная RPG в Telegram (TMA) с экономикой на базе TON blockchain. | Параметр | Значение | |---|---| | Платформа | Telegram Mini App (TMA) | | Жанр | Idle RPG / Action RPG | | Языки | English (основной), Русский | | Монетизация | Лазурит (F2P), Рубины (Premium, TON) | | Версия | v1.0.0 — Сезон 1 | **Суть игры:** Герой прокачивается через бои, крафт и экспедиции. Мир живёт — есть глобальные события, рейды, PvP. Экономика завязана на Лазурит (добывается игрой) и Рубины (покупаются за TON). --- ## 2. Мир и лор ### Вселенная Мир **Tontarria** — последний осколок человеческой цивилизации. Города в руинах, деревни сожжены. Единственное что даёт людям силу — **Лазурит**, кристаллический минерал с магической энергией. --- ### Зоны мира | # | Название (RU) | Name (EN) | Уровни | Арка | |---|---|---|---|---| | 1 | Лазуритовые копи | Lazurite Mines | 1–10 | Первые шаги, горные твари | | 2 | Поля Таррии | Fields of Tarria | 11–20 | Открытые земли, патрули тьмы | | 3 | Магический лес Таррии | Magical Forest of Tarria | 21–30 | Лес пронизан магией Лазурита | | 4 | Утёс мечтателей | Dreamers' Cliff | 31–40 | Пропасть между жизнью и тьмой | | 5 | Острова Таррии | Islands of Tarria | 41–50 | Открытие силы Лазурита, морские демоны | | 6 | Адский портал демонов | Demon Hell Portal | 51–70 | Врата в нижние миры, высшие демоны | | 7 | Преисподняя | Underworld | 71–90 | Царство тьмы, герои становятся легендами | | 8 | Иной мир | Other World | 91–100 | Трон Void Emperor, финальная битва | ### Бестиарий 32 моба + финальный босс. 4 на зону. Ранги: COMMON, ELITE, BOSS. **Зона 1 — Лазуритовые копи (1–10)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Шахтная крыса | COMMON | 1–3 | — | | Пещерный паук | COMMON | 2–5 | — | | Гоблин-шахтёр | ELITE | 4–7 | — | | Каменный голем | ELITE | 8–10 | Танк | **Зона 2 — Поля Таррии (11–20)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Дикий кабан | COMMON | 11–13 | — | | Разбойник-разведчик | COMMON | 13–16 | — | | Полевой тролль | ELITE | 16–18 | Танк | | Главарь разбойников | ELITE | 19–20 | — | **Зона 3 — Магический лес Таррии (21–30)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Лесной волк | COMMON | 21–23 | — | | Искажённый древень | COMMON | 24–26 | Танк | | Тёмный эльф-следопыт | ELITE | 27–28 | — | | Древний медведь | ELITE | 29–30 | Танк | **Зона 4 — Утёс мечтателей (31–40)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Утёсная гарпия | COMMON | 31–33 | — | | Горный йети | COMMON | 34–36 | Танк | | Элементаль ветра | ELITE | 37–38 | Debuff: SILENCE (1 ход) | | Утёсный виверн | ELITE | 39–40 | — | **Зона 5 — Острова Таррии (41–50)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Пиратский налётчик | COMMON | 41–43 | — | | Морской змей | COMMON | 44–46 | — | | Шаман бури | ELITE | 47–48 | Debuff: ENERGY_DRAIN | | Отродье кракена | ELITE | 49–50 | Танк | **Зона 6 — Адский портал демонов (51–70)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Малый демон | COMMON | 51–55 | — | | Адская гончая | COMMON | 56–60 | Debuff: BLEED 5% | | Демон-рыцарь | ELITE | 61–65 | Танк | | Высший демон | ELITE | 66–70 | — | **Зона 7 — Преисподняя (71–90)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Огненный элементаль | COMMON | 71–75 | Debuff: BLEED 8% | | Лавовый голем | COMMON | 76–80 | Танк | | Адский дракон | ELITE | 81–85 | Debuff: VOID_PIERCE −30 DEF | | Повелитель демонов | ELITE | 86–90 | — | **Зона 8 — Иной мир (91–100)** | Моб | Ранг | Уровни | Особенность | |---|---|---|---| | Пустотный призрак | COMMON | 91–93 | Debuff: FEAR 15% пропуск хода | | Космический ужас | COMMON | 94–96 | Debuff: VOID_PIERCE −40 DEF | | Архидемон | ELITE | 97–98 | Debuff: BLEED 10% | | **Император пустоты** | **BOSS** | **99–100** | Debuff: VOID_PIERCE −50 DEF | --- ### ⚔️ Сезон 1: «Охота на Пустоту» *Текущий сезон. Фаза 1.* Люди объединились ради одной цели — уничтожить **Void Emperor**, правителя тьмы, чьи армии разрушили мир. **Арка:** - Зоны 1–40: выживание, первые схватки с демонами - Зоны 41–70: открытие силы Лазурита - Зоны 71–99: герои становятся легендами, куют артефакты - Зона 100: штурм Иного мира, убийство Void Emperor **Финальный твист:** После смерти Void Emperor его сила разлетается по миру и оседает в героях. Впервые герои смотрят друг на друга как на конкурентов. > *"Мы убили бога. Но Разлом остался."* **Награды Сезона 1 по рейтингу вкладчиков:** | Место | Награда | |---|---| | 1 | Титул «Убийца Пустоты» (навсегда рядом с именем) | | 2 | Легендарный скин оружия с эффектом тьмы Void Emperor | | 3 | Эксклюзивный питомец — мини Void Emperor | | 4 | Значок на профиле первого сезона | | 5 | +500 Лазурита и редкий чертёж при старте Сезона 2 | --- ### 🌑 Сезон 2: «Печать» *Будущий сезон.* Разлом без хозяина стал нестабильным — выбрасывает волны тьмы. Учёные выяснили: нужно собрать огромное количество чистого Лазурита со всего континента. **Механика:** - Фармишь Лазурит в зонах - ПВП обязательно: ставишь 100 на кон - Победил → +200 и увеличенный лимит сдачи - Проиграл → −100 и базовый лимит - Весь сервер совместно накапливает общий прогресс **Финал:** Общий счётчик заполнен → финальный рейд всем сервером на Разлом. Запечатывание. > *"Мы выиграли. Но какой ценой."* **Награды Сезона 2:** | Место | Награда | |---|---| | 1 | Титул «Хранитель Печати» | | 2 | Скин брони «Печать» с рунами и свечением Лазурита | | 3 | Рамка профиля «Разлом» — анимированная с трещинами тьмы | | 4 | Эффект удара — в ПВП удары оставляют след Лазурита | | 5 | Уникальный артефакт для ветеранов С2 | --- ### 🔱 Сезон 3: «Новый Порядок» *Дальний план.* Разлом запечатан. Мир восстанавливается. Лазурит теперь валюта власти. Начинается война за контроль над континентом. **Механика — захват территорий:** - Континент разделён на регионы - Гильдии захватывают регионы через PvP - Контролируешь регион → пассивный доход Лазурита - Один особый регион — **Сердце Печати**: кто контролирует в конце сезона — Правитель Tontarria **PvP форматы:** | Формат | Описание | |---|---| | Дуэли | 1×1, ставка Лазурит | | Осада | Гильдия атакует регион гильдии | | Турнир | Сезонный чемпионат | | Засада | Нападение на игрока везущего Лазурит | > *"Void Emperor хотел уничтожить людей. Победители просто хотят ими править."* **Награды Сезона 3:** | Место | Награда | |---|---| | 1 | Титул «Правитель Tontarria» (один игрок на сервере) | | 2 | Скин «Владыка» с короной и эффектом власти | | 3 | Именной регион — носит имя победителя до конца следующего сезона | | 4 | Эффект входа — все видят появление Правителя в локации | | 5 | Вечный значок Правителя на профиле | --- ## 3. Классы Шесть классов. Выбирается при создании персонажа, **не меняется**. | Класс | EN | Главный стат | Тип урона | Стиль | |---|---|---|---|---| | Воин | Warrior | STR | Физический | Танк/ДД, тяжёлая броня | | Боец | Fighter | STR | Физический | Агрессивный ближний бой | | Охотник | Hunter | DEX | Физический | Дальний бой, луки | | Разбойник | Rogue | DEX | Физический | Быстрый, двойные кинжалы | | Маг | Mage | INT | Магический | Посохи, AoE урон | | Чернокнижник | Warlock | INT | Магический | Жезлы, DoT, дебаффы | ### Лор классов **Воин / Warrior** Бывшие солдаты рухнувшей Империи Тарр. Присягали королям, которых больше нет. Теперь сражаются не ради присяги — ради выживания тех, кто остался. Кольчуга, щит, меч. Символ порядка в хаосе. **Боец / Fighter** Уличные бойцы и арена. Не признают доспехов сверх минимума — только кольчуга и кулаки. Нет правил, нет чести, есть результат. Первыми врываются в бой, последними уходят. **Охотник / Hunter** Годами охотились на тварей за пределами городов, когда стены ещё держались. Лук — часть тела, лес — второй дом. В мире, где опасность везде, они чувствуют её раньше остальных. **Разбойник / Rogue** Тени и воры. Когда цивилизация рухнула, одни грабили руины — другие научились быть невидимыми. Двойные кинжалы, быстрые ноги, холодная голова. Смертоноснее всего в темноте. **Маг / Mage** Учёные древнего мира, выжившие после Разлома. Когда обнаружили что Лазурит усиливает магию — переписали все свитки заново. Посохи из кристаллизованного Лазурита. Знание — их оружие. **Чернокнижник / Warlock** Не просто изучили магию тьмы — приняли её. Там, где маги боялись, чернокнижники шли дальше. Жезлы из костей демонов, проклятия длиннее жизни. Их ненавидят и зовут одновременно. **Броня по классу:** - STR-классы (Воин/Боец) → Кольчуга (mail) - DEX-классы (Охотник/Разбойник) → Кожа (leather) - INT-классы (Маг/Чернокнижник) → Ткань (cloth) ### Базовые статы и прокачка — ребаланс (на ДЕВЕ, 2026-06-21) > Источник правды: `combat-system-spec.md` §1–2 (валидировано симулятором `balance-sim-v2.js`). Залито на дев фазой 1a. Прод — по отдельной команде. **Базовые статы (1 уровень):** | Класс | HP | ATK | DEF | Крит | Резист (≈) | magATK | |---|---|---|---|---|---|---| | Воин | 130 | 8 | 14 | 5% | высокий | 0 | | Боец | 105 | 14 | 8 | 8% | средний | 0 | | Охотник | 95 | 10 | 7 | 16% | низкий | 0 | | Разбойник | 90 | 11 | 5 | 14% | низкий | 0 | | Маг | 115 | 14 | 3 | 3% | высокий | 0 | | Чернокнижник | 115 | 12 | 4 | 2% | высокий | 2 (magCrit 2%) | Рост за уровень: maxHP ×1.02, ATK ×1.01, DEF +1, **+3 очка статов/уровень**. **Очки статов (3/уровень) — эффект по классам:** | Стат | Тяжёлые (Воин/Боец) | Ловкие (Охот/Разб) | Маги (Маг/Чернокн) | |---|---|---|---| | STR | Воин +2.0 ATK / Боец +2.5 ATK | — | +1 DEF | | DEX | +0.1% крит | +2 ATK, +0.2% крит | +1 DEF | | INT | +1 DEF | +1 DEF | +2 magATK, +0.1% magCrit | | VIT | +8 HP | +7 HP | +8 HP | | SPIRIT | +2 резист | +2 резист | +2 резист, +0.1% magCrit | **vit-DR:** после **30** очков, вложенных в VIT, каждое следующее даёт **×0.5 HP** (анти-каст-танк). > ⚠️ Существующие персонажи на новую базу переходят через **бесплатное окно сброса класса/проф (1 неделя)** — фаза 1b. Новый PvP-движок (раздельный блок, классовый крит, пробитие, скилы, ульты) — фаза 2. --- ## 4. Механики ### 4.1 Боевая система - Ход — один удар: герой атакует моба, моб атакует героя - Победа: HP моба → 0 - Поражение: HP героя → 0 (автовосстановление после) - **Прочность снаряжения снижается после каждого боя:** −1 при победе, −2 при поражении - Кольца и амулеты прочность **не теряют** ### 4.2 Профессии Два типа — **крафтовые** (1 выбирается навсегда*) и **собирательские** (1 выбирается навсегда*). *Сброс профессии возможен за лазурит (один раз). **Крафтовые:** | Профессия | EN | Что крафтит | Своя броня | |---|---|---|---| | Кузнечное дело | Blacksmithing | Кольчуга | mail_* | | Кожевничество | Leatherworking | Кожаная броня | leather_* | | Портняжное дело | Tailoring | Тканая броня + амулеты | cloth_*, amulet_cloth_* | | Огранка | Gemcutting | Кольца, амулеты-кристаллы, самоцветы | ring_*, amulet_gem_* | | Алхимия | Alchemy | Зелья, элексиры | — | | Чародейство | Enchanting | Зачарования, руны | — | **Собирательские:** | Профессия | EN | Что добывает | |---|---|---| | Горняк | Miner | Руда → слитки | | Ткач | Weaver | Лён/шёлк → рулоны | | Охотник (скиннер) | Skinner | Шкуры → кожа | | Травник | Herbalist | Травы → порошки | **Важно:** Крафт чужой профессии → стоимость ×5 (ингредиенты и лазурит). Крафт своей → ×1. ### 4.3 Прочность (Durability) - COMMON: 100 | UNCOMMON: 150 | RARE: 200 | EPIC: 300 | LEGENDARY: 500 - 0 прочности → предмет сломан, не даёт бонусов - Ремонт: за лазурит (мгновенно для non-legendary) - Собирательский сет изнашивается **только в экспедициях** (−0.5/час) - Оружие и боевая броня изнашиваются **только в боях** ### 4.4 Улучшение (Enhancement) Кузница → улучшение до +3. | Уровень | Множитель ATK/DEF | Бонус гл. стата | Бонус VIT | Лазурит | Материалы (своя проф.) | |---|---|---|---|---|---| | +1 | ×1.25 | +2 | +1 | 20 | 1 шт. каждого | | +2 | ×1.50 | +4 | +2 | 50 | 2 шт. каждого | | +3 | ×1.75 | +6 | +3 | 120 | 3 шт. каждого | Материалы: `iron_ingot`, `leather_common`, `linen_roll`, `powder_lightbloom` Чужая профессия → материалы ×2. Оружие всегда ×1. ### 4.5 Экспедиции Герой уходит на 2/4/6/8 часов, приносит ресурсы по профессии. - Таймер подтверждения отправки: 3 секунды - Прочность собирательского сета снижается в экспедиции - Кольца/амулеты из экспедиций **не падают** ### 4.6 Рейд-боссы #### Личный босс (Personal Boss) У каждого игрока свой, сбрасывается раз в неделю. 4 босса — элементали, ротация еженедельно по циклу. | ID | RU | EN | Элемент | HP | |---|---|---|---|---| | 1 | Элементаль огня | Fire Elemental | fire | 5 000 | | 2 | Элементаль воды | Water Elemental | water | 5 000 | | 3 | Элементаль земли | Earth Elemental | earth | 5 000 | | 4 | Элементаль ветра | Wind Elemental | wind | 5 000 | #### Рейд-босс (Raid Boss) Общий для всего сервера. Сменяется ежемесячно. 12 боссов — 12 месяцев. Атакуют все игроки вместе. | Месяц | RU | EN | HP | |---|---|---|---| | Январь | Ледяной колосс | Frost Colossus | 10 000 000 | | Февраль | Древний дракон хаоса | Ancient Chaos Dragon | 12 000 000 | | Март | Пожиратель миров | World Eater | 15 000 000 | | Апрель | Король демонов | Demon King | 18 000 000 | | Май | Титан бури | Storm Titan | 20 000 000 | | Июнь | Владыка теней | Shadow Lord | 22 000 000 | | Июль | Феникс возмездия | Phoenix of Vengeance | 25 000 000 | | Август | Левиафан бездны | Leviathan of the Abyss | 28 000 000 | | Сентябрь | Страж вечности | Eternal Guardian | 30 000 000 | | Октябрь | Повелитель нежити | Undead Overlord | 32 000 000 | | Ноябрь | Архидемон войны | Archdemon of War | 35 000 000 | | Декабрь | Бог хаоса | God of Chaos | 40 000 000 | - Петы дают бонусы только в PvE (личный босс + рейд-босс) ### 4.7 Чародейство (Enchanting) Третья ось прокачки гира: **база** → **улучшение (+1/+2/+3)** → **зачарование**. **Аффиксы (6 типов):** | Ключ | RU | Эффект | |---|---|---| | might | Сила | +% физ/маг урон | | magic | Магия | +% физ/маг урон | | ward | Оберег | −% входящий урон | | resist | Сопротивление | −% входящий урон | | vitality | Жизнь | +% макс HP | | precision | Меткость | +% крит | **Грейды и диапазоны (might/magic/ward/resist):** | Грейд | Диапазон | Шанс успеха (базовый) | |---|---|---| | COMMON | 2–4% | 90% | | UNCOMMON | 4–7% | 80% | | RARE | 7–11% | 65% | | EPIC | 11–16% | 50% | - Навык чародейства увеличивает и шанс и значение аффикса (макс навык 600) - Профессия Чародейство: +10% к шансу успеха, значение аффикса ×2 **Распыление (Disenchant):** предмет → эссенция + пыль по грейду **Апгрейд пыли:** 10 dust[N] + 1 рафинир. ресурс → 1 dust[N+1] ### 4.8 Ежедневные квесты 3 квеста в день (ротация одинакова для всех на каждую дату). | Квест | Задача | Награда | |---|---|---| | Охотник | Убить 15 монстров в PvE | 50 лазурита | | Исследователь | Завершить 2 экспедиции | 30 лазурита | | Алхимик | Скрафтить 5 зелий | 40 лазурита | | Добытчик | Заработать 100 лазурита | 60 лазурита | | Ежедневный вход | Зайти в игру | 20 лазурита | Пул: 5 квестов, каждый день случайные 3 из них. ### 4.9 PvP - Дуэли 1×1 со ставкой Лазурита - Победитель забирает ставку соперника - Прочность снаряжения снижается в PvP --- --- ## 5. Экономика ### Лазурит (Lazurite) 💎 - Основная F2P валюта - Добывается: бои, квесты, экспедиции, рейды - Тратится: крафт, улучшение, ремонт, ПВП-ставки ### Кривые добычи и колба энергии — ребаланс 2026-06-21 *Цель: убить инфляцию лазурита и эксплойт «бой → колба → бой».* **Опыт с монстра (XP за килл):** - До 40 ур. — как в бестиарии (без изменений). - С 41 ур. — растёт всего **+1% за уровень**: `xp(L) = 1050 × 1.01^(L−40)`. Прокачка 41→100 ≈ 4 760 убийств (free-игрок ~3 мес, VIP ~1.5). **Лазурит с монстра (за килл):** - До 25 ур. — как в бестиарии. - С 25 ур. — растёт **+1% за уровень**: `laz(L) = 47.5 × 1.01^(L−25)`. Хвост выполаживается (L100: ~10 500 → ~100/килл), мид-гейм 25-40 беднеет ~вдвое. **Колба энергии (`energy_flask`):** - База 600 лазурита, +3 энергии (= 3 боя). - **Прогрессивная цена:** первые 5/день по 600, далее **+50 за каждую** (6-я 650, 7-я 700…). Сброс 00:00 UTC. Формула `600 + 50 × max(0, куплено_сегодня − 5)`. - При плоской кривой лазурита колба убыточна на всех уровнях → петля «бой → колба → бой» мертва. **Энергия (без изменений):** 1 энергия/бой; запас 25 (с L31, +10 VIP); реген +1/30 мин. ### Рубины (Rubies / Diamonds) 💎 - Премиум валюта = TON - Покупаются за TON через TON Connect - Тратятся: коробки с питомцами, VIP, премиум-магазин, торговля питомцами ### Рынок (Marketplace) - Открывается после глобального ивента «Строительство рынка» - Торговля за **рубины** (не лазурит) - Лицензия не нужна — доступен всем **Правила:** | Параметр | Значение | |---|---| | Минимальная цена лота | 100 рубинов | | Макс. активных лотов | 5 (VIP: 10) | | Срок лота | 24 часа (потом снимается) | | Плата за выставление | Лазурит, зависит от редкости | **Плата за выставление лота (лазурит):** | Редкость | Стоимость | |---|---| | COMMON | 50 | | UNCOMMON | 100 | | RARE | 200 | | EPIC | 500 | **Торгуются:** оружие, броня, расходники — **от UNCOMMON качества** (COMMON не торгуется) **Не торгуются:** кольца, амулеты, ресурсы крафта, лазурит, предметы COMMON грейда --- ## 6. Питомцы (Pets) *Реализация: 2-я итерация после базового запуска* ### Коробки | Тип | Цена | |---|---| | Обычная | 500 рубинов | | Золотая | 1000 рубинов | ### Скины Волк / Лиса / Кобан (толстый золотой кабанчик) ### Редкости и бонусы | Редкость | Цвет рамки | Звёзды | Бонус | |---|---|---|---| | Uncommon | 🟢 Зелёный | ⭐ | 3% | | Rare | 🔵 Синий | ⭐⭐ | 6% | | Epic | 🟣 Фиолетовый | ⭐⭐⭐ | 9% | - Тип бонуса рандомный при распаковке: урон PvE / крит / опыт - Работает только в PvE (личный босс + рейд-босс) - 1 активный пет одновременно ### Мердж (3-я итерация) Два пета одинаковой редкости → попытка повышения редкости. - Стоимость: ~500 лазурита (Uncommon), ~1500 (Rare) - Успех → редкость выше + новый бонус - Провал → редкость та же + бонус +1% (не выше базы следующей редкости) - Макс 2 попытки на пета. Epic не мерджится. - Шансы: Uncommon ~30–40%, Rare ~15–25% ### Коллекция (4-я итерация) Собрал все 3 скина одной редкости → постоянный пассив (пример: +2/4/6% золота с монстров) ### Торговля Между игроками за рубины. NFT нет (архитектура заложена: `nftAddress: null`). --- ## 7. Гильдии *Концепт. Реализация — Сезон 1 / Сезон 2* - Создание и вступление - Гильдийный рейд (совместный) - GvG — гильдии воюют за территории (Сезон 3) - Гильдийный чат --- ## 8. Контентный план по фазам ### Фаза 1 (текущая — v1.0.0) - [x] 6 классов - [x] Боевая система (зоны) - [x] Крафт (кузница, мастерская, огранка, кожевник, ткач) - [x] Профессии крафтовые и собирательские - [x] Прочность и ремонт - [x] Улучшение предметов (+1/+2/+3) - [x] Экспедиции (2/4/6/8 ч) - [x] Рейд-боссы (личный + общий) - [x] PvP дуэли - [x] Алхимия (5 зелий + 2 бутылки) - [x] Магазин (лазурит + рубины) - [x] Глобальный ивент «Строительство рынка» - [x] Рынок (marketplace) - [x] Ежедневные квесты ### Фаза 2 - [ ] Питомцы (коробки → распаковка → бонусы) - [ ] Чародейство (зачарование предметов) - [ ] Гильдии (базовые) - [ ] Версия v0.1.0 отображается в игре ### Фаза 3 - [ ] Мердж питомцев - [ ] Коллекция питомцев - [ ] GvG (гильдии vs гильдии) - [ ] Рейтинг сезона с наградами --- ## 9. UI / UX принципы - Мобильный Telegram Mini App — экран ~390px - Тёмная тема, fantasy стиль - Шрифты: **Forum** (заголовки), **Golos Text** (текст) — Cinzel кириллицу не держит - Цвета: CSS-переменные (`--text-gold`, `--ton-blue`, `--text-secondary`) - Навигация: нижний бар (5 вкладок) - Inline-стили везде (нет CSS-модулей) - Анимации: CSS только, без тяжёлых библиотек --- ## 10. Технический стек | Компонент | Технология | |---|---| | Фронтенд | React + TypeScript + Vite | | Бэкенд | Fastify + TypeScript | | БД | PostgreSQL 17 (порт 5433) | | ORM | Prisma | | Blockchain | TON Connect, toncenter API | | Деплой | VPS + PM2 + Nginx + SCP | | Бот | Telegram Bot API (feedback bot) | **Серверы:** - Dev: `dev.tontarria.org` / PM2: `tontarria-dev` (порт 3001) - Prod: `tontarria.org` / PM2: `tontarria-backend` (порт 3000) - Хост: `root@89.167.21.103`