Библия запуска · приватная бета
МидасФи
Общий пул на стейблах, маркет-мейкинг и ребейты на Polymarket, результат — по долям. Книга для друзей-тестеров и для нас самих: всё, что работает, что доказано живыми деньгами и что ещё нет.
Статус: прод открыт 28.09, чистый старт 01.10, приватная бета для друзей начинается 05.10; казна по ленте 64.24 $, площадка, распределитель и доли — 0; денег друзей в пуле ещё нет.
Эта книга — для двух читателей сразу: для друзей-бета-тестеров, которым владелец Сол покажет её перед первым взносом, и для нас самих как внутренний справочник. Поэтому тут всё: и как завести 30 $, и какие константы держат пул, и что мы ещё не доказали. Без мелкого шрифта. Каждое число взято из кода, боевой базы (только чтение) или документов docs/; чего не нашли — так и написано: «не найдено».
Источники сборки: четыре отчёта сборщиков от 05.10.2026 (хронология, продукт, константы, деньги/тест-план), сверенные куратором по первоисточникам: docs/STATE-BETAKENT-2026-10-05.md, docs/HANDOFF-PRIVATE-BETA-2026-10-01.md, docs/FINALSTAGECLON4-2026-09-30.md, docs/VYVOD-NE-PROSADKA-2026-10-05.md, git-история, боевая база refgate-test.db (имя историческое, это прод).
1Кто мы и что такое МидасФи
Простыми словами
МидасФи — это общий пул на стейблкоинах. Вы заводите USDT или USDC (от 30 $) через Telegram-бота @xcvnfro_bot («мидаспродакшн») и кабинет midasfi.ai420.live, деньги едут на площадку Polymarket, где наш движок делает маркет-мейкинг и собирает ребейты (вознаграждение площадки за выставленную ликвидность). Результат — прибыль или убыток — делится между участниками по долям пула. Прибыль видна в кабинете, вывод — заявкой из кабинета на ваш адрес.
Это торговля, а не вклад под процент. Доход не гарантирован. Убыток ложится на цену доли всех участников. Бот говорит это сам, в разделе «О проекте».
Делаем это трое: владелец Сол (деньги, выкатка, стопы), куратор (приёмка, разведка, эта книга) и агентная оркестрация (Claude Code и Codex, сотни запусков агентов). Проект живёт в репозитории poly-prodx с 29.07.2026 и вырос из предка MidasGate (05.07.2026).
Чуть глубже
Система состоит из трёх частей:
- Кабинет и бот (
refgate/) — регистрация, кошельки клиентов, окна пополнения, сторож приходов, свип на казну, доли, заявки на вывод, рефералка, Мана и ранги. Службаpoly-prodx-refgate-X20prod. - Ядро пула (
integration/) — NAV, выпуск долей, расчёт периода, комиссии, замки, лента (вечный журнал проводок). Деньги в ядре — только целые «атомы» (1 $ = 1 000 000 атомов), никаких float. - Фарм (
polyfarm-core/) — движок маркет-мейкинга на Polymarket (polyfarm-live) и рубильник (polyfarm-ctl), который считает чистый результат и глушит движок при просадке.
Три закона, на которых всё держится: лента = цепь (журнал проводок обязан сходиться с балансами в блокчейне при каждом закрытии суток), отказ ≠ ноль (непрочитанное значение — это ошибка и остановка, а не «0»), деньги двигаются только внутри контура казна → площадка → распределитель.
Честно про хранение: модель кастодиальная. Ключи кошельков клиентов, казны и площадки — у оператора (подробно в разделе 4). Бот сам пишет в FAQ: «Где деньги? В общем пуле стратегии, доступ — у команды».
2Статус сейчас и стадия готовности
Замер 05.10.2026, 15:01–15:05 UTC.
| Что | Состояние | Чем подтверждено |
|---|---|---|
| Прод | открыт с 28.09 ~19:55 UTC; код = снимок 2026-10-05-b9198d0 | служба активна с 14:41 05.10 |
| Чистый старт | 01.10: площадка 0, доли 0, синтетики 0, казна = цепь | лента, запись C6 chistyj-start-0110c, «ДВИНУТО, 4 проводки» |
| Казна (по ленте) | 64.24 $ (64.236336) | hq_posting; до вывода владельца 05.10 09:07 было 120.71 |
| Площадка Polymarket | 0 (usdc 0, позиции 0, pending 0, verified:true) | дашборд фарма /api/hq |
| Распределитель | 0 | STATE §0, §2 |
| Доли | 0 | STATE §2 |
| Поток площадки | занесено 822.350179 = выведено 822.350179, в дороге 0 | /api/venue_flow, пересчёт по bridge_ops и venue_withdrawals сходится до атома |
| Закрытия суток | 17 строк 18.09–04.10 без дыр; последние 6 (29.09–04.10) — сами, в 00:00:02–04 UTC | hq_period_close |
| Сторож расчёта | последний акт — clear (29.09 05:00), расчёт не стоит | hq_halt |
| Демоны | watcher, sweeper, payout, bridge, settlement, treasury-watch ×2, rpc-meter — живы | daemon_heartbeat |
| Фарм | включён 05.10 09:14, точка отсчёта e0 = 0; движок ждёт депозитов («нет слотов», автоподъём каждые 5 мин) | yieldmaxpro.log, polyfarm-ctl |
| Расход RPC (Ankr) | 6 зовов/час в простое, отказов 0; второй ключ подключён 05.10 08:37 | audit_log.rpc_meter_hour |
| Пользователи | 19 строк: 17 active, 2 pending_reg; живых с Telegram — 4; остальное — синтетика клона 4 с нулевыми долями; аккаунт владельца удалён 4-часовой уборкой, нужна перерегистрация | users |
| Тесты | refgate 8157 зелёных / 30 красных (эталон, поимённо), core 991→999, root 1370 | VYVOD §, STATE §14 |
| Деньги друзей | ещё не было; первой полуночи с ними не было | STATE §10 |
Что работает: регистрация, кошельки, окна пополнения, сторож, свип, занос на площадку по 4 парам, закрытие суток, выпуск долей по цене 1, ранний вывод с штрафом, очередь выводов, межсетевые мосты казны, учёт потока площадки для фарма.
Что доказано живыми деньгами: 19 пунктов в разделе 6 (взносы на 4 парах, мосты, закрытие с деньгами, ранний вывод за 8 с, чистый старт, сторож долга).
Что не доказано: вывод без штрафа после кулдауна, фарм на чужих деньгах, первый внешний клиент, второй круг выпуска долей, рефка живыми деньгами, боевая тревога стопа. Полный список — раздел 6.
3Продукт и условия клиента
Боевые ручки (из боевой настройки службы, 05.10): минимальный взнос 30 $, окно пополнения 20 мин, не больше 5 окон в сутки, минимальный вывод 5 $, 4 часа на первый депозит после регистрации, magic-ссылка живёт 15 мин, лимита пула нет, золото ≤ 25 %, минимальный забор золота 20 $, пыль на казне 0.01 $, все паузы = 0.
3.1 Как начать
- Вход — из Telegram-бота: капча-пример, одноразовая magic-ссылка на сайт (15 мин), на сайте логин + пароль (минимум 8 знаков) + обязательная привязка Google Authenticator (2FA). KYC нет. Аккаунт = ваш Telegram. (
refgate/src/texts.py:347-418,api.py:653-690) - Приглашение. Личная ссылка
t.me/<бот>?start=<код>, красивые коды, сайт/r/<код>. Окно «только по приглашению» (30 дней от 05.09) по расчёту закончилось 05.10; фактический порядок беты — друзья по приглашениям. (texts.py:920-994,config.py:1193-1203) - Кошелёк. Сразу после регистрации создаётся ваш адрес (один во всех EVM-сетях); приватный ключ показывается в спойлере. Если недавно меняли 2FA — ключ выдадут через 24 ч. (
texts.py:126-145,config.py:111) - 4 часа на первый депозит. Иначе аккаунт удаляется уборкой неактивных (раз в 5 мин). Если на кошельке уже лежит ≥ 0.05 $, но записи депозита нет — аккаунт не удаляется, владельцу уходит крик, деньги разбирает человек. Админ из уборки не исключён: 05.10 она удалила аккаунт самого владельца. (
config.py:522,run.py:170-300)
3.2 Пополнение
Сети и токены — ровно четыре пары: BSC USDT, Base USDC, Arbitrum USDT, Arbitrum USDC (refgate/src/networks.py:11-23). Polygon у системы есть только «глазами» казны и площадки — вносить туда нельзя, платить оттуда нельзя. Другие токены и сети — мимо системы: деньги остаются на вашем кошельке, не зачисляются.
Минимум 30 $ относится к сумме, отправляемой в проект. Меньше — статус below_min, деньги лежат на кошельке, бот пишет «столько в проект не отправляется, деньги никуда не делись». Активация аккаунта и отметка «приглашён» срабатывают уже от 0.05 $ — аккаунт «активен», а тела в пуле нет, пока не отправлено ≥ 30 $. Приход меньше 0.01 $ с чужого адреса вообще не проводится (пыль). (sweeper.py:499-518, watcher.py:870-905)
Окно приёма 20 минут. Сторож слушает ваш адрес только после нажатия «Включить приём / Пополнение» и только 20 минут, не больше 5 окон за скользящие 24 ч; шестое — отказ. Опрос раз в минуту; без окон — ноль вызовов к цепи. Перевод в последние секунды окна засчитывается по времени блока (доказано: Base, за 20 с до конца окна). (config.py:186-187, db.py:4250-4430)
Перевели вне окна? Автоматически не зачтётся. Дорога назад — кнопка «🔍 Проверить транзакцию»: пересканирует недавние блоки, делит те же 5 квот, не чаще 1 раза в минуту (отказ «слишком часто» — не «ничего не найдено»). Свой же исходящий перевод (например, выплата на тот же адрес) за депозит не принимается. (onchain.py:46, deposit_check.py)
«Отправить в проект» — отдельная кнопка. Сторож только записывает приход. Деньги уходят на казну, когда вы сами нажимаете «Отправить в проект» (или админ ставит свип за вас). Без нажатия — ни пула, ни долей. Свип берёт ровно записанную сумму, газ платит платформа (распределитель «капает» нативку на ваш кошелёк). (api.py:1402-1458, sweeper.py:1-8)
Комиссии мостов — кто платит:
- Занос на площадку (казна → Polymarket): делится между теми, чьи деньги ехали, пропорционально; ваша часть вычитается из «ждущего» → чуть меньше долей. Живой замер 30.09: с 31 $ дошло 30.919–30.994 (0.02–0.26 %).
- Межсетевой мост казны (Across основной, Relay запасной): комиссия ложится на всех держателей через цену доли; при пустом пуле — на платформу. На ленте: 1.50 $ «комиссии мостов, оплачены платформой».
- Вывод с площадки (pUSD → USDT): разница «ушло − дошло» в расход пула. Замер: 30 pUSD → 29.90 USDT.
Предел одного заноса 1 000 000 $ (практически нет), порог автозаноса 5 $, в «мёртвом окне» 23:45–00:15 UTC заносы не едут. Лимит пула снят (POOL_CAP_USD=0): защиты «от слишком большого взноса» нет.
3.3 Доли и цена
- Деньги работают сразу после доезда до площадки («теневой фарм»), но доли выпускаются только на границе суток 00:00 UTC по цене границы. (
integration/cycle.py:~300-335) - Цена доли = NAV / доли. Первая цена = 1 (доказано 30.09: 123.838296 $ = 123.838296 доли). При нуле долей NAV обязан быть 0, иначе стоп.
- Взнос, дающий 0 долей, — отказ; деньги ждут.
- Теневой фарм (закон L11, скрытое условие): заработок первых часов до выпуска долей клиенту не идёт — делится пополам между проектом и уже существующими держателями; убыток этих часов целиком на проекте.
- Мёртвое окно 23:45–~00:15 UTC: факты этого окна уходят в следующий период.
3.4 Прибыль, убыток, комиссии
- Результат суток = ребейты + торговля − издержки. Убыток целиком ложится на цену доли всех держателей; при убытке комиссии с результата нет.
- Прибыль: распределяется по долям; комиссия проекта персональная и берётся из вашей награды только с прироста выше вашей прежней отметки (high-water mark). У кого цена ниже отметки — не платит. (
integration/distribution.py:~495-530) - Сколько: база 50 %, далее сдвиг по рангу («Ауре»): вы оставляете себе ранг % (40–60), проект берёт остальное. Старт — ранг 50 (50/50). Лестница: Смертный 40 → Мист 45 → Вакхант 50 → Эпопт 55 → Избранный 60. Ранг растёт Маной (+1 п.п. = 300 × 1.4^(ранг−50) Маны), Мана капает только при теле ≥ 50 $. Падает за ранний выход. (
integration/referral.py:71-219,gamify.py) - Невостребованная награда: клиент, сделавший вывод ≥ 5 $ в сутках, теряет право на распределение за эти сутки (доли и тело остаются); его часть — 50 % казне, 50 % бонусом остальным. Отмена заявки право не возвращает. (
eligibility.py:79,distribution.py:420-470) - Дань рефереру 5 % золотом раз в месяц — при комиссии с его приглашённых ≥ 500 $, ≥ 10 приглашённых, каждый из которых принёс проекту ≥ 30 $ комиссии, и собственном капитале ≥ 500 $. (
hq_tribute.py:88) - Лидерборд — ники и титулы без сумм.
3.5 Выход
Два разных срока, не путать:
- 48 часов — кулдаун от свипа. Отсчитывается от подтверждения отправки в проект (не от прихода на кошелёк и не от выпуска долей). До его конца деньги этого свипа выводить нельзя вообще; штраф тут ни при чём. Считается посуммно: старые деньги свободны, даже если рядом свежий занос. (
config.py:93COOLDOWN_HOURS_BY_LAW = 48,hq_rights.py:42-131) - 30 суток — замок тела. Штраф 10 % берётся с той части тела, которой меньше 30 пул-дней (возраст — разность календарных дней UTC, FIFO по партиям). (
lockup.py:42-43,integration/lockup.py:59-60)
Фраза «вывод без штрафа после 48 ч» в документах говорит про кулдаун, а не про отмену штрафа. Правильно так: после 48 ч вывод возможен; штраф 10 % — только с тела младше 30 суток; прибыль выводится первой и без штрафа в любой момент; комиссия 1 % — с любого вывода.
Состав вывода (withdraw_request.py:~690-800):
- Запрошенная сумма делится на прибыльную часть (идёт первой, без замка и штрафа — закон L19) и тельную.
- Золото (по желанию): 0–25 % суммы шагом 5 %, только из прибыли, без штрафа и без 1 %; обратно в стейбл не меняется; покупается на бирже с проскальзыванием (~0.3 %); минимальный забор 20 $.
- Штраф 10 % — со стейбл-части тела младше 30 суток.
- Комиссия 1 % — со стейбл-части после штрафа, округление вниз. Пример: 100 $ целиком молодого тела → штраф 10.00, комиссия 0.90, на руки 89.10. Живой эталон 01.10: 30.00 → штраф 3.00, комиссия 0.27, на руки 26.73 USDT, выплата за 8 с.
- Все удержания видны в предпросмотре до нажатия.
Ещё о выходе:
- Репутационный штраф (L3): касание тела младше 30 суток → ранг −2 п.п., прогресс Маны сгорает, Мана ×0.5 на 7 пул-дней; списывается при подаче заявки, отмена не возвращает. Дробить вывод бесполезно.
- Минимум вывода 5 $. Вывод ≥ 5 $ снимает право на распределение суток (см. 3.4).
- Куда: вы указываете сеть/токен/адрес из четырёх пар; можно на свой адрес пополнения. Polygon/pUSD клиенту не платится.
- Защита: код 2FA на каждый вывод; после смены 2FA вывод, золото и ключ заперты 24 ч; 2FA отключить нельзя.
- Очередь. Если распределителю нечем платить — заявка ждёт, баланс не списывается, владельцу уходит крик. Очередь оживает сама, старшая первой. Если деньги есть — секунды. Если нет — зависит от оператора: наполнение распределителя (вывод с площадки) ручное, по подтверждению владельца, SLA в коде нет. Одобренная заявка без единой оплаченной ноги автоотменяется через 24 ч, резерв возвращается.
3.6 Рефералка
- Ставка — по рангу реферера: 2 / 3 / 4 / 6 / 8 %, от чистого дохода приглашённого за сутки, платится из доли проекта, не из кармана приглашённого; не больше личной комиссии приглашённого за период. (
integration/referral.py:71-77,hq_referral.py) - Глубина — один уровень (
PAID_UPLINE_DEPTH = 1). - Гейт на реферере: у него самого должно быть ≥ 50 $ под риском. Нет — начислений нет, сколько бы ни внёс приглашённый.
- Начисляется кругом на границе суток; «созревания» нет (статус
maturedобъявлен в схеме и не используется). - Рефка — отдельный карман: не фармит, не облагается замком, штрафом, Маной, рангом; в пул не переводится. Вывод — только на свой адрес пополнения, от 10 $, с 1 % операционной платы, не при открытом окне пополнения. Автовывод от 50 $ в коде не найден («ждёт отдельного слова владельца»).
- Остатки синтетической рефки клона 4 зачищены 05.10 (60 строк →
clawed_back).
3.7 Двадцать скрытых условий — списком
- Свип не автоматический: без «Отправить в проект» нет ни пула, ни долей.
- Минимум 30 $ — к сумме отправки; меньше лежит на кошельке; активация и «приглашён» — уже от 0.05 $.
- Окно приёма 20 мин, ≤ 5 в сутки; вне окна авто-зачёта нет, нужна кнопка «Проверить транзакцию» (1/мин, делит те же квоты).
- Другая сеть/токен (Polygon, BNB, ETH…) не зачисляются; отмены свипа не существует — вернуть можно только обычным выводом, 1 % платится в любом случае.
- Кулдаун 48 ч от подтверждения свипа — до его конца вывод запрещён.
- Доли только в 00:00 UTC; первые часы — теневой фарм, заработок не ваш. Внесли в 00:01 — ждёте почти сутки до долей и 48 ч до вывода.
- Замок тела 30 суток: штраф 10 % + комиссия 1 %; плюс −2 п.п. ранга, потеря прогресса Маны, ×0.5 Маны на 7 дней — при подаче заявки, отмена не возвращает.
- Любой вывод ≥ 5 $ в сутках отнимает награду за эти сутки (50/50 казне и остальным), отменой не возвращается.
- Комиссия проекта 40–60 % по рангу, не «всегда 50/50»; с прироста выше вашей отметки.
- Золото: только из прибыли, ≤ 25 %, шаг 5 %, обратно в стейбл нельзя, ~0.3 % проскальзывания, забор от 20 $.
- Комиссия моста: при заносе — с вас (меньше долей); ребалансировка казны — на всех через цену; при пустом пуле — на платформу.
- Нет гарантий дохода; убыток ложится на цену доли. Единственный живой замер фарма (17–19.08) — торговый результат около −18.5 $ при ребейте около +4 $ за три дня на ~356 $; фарм остановлен владельцем 19.08 и включён снова 05.10 (подробно в разделе 7).
- Очередь вывода: если у распределителя пусто — «выплатим по мере поступления» без срока; пополнение вручную; автоотмена одобренной заявки без ног через 24 ч.
- 2FA нельзя отключить; после перепривязки вывод/золото/ключ заперты 24 ч.
- Рефка: только если у реферера ≥ 50 $ под риском; выводится только на свой адрес пополнения от 10 $ с 1 % и не при открытом окне; один уровень.
- Аккаунт без депозита за 4 ч удаляется (даже админский); с ≥ 0.05 $ на кошельке — не удаляется, но деньги разбирает человек.
- Мёртвое окно 23:45–00:15 UTC: заносы не едут, факты уходят в следующий период.
- Тексты бота частично устарели: FAQ «досрочно — через поддержку», «первый месяц по приглашению» (по расчёту уже не действует).
- Лимит пула снят, защиты от слишком большого взноса нет.
- Паузы (
BRIDGE/PAYOUT/SWEEPER/SETTLEMENT_PAUSED) в бою = 0, но существуют: под паузой свипера деньги лежат у вас, под паузой расчёта сутки не закрываются.
4Как ходят деньги
Параллельно идёт лента (hq_journal / hq_posting): каждое движение проводится до или сразу после цепи; на границе суток сверка «лента = цепь» (допуск 0.5 единицы на актив); при расхождении расчёт стоит (hq_halt), и его снимает только владелец.
Кто держит ключи (без значений) — кастодиально
- Кошелёк клиента выводится из сида распределителя по HD-пути (один адрес на клиента во всех EVM-сетях). Клиенту показывают его приватный ключ, повторная выдача даёт тот же ключ, но платформа тоже может им подписывать — свип клиентского кошелька делает она. Кошелёк описан клиенту как «транзитный». (
refgate/src/wallets.py:1-25) - Казна 0x8eba…6900 — одновременно личный кошелёк владельца; его движения проводятся в ленте как «владелец». Адрес закреплён в коде.
- Площадка (кошелёк фарма) — подписывает владелец EOA казны; relayer-ключ Polymarket у оператора.
- Распределитель — свой ключ, отдельная ветка деривации.
- Клиент не может вывести деньги с площадки сам: только заявкой через пул.
5Хронология и цифры пути
5.1 Хронология
| Дата | Событие |
|---|---|
| 05.07.2026 | git init предка MidasGate: TG-гейт-бот, контур кошельков (транзитные, казна «6900», распределитель), сети BSC/Base/Arbitrum |
| 12–13.07 | Предок стабилен: аудит безопасности «6 эр, 31+ раундов, 40+ уязвимостей, 6 P0 — все закрыты», 68 тестов |
| 27.07 | Старый фарм: нейтральный ребейт доказан на бумаге; боевой тест на 200 $ дал −18.81 $ на событийном рынке, стоп по порогу −5.75 |
| 29.07 | Первый коммит poly-prodx 4b9e211 «bootstrap isolated poly-prodx foundation»; импорт кабинета refgate |
| 29–31.07 | Ядро фарма скопировано с криминалистикой (SHA-манифесты, инвентарь секретов); живая золотая петля 31.07 |
| 03.08 | Девять маршрутов моста Polymarket доказаны микро-депозитами по 2.50 $ (4 сети); первая Claude-сессия в папке проекта |
| 07.08 | Первый живой круг: три клиента, занос, мост, отчёт; мутации 23/23 |
| 16.08 | Спека MVP, лента штаба hq_journal; FINAL-REPORT (обнуление ещё не выполнено: 4351 транш, 5163 записи леджера, 10 пользователей) |
| 17–19.08 | Фарм живыми деньгами (~356 $): 17.08 «допуск отвергал каждый рынок без комиссии», 18.08 «параметры награды выдумывались — заявки не скорились 13 часов»; 19.08 владелец остановил фарм. Итог — в разделе 7 |
| 02–04.09 | Клон 1.0, мастер-прогон: настоящий Polymarket, 6 клиентов, часы ×288, 9 дыр, цена ~9 $; метка PREDMEGACLON |
| 05.09 | Клон 2.0: рефералка и золото живыми деньгами, 11-я дыра (лента знала СКОЛЬКО, но не ГДЕ); FINALPOINT, FINALPOINT-2 |
| 06–07.09 | Клон 3.0: Аура/Мана/карма, золото-льгота, одна книга; 8 законов из 9 доказаны; RELEASE-1-AURA, KLON-3-SOBRAN, RELEASE-2-DAN, RELEASE-3-PRIBYL; казна 169.50 |
| 08.09 | Самый плотный день — 141 коммит |
| 09–20.09 | Подготовка клона 4: KORESHASTART+…, PREDKLON-4 (09.09), KLON-4-ISTOCHNIK (10.09), выкат пяти денежных дорог VYKAT-2026-09-13, POINTARH/POINTARH2, ZATVOR-2026-09-14, PRECLON4 (16.09), MEGAKLON4-GOTOV (17.09), рой 12 полос / 56 находок (20.09) |
| 21–27.09 | Боевой прогон клона 4: 13 клиентов, виртуальные часы ×24 (сутки = час), 9 ускоренных закрытий (18–26.09), досрочная дань 3.196745 $; выход когорты 27.09 |
| 28.09 | Прод открыт (~19:55 UTC): сверка C6 «лента = цепь», сняты паузы |
| 29.09 | Сторож распределителя остановил расчёт (долг 0.520566 $, на цепи 0); владелец пополнил, 28.09 закрыт прибором; выкачен рой d9d0301 (окно 20 мин, опрос 60 с, кнопка 1/мин, расходомер RPC) |
| 30.09 | Межсетевые мосты Across/Relay; живой прогон 4 пар по 31 $ (площадка 123.85); отчёты .md; метка FINALSTAGECLON4 (672b4c7) |
| 01.10 | Закрытие 30.09 само (цена 1); ранний вывод 30 → 26.73 за 8 с; выкат ядра 36e6fdc; чистый старт — площадка 0, доли 0, казна = цепь |
| 02.10 | Перезагрузка сервера 09:37 — служба поднялась сама |
| 05.10 | BETAKENT (чистый старт беты); зачистка остатков голов клона 4 (3.068393 $ рефки + 0.097293 $ тела, 60 строк рефки); второй ключ RPC; фарм включён 09:14; выкат «вывод ≠ просадка» (b9198d0); BETAKENTSTART 14:42 UTC (1e50a51) |
«Клон 5» (13.09) — только документы и оснастка; был ли прогон — не найдено.
5.2 Цифры пути
| Число | Значение | Откуда |
|---|---|---|
| Коммитов | 1658 | git rev-list --count HEAD |
| Дней проекта | 69 (29.07 → 05.10), с коммитами — 55 | git log |
| Пиковые дни | 08.09 — 141, 10.09 — 138, 16.09 — 109, 09.09 — 103 | git log |
| Меток (git tag) | 104, из них 70 release/* | git tag |
| Клонов-стендов на живых деньгах | 4 (1.0, 2.0, 3.0, мегаклон 4) | MASTER.md, теги |
| Маршрутов моста доказано | 9 (03.08, микро-депозиты 2.50 $) | MASTER.md |
| Пар сети доказано взносами | 4 из 4 (30.09) | bridge_ops |
| Закрытий суток | 17 = 9 ускоренных (клон 4, 18–26.09) + 2 вручную (27.09, 28.09) + 6 подряд сами (29.09–04.10) | hq_period_close |
| Запусков агентов | 443 (108 + 335 в двух главных сессиях), 5 вложенных | транскрипты |
| Главных Claude-сессий | 3 (03.08–01.10 92 127 строк; куратор 31.08–05.10 86 976 строк; 26.09) + 110 файлов субагентов | ~/.claude/projects |
| Сессий Codex | ~31 по рабочим папкам (оценка; точное число не найдено) | ~/.codex |
| Упоров в лимит Claude | 19 (13 session, 5 weekly, 1 monthly); первый 06.08, последний 01.10 | isApiErrorMessage |
| Роёв | 12 полос / 56 находок (20.09), рой d9d0301 (29.09, 4 крыла), свод 4/4 (30.09) | STATE, коммиты |
| Дыр | 11 к 05.09; 22 находки закрыты в 6 кругах приёмки; 56 находок роя; 10 строк «найдено и исправлено» 29.09–01.10. Общей цифры не найдено (разные классы, суммировать нельзя) | MASTER, HANDOFF |
| Инцидентов в журнале | 12 записей (17.08 → 05.10) | раздел 5.3 |
| Тесты сейчас | refgate 8157 зелёных / 30 красных (эталон 32 = 20 имён + 12 календарных), core 999, root 1370 | STATE §14 |
| Тесты в динамике | FINALPOINT-2 (05.09): 2949/1062/885; KORESHASTART+ (09.09): 6548; 30.09: 8113 | теги |
5.3 Инциденты
| Дата | Что | Итог |
|---|---|---|
| 17–19.08 | Фарм живыми деньгами в минусе; остановлен владельцем | перезапуск 05.10 с новым учётом |
| 20.09 | Относительный путь уронил боевой круг в «ИСХОД НЕИЗВЕСТЕН» | путь от модуля, класс закрыт |
| 20.09 | Инцидент безопасности в соседнем проекте на том же сервере (к МидасФи не относится) | порты закрыты, алерты |
| 21–26.09 | Наблюдатели прогона переподключались по ssh каждые 30 с → бан собственного адреса | снял владелец через консоль |
| 27–28.09 | Жёсткий allow-list ssh отрезал и владельца при смене адреса | вернули через консоль хостера |
| 28.09 | Наблюдатель входов отстал на 7–14 суток | якорь «сутки назад» |
| 29.09 00:00 | Сторож распределителя остановил расчёт: долг 0.520566 $, на цепи 0 | владелец пополнил, ~5 ч простоя расчёта |
| 29→30.09 | Агент приёмки запустил поиск по всему диску — 852 мин CPU, прод не отвечал ~14 ч | kill; запрет записан в законы |
| 28–30.09 | RPC: зависшие операции жгли 17–104 тыс. запросов/сутки | простой 144 зова/сутки, кнопка 1/мин, второй ключ 05.10 |
| 30.09 | Сторож не видел перевод в конце окна; отчёт > 4096 знаков не доходил; Base-пара не доезжала; минус пустого пула от комиссии моста; свип Base упал на «insufficient funds have 0» от отставшего узла | все закрыты (HANDOFF §6–7) |
| 02.10 | Перезагрузка сервера | служба сама |
| 05.10 | Фарм при первом запуске принял бы вывод за просадку (ложные −1178.69) | фикс b9198d0 |
6Доказано живыми деньгами / не доказано
6.1 Доказано (боевая база, только чтение)
| # | Что | Когда | Улика | Сумма |
|---|---|---|---|---|
| 1 | Взнос + сторож поймал сам, BSC USDT | 30.09 | deposits 165, sweep_legs 110 done, bridge_ops 18 done | 31.00 → на площадке 30.943468 |
| 2 | Взнос + сторож, Arbitrum USDT | 30.09 | deposits 166, sweep_legs 111, bridge_ops 19 | 31.00 → 30.919003 |
| 3 | Взнос + сторож, Arbitrum USDC | 30.09 | deposits 167, sweep_legs 112, bridge_ops 20 | 31.00 → 30.994100 |
| 4 | Взнос + сторож, Base USDC (первый свип упал на отставшем узле, второй прошёл) | 30.09 | deposits 168, sweep_legs 113 failed → 114 done, bridge_ops 21 | 31.00 → 30.993400 |
| 5 | Межсетевой мост Across, BSC USDT → Arbitrum USDT | 30.09 | mezhsetevye_mosty 1, arrived | 33.00 → 32.988885 |
| 6 | Межсетевой мост Relay, BSC USDT → Base USDC | 30.09 | mezhsetevye_mosty 2, arrived | 33.00 → 32.902733 |
| 7 | Межсетевой мост Relay, BSC USDT → Arbitrum USDC | 30.09 | mezhsetevye_mosty 3, arrived (на 0.001 больше котировки) | 33.00 → 32.902883 |
| 8 | Перевод в последние секунды окна засчитан по времени блока | 30.09 | deposits 168, «за 20 с до конца окна» (слова документов) | 31.00 |
| 9 | Занос на площадку по паре ноги — все 4 пары | 30.09 | bridge_ops 18–21 done | 123.849971 |
| 10 | Закрытие суток с ненулевой площадкой, выпуск долей по цене 1 | 01.10 00:00:04 | hq_period_close 2026-09-30, venue 123.849971; доли 123.838296 (HANDOFF) | 123.85 |
| 11 | Ранний вывод: штраф 10 %, комиссия 1 %, выплата за 8 с | 01.10 06:03:52 → 06:04:00 | withdrawal_requests 7, paid, early=1 | 30.00 → 3.00 + 0.27 + 26.73 |
| 12 | Снятие с площадки под выплату | 01.10 | venue_withdrawals 18 done | 30.00 → 29.902707 |
| 13 | Чистый старт: площадка 0, долей 0 | 01.10 | venue_withdrawals 19 (93.849971 → 93.642869); hq_journal 805–808 correction.chistyj-start-0110c | — |
| 14 | Поток площадки: занесено = выведено до атома | 05.10 | /api/venue_flow: 822.350179 / 822.350179 / net 0 | 822.35 |
| 15 | 17 закрытий суток без пропусков дат | 18.09–04.10 | hq_period_close | — |
| 16 | Сторож расчёта остановил закрытие на долге при нуле на цепи; снят владельцем | 29.09 | hq_halt 15 halt → 16 clear (actor owner) | долг 0.520566 |
| 17 | Зачистка остатков голов клона 4 | 05.10 09:18 | hq_journal 819 correction.zachistka-golov-0510 | 3.068393 + 0.097293 |
| 18 | Расход RPC в простое — единицы зовов в час | 05.10 | rpc_meter_hour: 2 узловых + 4 advanced в час, отказов 0 | ~144/сутки |
| 19 | Поток площадки виден фарму и пулу | 05.10 14:41 | polyfarm-ctl: RESUME e0=0.00 … net=0 injected=0 withdrawn=0 | 0 |
Закрытия суток подробно: 9 строк (18–26.09) созданы пачками 21.09 и 27.09 — это ускоренный прогон клона 4, не живые полуночи; 27.09 закрыто 28.09 00:02; 28.09 закрыто вручную 29.09 05:00 после остановки сторожа; далее 6 подряд сами в 00:00:02–04 UTC (29.09, 30.09, 01.10, 02.10, 03.10, 04.10). Из этих шести деньги в закрытии были только в одном (30.09); остальные закрылись при площадке 0 — это доказывает механику демона, а не расчёт на деньгах. Седьмое самостоятельное закрытие ожидается 06.10 00:00 UTC.
6.2 Не доказано
- Вывод после кулдауна 48 ч — ни разу живыми деньгами (все боевые выплаты с
early=1; единственная сearly=0— синтетика клона 4). - Фарм на деньгах друзей — не включался на чужих деньгах; движок после
b9198d0ни разу не котировал с реальным потоком. - Первый внешний клиент на каждой паре — на 4 парах вносил тест владельца/куратора (аккаунты 32–35); ни одного человека со стороны.
- Неделя самостоятельных закрытий на деньгах — самостоятельных 6, с деньгами 1.
- Второй круг выпуска долей и деление результата на настоящей торговле — после 01.10 долей 0.
- Рефка живыми деньгами — настоящая выплата ни разу не прошла.
- «Вывод ≠ просадка» на живом фарме — исправлено и покрыто пробами (21 + 43), но в бою не воспроизведено; открытый компромисс: пока вывод в пути, убыток до его суммы может спрятаться.
- Независимое ревью (Codex) разделов 6–7 STATE — в документах как критерий, выполнения не найдено.
- RPC под нагрузкой — в простое 6 зовов/час; с окнами 5–10 друзей одновременно не снимали.
- Стоп-тревога фарма в боевом канале — канал готов (
alert_channel_ready14:41), но срабатывание на деньгах не доказано (22.08 стопы не доходили:ALERT_CHANNEL_MISSING).
7Фарм — честно
Что это
Фарм — движок маркет-мейкинга на Polymarket (polyfarm-core, служба polyfarm-live). Он выставляет котировки с двух сторон рынка, собирает ребейты площадки за ликвидность и управляет инвентарём: отбегает от крупных продаж (flee), добирает вторую ногу (hedge), распродаёт излишек ступенями. Над ним стоит рубильник (polyfarm-ctl): раз в 5 минут считает чистый результат net = econ − e0 − поток (поток = занесено − выведено, спрашивается у пула) и глушит движок при пробое порога.
Боевые параметры движка (05.10): 26 $ на рынок, не больше 2 рынков одновременно, резерв 0, окно до резолва 6 ч … год, минимальный наградной пул рынка 4 $/день, просадка сессии −40 $ → аварийная распродажа. Причина выбора каждого числа — не найдена в коде и документах.
История августа — две версии и одна правда
Версия документов (STATE §7, 05.10): «17–19.08: ребейт +7.31 $, торговля −1185.99 $, нетто −1178.69 $». Это число ложное. Оно взято из строки журнала рубильника 05.10 06:58, когда точка отсчёта (e0 = 356.34 от 17.08) была устаревшей, а площадку с тех пор опустошили выводами на 1588.65 $ (venue_withdrawals, 7 строк done), и рубильник эти выводы не вычитал. Это баг учёта, описанный в docs/VYVOD-NE-PROSADKA-2026-10-05.md.
Версия журнала фарма (yieldmaxpro.log): 17.08 05:52 точка отсчёта 356.34; 18.08 15:57 нетто −9.30; 18.08 19:18 скачок до +47.93; 22:39 — «+64.78» (econ 421.12, ребейт 4.15), без изменений до 19.08 04:20; 19.08 04:35 HALT … по решению владельца. Но +64.78 — тоже не результат: внутри сидит занесённое за это время (поток не вычитался).
Что считаем правдой (сверено куратором по первоисточникам): реальный торговый результат за 17–19.08 — около −18.5 $ (замер в коде farm_controller.py, комментарий «ЗАМЕР 19.08.2026»: −18.46 $ при пороге −5.75), ребейт — около +4 $ (4.15 по журналу 19.08 04:20). Фарм остановлен владельцем 19.08; причина решения в логах и документах не записана. Ложные −1178 — урок, из-за которого 05.10 выкачен фикс «вывод ≠ просадка».
Что ещё честно: результат фарма до 17.08 и между 19.08 и 05.10 — не измерен («записей о торговом результате за окно у нас нет вовсе», RESHENIYA-VLADELTSA.md). Ребейт за три дня — единицы долларов на ~356 $: фарм ребейтов пока не доказал, что кормит пул. Выплаты ребейта в paid исторически — 7 записей на 40.51 $.
22.08 в журнале — серия ROUGH_HALT … net<=-40, HALT_FAILED, ALERT_CHANNEL_MISSING: канал тревоги тогда не был настроен, стопы не доходили. Контекст (боевая просадка или учебная проба) — не найден.
Стопы — что глушит фарм
| Стоп | Порог | Как работает |
|---|---|---|
| Просадка сессии (движок) | −40 $ | dd = (старт + поток) − эквити; гистерезис 3 проверки (~90 с) → аварийная распродажа книги + файл HALTED (снимает только владелец) |
| Слепой стоп (движок) | 20 проверок подряд без прочитанного эквити или потока (~10 мин) | стоп новых котировок без распродажи + HALTED |
| Рубильник: чистый результат | берётся слабейший из «−10 % заведённого капитала» и пола; пол = −50 % заработанного либо −5.75 $ (пока заработок ≤ 0 или неизвестен) | шаг 5 мин, гистерезис 2 проверки; капитал сжимается выводом — порог вместе с ним |
| Рубильник: поток не прочитан | 3 отказа подряд (~15 мин) | гасит фарм; прочитанный поток сбрасывает счётчик |
| Вывод в дороге > 6 ч | пул отвечает 409 | «исход неизвестен» → слепота, не ноль |
Сейчас: капитал 0, порог −5.75, движок ждёт депозитов, автоподъём каждые 5 мин (счётчик рестартов 65+ — шум в журнале, не авария).
«Вывод ≠ просадка» — чему научились
- Вывод с площадки пишется в ленту до отправки (
open_venue_withdrawal), поток знает о нём заранее. - Точка отсчёта фарма ставится только в тихое окно: ни одного перевода в дороге, ни одного движения.
- Выводить с площадки только через пул (раннер
polymarket_withdrawal_run, подтверждение владельца, жетон = последние 6 знаков адреса). Ручной вывод на сайте Polymarket фарм примет за убыток. - Неудачный вывод не вычитается и под тем же жетоном не открывается повторно.
- Настоящая просадка поверх вывода/заноса остаётся видимой (пробы
test_a_withdrawal_does_not_hide_a_real_loss,test_a_deposit_does_not_hide_a_real_loss). - Три августовских якоря (
HALTED,live.sqlite.baseline= 356.34,yieldmaxpro_state.json) убраны в архив 05.10; новая точка e0 = 0 с 09:14:51.
8Хрестоматия констант и правил
Обозначения: «код» — значение в коде/умолчании; «бой» — значение в боевой настройке службы (05.10); «=» — то же. Номера строк на снимке b9198d0; строки плывут, ищите по имени. Настройка читается на импорте: правка входит в силу только на следующем старте службы. Действующий закон = число из боя + факт перезапуска. Суффикс _BY_LAW = решение владельца без ручки настройки (ручки нет намеренно).
8.1 Пополнение
| Имя | Код | Бой | Где | Зачем |
|---|---|---|---|---|
MIN_DEPOSIT_USD_BY_LAW / MIN_DEPOSIT_USD | 30 | 30 | config.py:164 | Слово владельца 08.09. Ручка может быть только строже (отказ на старте) |
BRIDGE_MIN_USD (автозанос) | 5 | = | config.py:140 | «Не копить очередь, заносить сразу» |
BRIDGE_MAX_USD | 100 (запас) | 1 000 000 | config.py:49 | Владелец 05.09: предела заноса нет; снятие предела — действие, не умолчание |
POOL_CAP_USD | 0 = лимита нет | 0 | config.py:227 | Закон L13 (07.09). Механизм потолка цел |
DEPOSIT_WINDOW_MINUTES | 20 | 20 (29.09 было 10) | config.py:186 | Владелец 29.09: «смотреть 20 мин только когда клиент нажал пополнение» |
DEPOSIT_WINDOWS_PER_DAY | 5 | 5 | config.py:187 | Владелец 10.09 |
watcher.POLL_INTERVAL | 60 с | = | watcher.py:37 | Опрос внутри окна раз в минуту (было 15 с постоянно) |
TAIL_GRACE | 130 с | = | watcher.py | Хвост окна = 10 с подтверждений + 2 × 60 с опроса; судится по времени блока |
CONFIRMATIONS | BSC 8, Base 5, Arbitrum 5 | = | watcher.py:41 | Подтверждения до зачёта |
BLOCK_TIME_SECONDS | BSC 0.4, Base 2.0, Arb 0.25 | = | networks.py:45 | Константы, живым замером не подтверждены |
| Якорь курсора | «сутки назад» (86400 с) | = | watcher.py:121 | Наблюдатель не отстаёт больше суток |
_WINDOW_MARGIN_SECONDS | 300 | = | watcher.py:122 | Запас на оценку блока по времени |
_ADDR_BATCH | 200 | = | watcher.py:60 | Адресов в одном фильтре getLogs |
watcher._DUST / DUST_FLOOR | 0.05 | = | watcher.py:61, sweeper.py:25 | Мельче не активируем и не свипаем |
SCAN_LIMIT_PER_MIN | 1 / 60 с | = | onchain.py:46-47 | Кнопка «проверить» — раз в минуту |
| Цена одного нажатия «проверить» | 23 зова при окне 20 мин | — | ZAKON-ANKR §2 | Счёт по коду, не замер |
ACTIVATION_HOURS | 4 | 4 | config.py:522 | Срок первого депозита |
REF_ONLY_DAYS | 30 | 30 | config.py:564 | Стартовое окно «только по приглашению» от 05.09 |
MAGIC_TTL_MIN | 15 | 15 | config.py:521 | Жизнь ссылки входа |
PASSWORD_MIN, PBKDF-раунды | 8; 200 000 | — | config.py:523, auth.py:14 | Гигиена входа |
8.2 Свип и сторожа
| Имя | Код | Бой | Где | Зачем |
|---|---|---|---|---|
SWEEP_INTERVAL | 10 с | = | sweeper.py:24 | Период проверки очереди свипа |
STUCK_UNKNOWN_TTL_S | 900 с; Base/Arb 300 с | = | sweeper.py:31,44-47 | Сколько ждать tx, которую сеть не знает; быстрые L2 — 180 с отправки + 120 запаса |
_STUCK_TTL (свип, мост) | 1800 с | = | sweeper.py:26, bridge_daemon.py:108 | 30 мин без квитанции — зовём человека |
_RECEIPT_TIMEOUT / _RECEIPT_POLL_LATENCY | 180 с / 2.0 с | = | chain.py:41-42 | Умолчание web3 0.1 с дало бы до 1800 зовов на одну tx |
| Гейт опроса висящей ноги | 180 / 1800 / 60 / 300 с | = | chain.py:127-130 | Моложе 3 мин — каждый проход; до 30 мин — раз в минуту; старше — раз в 5 мин |
_GAS_PRICE_BUFFER / ЗАПАС_ГАЗА_ПЕРЕВОДА | 1.3 / 1.4 | = | chain.py:299,646 | Запас над ценой и нуждой газа |
_FALLBACK_GAS | BSC/Base 120 000; Arb 1 200 000 | = | chain.py:40 | Arbitrum считает L1-данные в газе |
DUST_USD (казна) | 0.01 | 0.01 | config.py:372 | Закон L12: пыль в dust_log, чекпоинт «лента + Σ пыль = цепь» |
treasury_watch.ОКНО / ОКОН_ЗА_РАЗ / ЗРЕЛОСТЬ | 950 блоков / 40 / 600 с | = | treasury_watch.py | Узел отвергает диапазоны шире 1000; догон не съедает лимит; 10 мин перед необратимым |
| Шаг treasury-watch | 1800 с | = | heartbeat.py | Два демона (казна + распределитель) × 48 заходов |
ОЖИДАЕМЫЕ (heartbeat) | treasury-watch 1800; watcher 60; sweeper 10; payout 5; bridge 60; rpc-meter 3600; warm-gold 3600; settlement 86400 | = | heartbeat.py:133-173 | Имя не в словаре — не проверяется вообще (молчаливый простой 01.09) |
ТЕРПИМ_ПЕРИОДОВ | 2 | = | heartbeat.py:176 | Заход мог опоздать раз, не дважды |
ПОРОГ_ЧАСОВ_ОТСТАВАНИЯ (код / документы) | 2 ч / 24 ч | = | release_watch.py:115,125 | Отставание выкаченного кода от main |
ПОДРЯД_НЕ_СПРОШЕНО_КРИК | 3 | = | release_watch.py:129 | Три отказа измерить — слепота сторожа |
Внешний сторож (poly-prodx-watchdog.timer) | через 5 мин после старта, затем каждые 10 мин | = | systemd | Читает настройку заново |
| Автосинхра | каждые 15 мин + 00:00; в бою выключена | — | systemd | Выкатка только скриптом владельца |
_STUCK_SETTLE_TTL_H / _MAX_LEG_REVERTS | 48 ч / 5 | = | payout.py:59-61 | Частично оплаченная заявка; после 5 ревертов нога в карантин |
| Повтор крика | 3600 с (нога/сирота), 86400 с (зависшее) | = | hq_payout.py:264, sweeper.py:141 | Крик раз в час / раз в сутки |
| Лимиты Telegram | 4096 / 1024 / 3500 | = | owner_telegram.py:52-54 | Длина сообщения/подписи |
BUSY_TIMEOUT_MS / МЕСТО_ПОД_ЗАПИСЬ_MB | 30 000 / 256 | = | db.py:599,69 | Ждать дольше круга; запас диска |
8.3 Казна и мосты
| Имя | Код | Бой | Где | Зачем |
|---|---|---|---|---|
INTERVAL_SECONDS (демон заноса) | 60 с | = | bridge_daemon.py:70 | Такт |
РАСХОЖДЕНИЕ_ШАГ_S | 600 с | = | bridge_daemon.py:89 | Было 4 320 HTTP/сут одним отказом |
| Тревога о ждущих за лимитом | раз в сутки, недоставленная — через 10 мин | = | bridge_daemon.py:102-103 | |
| Дорога заноса | BSC / USDT | = | bridge_daemon.py:131-132 | Казна → площадка |
MICRO_PROOF_CAP_ATOMIC | 10 USDT | = | bridge_deposit.py:232 | Потолок микро-пробы моста |
bridge_distinct шаг/мин/макс | 0.0001 / 0.0001 / 0.1 | = | bridge_distinct.py:54-56 | Случайное уменьшение суммы, чтобы заносы были различимы |
| Межсетевой мост: потолок за заход | 100 $ | = | mezhsetevoy_most.py:151 | Числа дороги — «свои», не закон владельца |
| Потолок комиссии / проскальзывания | 1.00 % / 0.50 % | = | :152-153 | Худший замер 0.54 % (Relay) |
ПОРОГ_ВЫХОДА_BPS | 98.75 % | = | :161 | Минимум, гарантированный котировкой; худший живой 98.96 % |
КОТИРОВКА_ГОДНА_S | 90 с | = | :162 | От превью до подписи |
| Ожидание прихода / шаг опроса | 900 / 10 с | = | :163-164 | Дальше «в пути» |
| Казна → распределитель за заход | 100 $ | = | treasury_to_distributor_run.py:242 | |
routing.MAX_LEGS / MIN_LEG | 3 / 1 $ | = | routing.py:30-32 | Не больше 3 ног в выплате, нога не мельче 1 $ |
| Скан вывода с площадки | 900 × 40 = 36 000 блоков | = | polymarket_withdrawal_run.py:435 | Зеркало потолка getLogs |
СРОК_ПОЛЁТА_СЕКУНД | 1800 | = | db.py:5422 | Перевод «в дороге» не дольше 30 мин |
| Допуск «лента = цепь» | 0.5 на актив в его единицах (USDT BSC 0.5·10¹⁸; USDC 500 000; XAUt 150 атомов) | = | integration/reconciliation.py:85-93 | Решение владельца 19 (15.08): до $180/год проходит как шум |
| Потолок остатка NAV при чистом старте (C6) | 1.00 $, строгое «>» | = | lenta_ravno_tsep.py:839 | Остаток при долях = 0 списывается в расход; больше — отказ |
8.4 Доли и круг суток
| Имя | Код | Бой | Где | Зачем |
|---|---|---|---|---|
PERIOD_LENGTH | сутки 00:00 → 00:00 UTC | = | integration/period.py:44 | |
FREEZE_BEFORE_BOUNDARY | 15 мин | = | period.py:41 | Мёртвое окно 23:45–00:15; запуски владельца — вне окна |
SHARE_SCALE | 10¹⁸ | = | nav.py:56 | Масштаб доли |
| Цена доли при пустом пуле | 1 | = | cycle.py:310-315 | При долях = 0 NAV обязан быть 0 |
_ЧАСЫ_МОГУТ_РАЗОЙТИСЬ | 5 с | = | hq_period_close.py:167 | Запас на скачок NTP |
*_PAUSED (settlement/sweeper/payout/bridge) | 0 | 0 | config.py:303-326 | Стоп-краны; «по приказу» ≠ «умер» |
POOL_TEST_SAFE | 1 (код) | 0 | pool.py:98 | Ускоренных суток в бою нет |
POOL_SIM_ENABLED / TICK | — | 0 / 600 | бой | Симулятор выключен |
POOL_COMPOUND_PRICE / DAYS | 10 / 30 | 10 | pool.py:74-75 | Покупка закрыта на этапе 4 |
8.5 Выход и комиссии
| Имя | Код | Бой | Где | Зачем |
|---|---|---|---|---|
COOLDOWN_HOURS_BY_LAW | 48 ч от подтверждения свипа | = | config.py:93, hq_rights.py:42 | Решение 28.08: «занёс в среду в 15 — в пятницу в 15 сможет вывести» |
LOCK_DAYS | 30 | = | lockup.py:42, integration/lockup.py:59 | Замок тела; время стендом не деформируется |
EARLY_PENALTY_BPS | 1000 (10 %) | = | lockup.py:43 | Только с запертого тела, FIFO по лотам |
FEE_BPS (вывод) | 100 (1 %) | = | withdraw_request.py:68, fees.py:7 | На исполненную выплату |
_OPERATIONAL_FEE_BPS | 100 (1 %) | = | fees.py:16 | Реф-вывод; отдельная константа намеренно |
_PERFORMANCE_FEE_BPS | 5000 (50 %) | = | fees.py:6 | Только с положительного результата, никогда из красного |
MINIMUM_WITHDRAWAL_USD | 5 | 5 | eligibility.py:79 | Снимает право на период; ручка только строже |
withdraw_ttl_hours | 24 | 24 | config.py:525 | Заявка без ликвидности автоотменяется |
GOLD_MAX_PCT / GOLD_MIN_CLAIM_USD | 25 / 20 | 25 / 20 | config.py:534-535 | Золото из прибыли |
GOLD_SWAP_ENABLED | 1 | 1 | config.py:561 | Своп USDT→XAUt через KyberSwap |
_SWAP_SLIPPAGE_BPS / _MIN_OUT_TOLERANCE_BPS | 1 % / 3 % | = | gold.py:223,233 | Замер на 25 $ дал 0.29 % |
| Свежесть цены золота / газа | 28 ч / 6 ч | = | gold.py:73, hq_costs.py:87 | Chainlink XAU/USD heartbeat ~24 ч + запас |
RATE_BPS дани / ЖДАТЬ_СУТОК | 500 (5 %) / 3 | = | hq_tribute.py:88,122 | Ставка — закон, не настройка |
ШАГ_ДОЛИ_ЗОЛОТА | 5 % | = | withdraw_request.py:153 | |
| Зеркало ядра и службы | refgate/src/lockup.py ≡ integration/lockup.py | tests/test_lockup_mirror.py | Копия числа — два числа; сверяет проба |
8.6 Рефка и Мана
| Имя | Код | Бой | Где | Зачем |
|---|---|---|---|---|
| Реф-начисления | не облагаются замком, штрафом, кулдауном, Маной, рангом | — | ZAKON-REFKA (10.09) | Слово владельца |
| Налог на вывод рефки | 1 % (с 50 $ → 49.50) | = | там же | Единственный |
| Авто-вывод рефки | от 50 $ (слово владельца) | — | — | Дорога не найдена в коде |
POOL_REF_MIN_WITHDRAW | 10 | 10 | pool.py:82 | Ручной порог |
POOL_REF_TO_SELF / POOL_REF_NETWORK | 0 / BSC | 0 | pool.py:83,95 | Умолчание было 1 (платило рефку себе) |
PAID_UPLINE_DEPTH / MAX_UPLINE_DEPTH | 1 / 50 | = | referral.py:100,125 | «Рефка у нас одна» (16.09) |
RANK_REFERRAL_BPS | 40→2 %, 45→3 %, 50→4 %, 55→6 %, 60→8 % | = | referral.py:71 | Смертный / Мист / Вакхант / Эпопт / Избранный |
REVSHARE_MIN/MAX, START | 40 / 60 / 50 | = | referral.py:94-155 | Старт Вакхант 50/50 |
TRIBUTE_MIN_FEE_USD / MIN_REFS / PER_REF / MIN_CAPITAL | 500 / 10 / 30 / 500 | 500 / (код) / 30 / 500 | config.py:344-358 | Пороги дани |
MANA_GATE_USD | 50 | 50 | gamify.py:197 | Мана и рефка при теле ≥ 50 $ |
DAILY_MANA / COMPOUND_MANA / INVITE_MANA | 1 / 50 / 30 | = | gamify.py:246-248 | Награды Маны |
STREAK_MILESTONES | 7:10, 14:30, 30:60, 120:300, 365:1200 | = | gamify.py:249 | Огонь-вехи |
DISC_PENALTY_K | 0.5 | = | gamify.py:182 | Множитель дисциплины |
FARM_CAP, FARM_K, GOLD_BOOST, GOLD_CAP, GOLD_K, STRUCT_TURN_REF | 30, 15, 1.7, 25, 5, 1000 | = | gamify.py | Параметры Маны |
8.7 RPC (Ankr)
| Имя | Значение | Зачем |
|---|---|---|
| Ключ | один бесплатный аккаунт, общий с соседним проектом (~2000–2900 зовов/сутки в простое — не трогать); с 05.10 08:37 — второй ключ запасным, порядок основной → запасной | «Ключ не должен жечься дреном запросов» (29.09) |
| Кредиты | узловой ~200/зов, Advanced ~700/зов; месячный лимит 200 млн — входы задания, в кабинете не сверено | Расчёт бюджета |
| Бюджет простоя | ≈ 76 800 кредитов/сутки ≈ 2.3 млн/мес; вместе с соседом 14–20 млн/мес | |
| Живой замер 05.10 | 6 зовов/час, отказов 0 | rpc_meter_hour |
rpc_meter | пишет в audit_log раз в час: узловых, advanced, отказов, 429, по роду, по демонам; считает до отправки; никогда не бросает | Расхождение с бюджетом > 2× — разбирать |
cleanup | 20 кандидатов/проход, ≤140 зовов; funded — 1 проверка в час | Было до 403 200 зовов/сутки в худшем случае |
| Закон «0 зовов без окон» | без открытых окон наблюдатель в сеть не ходит | ZAKON-ANKR |
| Открыто | догон суток BSC/Arbitrum, цена методов в кабинете, gold.py без poll_latency, админ-веер балансов без ограничителя | не решено |
8.8 Фарм — движок
Служба polyfarm-live: --per-market 26 --max-markets 2 --buffer 0 --min-hours 6 --max-hours 8760 --min-pool 4 --max-drawdown 40 --live; Restart=always, автоподъём каждые 300 с.
| Имя | Значение | Строка | Зачем |
|---|---|---|---|
DD_HYSTERESIS_CHECKS | 3 (~90 с) | live_app.py:92 | Стоп −40 $ только при 3 проверках подряд |
EQUITY_BLIND_HALT_CHECKS / FLOW_BLIND_HALT_CHECKS | 20 (~10 мин) | :107, :114 | Слепой стоп без распродажи; 26.08 CLOB отдавал 502 ~90 с, запас ×7 |
max_drawdown_usd | 40 | :147 | Аварийная распродажа + HALTED |
| Формула просадки | dd = (start_eq + net_flow) − eq (с 05.10) | Точка отсчёта — пара (эквити, часы пула) в JSON, только в тихое окно | |
MERGE/REBALANCE/EXIT_MIN_INTERVAL_S | 3.0 | :57-58, :83 | relayer лимит 25/мин |
REBALANCE_MAX_PX / PENDING_TIMEOUT | 0.90 / 20 с | :59-60 | Тонущую ногу не гоним |
HEDGE_EDGE_MIN / HEDGE_PENDING_TIMEOUT_S | 0.01 / 6 с | :61, :77 | Добор второй ноги |
FEE_METADATA_TIMEOUT_S / FEE_CACHE_TTL_S | 2.0 / 60 | :62, :76 | Минутный кэш снял 12 вызовов из 13 |
MELT_FLEE_MIN_SIZE / MARGIN / HARD_SIZE / FLEE_COOLDOWN_S | 3 / 0.03 / 25 / 45 | :78-81 | Отбегание от крупных продаж |
ADVERSE_CAP_FRAC | 0.5 | :82 | Односторонний инвентарь ≤ 50 % капитала |
EXIT_LOSS_FLOOR / EXIT_MAX_LEVELS_PER_PASS / EXIT_DUST_NOTIONAL | 0.80 / 4 / 1 $ | :84-86 | Клир не глубже −20 % от средней |
ORPHAN_SWEEP_INTERVAL_S / FLOOR_RELAX / MAX_DEAD | 60 / 0.10 / 3 | :87-89 | Позиции вне слотов |
RECONCILE_QUIET_S / SLOT_AUDIT_INTERVAL_S | 45 / 30 | :90-91 | Не продаём излишек, если трогали < 45 с |
HQ_FLOW_URL_DEFAULT | внутренний адрес пула /api/venue_flow, таймаут 10 с | venue_flow.py:31-32 | Единственный разбор потока; строго целые атомы, иначе FlowUnreadable |
DATA_API_ATTEMPTS / RETRY_PAUSE_S | 3 / 1.2 | farm_controller.py:67-68 | 17.08 площадка отдавала 429 в 3 пробах из 6 |
RETRY_ATTEMPTS_BY_LAW / INTERVAL | 5 / 120 с | config.py:73-74 | Пять попыток по две минуты, затем админу |
8.9 Фарм — рубильник (farm_controller.py, служба polyfarm-ctl)
farm_controller.py, служба polyfarm-ctl)| Имя | Значение | Строка | Зачем |
|---|---|---|---|
NET_STOP_PCT_OF_CAPITAL | 10 | :42 | Владелец 07.09: «−10 % от того, что в пуле… мало ли три друга или 19» |
NET_STOP_FLOOR_PCT_OF_EARNED | 50 | :54 | Пол долей от заработанного |
NET_STOP_USD | −5.75 | :55 | Пол до первого замера и при заработке ≤ 0; не ноль |
| Выбор порога | слабейший из двух (дальше от нуля); капитал ≤ 0 или неизвестен → пол | :595-628 | Порог не туже прежнего −5.75 |
NET_STOP_HYSTERESIS | 2 | :56 | Фильтр спайка от лага сеттла (−7.24 → −0.75) |
CHECK_INTERVAL_S | 300 | :59 | Шаг цикла |
FLOW_UNREADABLE_HALT_CHECKS | 3 | :552 | Решение куратора 05.10 |
net | econ − e0 − net_flow | :544 | Капитал = e0 + поток |
trade_stop | в бою не задан | :961 | |
VENUE_OUT_STALE_HOURS | 6 | db.py:4575 | Вывод в sending > 6 ч → 409 |
| Файлы-якоря | HALTED, live.sqlite.baseline, yieldmaxpro_state.json | :69-75 | Сброшены 05.10 09:14; канал тревог обязателен («крик без адресата — тишина») |
8.10 Безопасность и прочие пороги
| Имя | Значение | Где | Зачем |
|---|---|---|---|
TWOFA_LOCK_HOURS_BY_LAW | 24 | config.py:111 | Угнавший Telegram успевает сменить 2FA, но не вывести |
key_reissue_cooldown | 30 с | config.py:281 | |
DB_PATH | только абсолютный, файл обязан существовать | config.py:421-461 | Относительный путь = пустая база = адреса мимо ленты |
USER_WALLET_DERIVATION_PATH | обязателен, без умолчания | config.py:492 | Разный апостроф — разные адреса, невыгребаемые деньги |
USER_WALLET_MIN_INDEX | 0 (бой); клону N → N·1000+1 | config.py:409,570 | Клон не выдаёт боевые адреса |
| Маска адреса | первые 6 и последние 4 знака | config.py:931 | Полный адрес в тексты не пишется |
| Несовпадение ролей | 4 роли (казна, распределитель, заработок, фарм) = 6 пар + ни один не клиентский | config.py:943-1188 | Отказ на старте |
ratelimit._MAX_KEYS | 20 000 | ratelimit.py:12 | Против memory-DoS |
SITE_JWT_SECRET | ≥ 24 символа, не дефолт | config.py:466 | fail-fast |
| Коды выхода раннеров | 0 успех; 3 неизвестно (не повторять); 4 dry-run; 5 moved-book-pending; 6 в пути; 7 пришло; 20 отказ до цепи; 22 не отправлено | mezhsetevoy_most.py:949-954 и др. | Единое различение «не ушло» / «неизвестно» |
| Атом | 1 000 000 | money.py:35 | Деньги — целые |
_MIN_REASON (сторно) | 12 символов | integration/reversal.py:40 | Причина словами |
8.11 Инварианты и законы (что держит и что ломается без него)
- Отказ ≠ ноль. Непрочитанное — ошибка и остановка, а не 0. Иначе порог 0 → мгновенный халт, пустой индекс клиентов = «проходи».
- Лента = цепь при закрытии (C6). Допуск 0.5 на актив; чекпоинт «лента + Σ пыль = цепь». Иначе расхождение копится молча.
- Лента вечная, пишется только законными дорогами; исправление — одной исправляющей записью, не правкой.
- Распределитель обязан покрывать свой долг, иначе расчёт стоит (29.09 так и было).
- Свип берёт ровно записанное и ходит по записи о приходе, а не по остатку кошелька.
- Занос на площадку — из той же пары, где лёг свип (доказано 4 мостами 30.09).
- Выпуск долей при пустом пуле требует NAV = 0; цена первого выпуска 1; нулевой выпуск — отказ.
- Мост казны: получатель = казна; контракт из белого списка; approve ровно на сумму; при пустом пуле — отказ до подписи; потолки 1 % / 0.5 % / 98.75 %; одна активная операция на дерево.
- Комиссию межсетевого моста несут пользователи; при пустом пуле — платформа.
- Вывод с площадки — только через пул (раннер). Ручной вывод на polymarket.com остаётся ложной просадкой.
- Вывод клиента ≠ просадка фарма. Движок:
dd = (старт + поток) − эквити; рубильник:net = econ − e0 − поток. - Новая точка отсчёта фарма — только в тихое окно.
- Неудачный вывод не вычитается и под тем же жетоном не открывается повторно.
- Незнание — отказ: висящий вывод > 6 ч ⇒ 409 ⇒ слепота движка (20 проверок) ⇒ стоп без распродажи; рубильник гасит на 3-м отказе.
- Настоящая просадка поверх вывода/заноса остаётся видимой (принятый компромисс: пока вывод в пути, убыток может спрятаться до его суммы).
- Наши кошельки разные (4 роли, 6 пар), ни один не клиентский; каждый клиентский адрес выводится из настроенного пути; база — абсолютный существующий путь.
- Порог вывода и минимальный депозит — из закона; ручка только строже.
- Скопированное число — это два числа. Одно объявление, остальные ссылаются; сторожат пробы (случаи 5↔30, 10↔5, 100↔10).
- Умолчание кода — не закон; закон = боевая настройка + перезапуск + четыре показания (файл/путь/время/число).
- Окно ввода: слушаем только 20 мин, опрос 60 с, 0 зовов без окон; кнопка 1/мин.
- Своя отправка на индекс клиента не читается депозитом (иначе петля и второй налог).
- Кулдаун 48 ч от подтверждения свипа; отмены свипа нет; право на период снимается выводом от 5 $ и отменой не возвращается.
- Замок 30 суток на тело, штраф 10 % только с запертого тела, FIFO по лотам; реф-начисления не облагаются.
- Дань 5 % — закон, пороги — настройки.
- Деньги двигаются только внутри контура казна → площадка → распределитель.
- Движения распределителя не проводятся лентой по устройству; проводятся движения владельца.
- Казна 6900 — одновременно личный кошелёк владельца; его движения проводятся как «владелец» (иначе ложная тревога об утечке, как 23.08).
- Только целые атомы, никаких float в деньгах;
Decimalв фарме. - Сторож у каждой цепи: дедуп, хеш до броадкаста, зрелость 600 с перед необратимым.
- Метка «уже кричали» ставится после доказательства доставки.
- «Стоит по приказу» ≠ «умер»; сторож, кричащий зря, к третьему разу не читается.
HALTEDдолговечен: фарм не запускается, пока владелец не снимет.- Выплата/свип/мост/расчёт — раздельные паузы; пауза — решение до границы, halt — по результату.
8.12 Операционные правила команды
Дерево и коммиты
- Коммиты только перечнем путей, без
git add ./-A, без--amend.git status --porcelainдо,git show --statпосле. Чужие неотслеживаемые файлы не трогать. - Раннер проб — никогда на боевом дереве (06.09 стёр живую настройку и уронил сторож). Только на копиях. Эталон 32 красных — не регрессия.
- Приёмке запрещать боевые скрипты поимённо даже из копии (21.09 переключилась живая служба).
- Принимает тот, кто не делал; приёмка независимая (Codex / code-reviewer); числа с чистой копии коммита с указанием способа.
- Мутировать не только код, но и тест; мутация сначала ломает свойство.
- Найденный паттерн выкорчёвывается везде, заочно и превентивно (владелец 08.09: «не хочу слышать "та же самая"»).
- Фикстура не должна лгать о бое; форма боевой базы — историей миграций.
- Проверять боевого зовущего, не только шов: инвариант без зовущего — комментарий.
- Прибор, которым снимают числа, обязан быть под историей и жить в своём мире.
- Числа — вместе со способом и миром.
Сервер
- Писать только в дерево проекта; соседние проекты read-only (сосед делит ключ RPC).
- Поиска по
/на сервере нет (30.09: 852 мин CPU, прод завис 14 ч). Только по названным каталогам и сtimeout. При «порт принят, баннера нет» — сначалаps aux --sort=-%cpu, не перезагрузка. - Доступ к серверу: одно долгое соединение, без перебора в цикле (иначе бан).
- Боевую настройку никуда не копировать (только симлинк). Секреты не печатать. Адреса — с маской. Правка входит в силу после перезапуска; доказывать четырьмя показаниями.
- Движение денег, выкатку и снятие стопов запускает владелец. Жетоны набирать латиницей руками. Приборы — вне окна 23:45–00:15 UTC.
- Стенд намеренно держит боевые ключи (07.09): «это же стенд» ничего не доказывает про деньги.
Выкатка и откат
- Выкатка снимком: свести в
main→ push → скрипт владельца:release_snapshot.sh→release_switch.sh <снимок>. Снимок замораживает код, но не настройку. - Откат пула:
release_switch.shна предыдущий снимок (2026-10-01-36e6fdc; текущий2026-10-05-b9198d0). Откат фарма:git revert+ перезапускpolyfarm-ctl/polyfarm-live. Порядок: первым фарм, потом пул. Откат кода — откат закона, и он молчит. - Выкатка «вывод ≠ просадка»: пул первым (
/api/venue_flowдолжен отвечать), потом фарм. - Здоровье: cwd главного процесса,
daemon_heartbeat, журнал службы,rpc_meter_hour,hq_period_closeпосле каждой полуночи. Диск 80 %, свободно 15 ГБ (05.10).
Деньги фарма
- С площадки выводить только через пул. Ручной вывод мимо раннера не виден.
- Пока вывод в пути, настоящий убыток может спрятаться до его суммы — принятый компромисс. Пул недоступен на старте → рубильник откладывает точку отсчёта.
- Фарм включается скриптом владельца; на пустой площадке движок ждёт депозитов.
Общение
- Вопросы владельцу — текстом в отчёте, не виджетом (18.08 виджет простоял 76 минут). Отчёты — файлом
.md, в чат коротко. Не дублировать «та же самая». - Развилки — к владельцу, мелочи решать самой. Критерий, дописанный после результата, критерием не является. «НЕЛЬЗЯ» почти всегда означает «НЕ СДЕЛАНО».
Не открывать заново (доказано): занос по паре ноги (4 моста 30.09); перевод в конце окна засчитывается (deposits 168); выход и штраф (заявка #7); чистый старт C6 01.10; расход RPC (rpc_meter_hour); ускоренных суток в бою нет; 32 красных пробы — эталон.
9Тест-план беты для друзей
Роли. Друг — клиент. Владелец и куратор наблюдают. Движение казны, снятие стопов, выкатку делает только владелец.
9.1 Что делает друг — по шагам
| Шаг | Действие друга | Что проверяем мы | Где смотреть |
|---|---|---|---|
| 1 | Открывает приглашение, регистрируется в боте @xcvnfro_bot, задаёт логин/пароль на midasfi.ai420.live, включает TOTP | В users строка pending_reg → pending_deposit; reg_deadline 4 ч | users, кабинет |
| 2 | В кабинете выбирает сеть и стейбл, получает адрес (BSC USDT / Base USDC / Arbitrum USDT / Arbitrum USDC) | Строка wallets; открылось окно deposit_windows (20 мин, ≤ 5/сутки) | wallets, deposit_windows |
| 3 | Переводит от 30 $ в течение окна | Сторож (опрос 60 с) ловит: deposits credited, сумма совпадает, detected_at по времени блока | deposits, daemon_heartbeat |
| 4 | Жмёт «Проверить транзакцию» (не чаще 1/мин) | Нет лавины зовов: rpc_meter_hour растёт на единицы | audit_log |
| 5 | Жмёт «Отправить в проект», видит статус «ждёт полуночи» | sweep_legs done; bridge_ops той же пары done; на площадке прирост ≈ взнос − мост | sweeps, bridge_ops, /api/hq, /api/venue_flow |
| 6 | Ждёт полуночи UTC | hq_period_close с venue_atomic > 0; доли по цене 1; нет остановки; отчёт владельцу .md | hq_period_close, hq_halt, hq_journal, бот владельца |
| 7 | Смотрит кабинет: доли, цена, история | Доли = внесённое после мостов / цена | кабинет, pool_state |
| 8 | Ранний вывод (тело младше 30 суток, после 48 ч кулдауна): просит вывод на свой адрес | withdrawal_requests early=1: штраф 10 % с тела, комиссия 1 % после (эталон 30 → 3.00 + 0.27 + 26.73); paid, tx; секунды | withdrawal_requests, payout_legs, venue_withdrawals |
| 9 | Вывод до 48 ч — должен быть отказ «срок удержания от свипа истекает …» | Отказ в предпросмотре, заявки нет | кабинет |
| 10 | Вывод прибыли (если пул в плюсе) | Прибыльная часть идёт первой, без штрафа, только 1 % | withdrawal_requests |
| 11 | Рефка: приглашает ещё одного друга | users.referred_by при первом депозите; referral_commissions accrued на границе суток; выплата от 10 $ на свой адрес | users, referral_commissions |
| 12 | Второй человек — на другой паре (цель: по одному клиенту на каждую из 4 пар) | То же, что 3–7 | как выше |
9.2 Что проверяем мы каждые сутки
/api/venue_flow?since=<начало беты>:net_flow_atomic= занесено − выведено;in_flight_*= 0 вне движений; 409 = отказ, разбирать.hq_period_close: новая строка после 00:00:0x UTC,venue_atomic≈ внесённому;hq_halt: нетhaltбезclear.- «Лента = цепь» для казны и распределителя (
treasury_checkpoints, treasury-watch ≤ 30 мин). daemon_heartbeat: watcher ≤ 60 с, sweeper ≤ 10 с, payout ≤ 5 с, bridge ≤ 60 с, settlement ≤ 24 ч.rpc_meter_hour: отказов 0, 429 0, тренд зовов.- Фарм:
yieldmaxpro.log(net / capital / net_stop / farm=),/api/hq, журналыpolyfarm-live,polyfarm-ctl. - Выплаты:
withdraw_queueожидающие;withdrawal_requestspending дольше минуты. - Расход мостов (
bridge_expense) растёт ожидаемо.
9.3 Куда смотреть
- Кабинет: midasfi.ai420.live. Бот: @xcvnfro_bot («мидаспродакшн»).
- Службы:
poly-prodx-refgate-X20prod(бот + API + демоны),poly-prodx-alertbot-X20prod(тревоги владельцу),polyfarm-live,polyfarm-ctl,polyfarm-dash-ours. - Внутренние API (только с сервера):
/api/venue_flowпула и/api/hqдашборда. - База (только
mode=ro):deposits,sweep_legs,bridge_ops,mezhsetevye_mosty,venue_withdrawals,withdrawal_requests,withdraw_queue,hq_journal/hq_posting,hq_period_close,hq_halt,referral_commissions,users,audit_log,daemon_heartbeat. - Документы:
docs/STATE-BETAKENT-2026-10-05.md(первым, §14 новее),docs/FINALSTAGECLON4-2026-09-30.md,docs/HANDOFF-PRIVATE-BETA-2026-10-01.md,docs/VYVOD-NE-PROSADKA-2026-10-05.md.
9.4 Что считать багом
Критичный (стоп беты, владельцу сразу, деньги не двигать):
net_flow_atomic≠ 0 без операции в дороге; лента ≠ цепь при закрытии;hq_haltбезclear; сутки не закрыты до 00:15 UTC.- Взнос в окне не засчитан за 2 цикла опроса или зачтён дважды.
- Свип забрал больше записанного; занос ушёл не из той пары;
bridge_opsнеdoneдольше 10 мин. - Вывод: сумма ≠ формуле (кулдаун 48 ч — отказ; штраф 10 % только с тела младше 30 суток; прибыль первой без штрафа; 1 % после штрафа); выплата больше заявленного; двойная выплата.
- Фарм принял вывод/занос за просадку (ложный
GLOBAL_DRAWDOWN_HALT/ROUGH_HALT) или не остановился на настоящем убытке; аварийная распродажа без причины. - Утечка в чате/логе: ключ, полный адрес, tg id.
Средний: заявка в withdraw_queue ждёт > 24 ч при деньгах на распределителе; сторож stale в daemon_heartbeat; rpc_meter_hour с отказами/429; сообщения бота не доходят; отчёт .md не пришёл.
Низкий: текст, вёрстка кабинета, медленная кнопка, неудобный вывод.
Куда репортить: владельцу Солу в личный Telegram; при критичном — сразу слово «стоп». Формат: время UTC, пара сети, user id (не tg id), id строки в таблице, ожидалось / случилось, скрин.
9.5 Критерии «бета → прод»
- Неделя закрытий суток без ручного вмешательства — с деньгами.
- Ни одной остановки расчёта без найденной причины.
- Минимум один настоящий клиент на каждую из 4 пар.
- Вывод после кулдауна 48 ч (и вывод прибыли без штрафа) доказан живыми деньгами.
- Расход RPC по счётчику в пределах бюджета.
- Независимое ревью (Codex) разделов 6–7 STATE.
10Риски
- Нет доказательства расчёта на настоящей прибыли/убытке. Все закрытия с деньгами — на синтетике клона 4 или на перегонах владельца/куратора; доли после 01.10 — 0.
- Фарм не доказал, что зарабатывает. Единственный живой замер (17–19.08): торговля около −18.5 $, ребейт около +4 $ за три дня на ~356 $; остановка 19.08 без записанной причины; результат между 19.08 и 05.10 не измерен.
- Ложные и слепые стопы. Фикс «вывод ≠ просадка» проверен пробами, не боем. Ручной вывод на сайте Polymarket невидим; пока вывод в пути, убыток до его суммы может скрыться; движок уходит в авторестарт каждые 5 мин при пустой площадке.
- Нагрузка не снята. Окна 20 мин × опрос 60 с × кнопка 1/мин — проверено на 4 взносах; на 5–10 людях одновременно — нет. Прошлый инцидент: 17–104 тыс. зовов/сутки.
- Мосты. Потери 0.03 % (Across) и ~0.3 % (Relay); при пустом пуле платит платформа; доли на прибытии ≠ доли на превью.
- Край окна уже ломался. Свип Base упал на отставшем узле; исправлено переспросом, но повтор с другим узлом в бою не воспроизводился.
- Единая точка отказа — владелец. Выкатка, снятие стопов, движение казны, жетоны, пополнение распределителя — вручную (29.09 ждали ~5 ч). Казна — одновременно личный кошелёк владельца; всё «неопознанное» проводится как его капитал.
- Операционные грабли. Поиск по
/вешал прод на 14 ч (запрещён); автосинхра выключена; диск 80 %; сервер перезагружался 02.10; фарм крутится из рабочего дерева, а не из снимка — слияние вmainкладёт код сразу. - Рассинхрон документов и базы. Время чистого старта 15:02 (база) против «18:02» (документы); «14 суток подряд» против 17 строк, из которых 9 ускоренные; «синтетиков 0» при 17
activeвusers(доли 0, строки остались); остаткиuser_shares/realized_mm_pnlв ленте вне стоимости пула. Денег не двигает, аудит путает. - Тест-набор не зелёный. Эталон 32 красных (20 исторических + 12 календарных); refgate 30 красных поимённо = базе. Не регрессия, но проба не закрывает всё.
- Рефка. Настоящая выплата не проверена; автовывод от 50 $ в коде не найден.
- Тревожный канал. 22.08 стопы фарма не доходили; сейчас
alert_channel_ready, но на боевую тревогу не проверен. - Кастодиальность. Ключи у оператора; клиент не может вывести с площадки сам; очередь выводов без SLA.
11Глоссарий
- Казна (0x8eba…6900) — кошелёк, куда свипаются взносы клиентов и откуда демон заноса везёт деньги на площадку; одновременно личный кошелёк владельца.
- Площадка — Polymarket; кошелёк фарма с pUSD, где лежат деньги пула во время работы.
- Распределитель — кошелёк, из которого платят клиентам (выводы, рефка) и который «капает» газ на кошельки клиентов для свипа; из его сида выводятся адреса клиентов.
- Доли — единицы участия в пуле; выпускаются на границе суток по цене границы; первая цена 1.
- NAV — стоимость пула (площадка + ждущее − обязательства); цена доли = NAV / доли.
- Лента — вечный журнал проводок (
hq_journal/hq_posting); исправляется только исправляющей записью. - Лента = цепь (C6) — сверка ленты с балансами в блокчейне при закрытии суток; допуск 0.5 на актив.
- Свип — отправка стейбла с кошелька клиента на казну после нажатия «Отправить в проект».
- Сторож (watcher) — демон, который слушает адрес клиента в 20-минутном окне и записывает приход.
- Окно пополнения — 20 минут после нажатия «Пополнение»; не больше 5 в сутки.
- Рубильник (
polyfarm-ctl) — контроллер, который раз в 5 мин считает чистый результат фарма и гасит движок при пробое порога. - Движок (
polyfarm-live) — маркет-мейкер на Polymarket; свой стоп −40 $ просадки сессии. - HALTED — долговечный файл-флаг остановки фарма; снимает только владелец.
- Круг суток / период — 00:00 → 00:00 UTC; расчёт, выпуск долей, распределение, рефка.
- Мёртвое окно — 23:45–~00:15 UTC: заносы не едут, факты уходят в следующий период, приборы не запускать.
- Отметка (high-water mark) — прежний максимум клиента; комиссия берётся только с прироста выше неё.
- Теневой фарм — работа денег до выпуска долей; заработок этих часов делится проект / держатели, убыток — на проекте.
- Кулдаун 48 ч — запрет вывода суммы свипа от его подтверждения.
- Замок тела 30 суток — штраф 10 % при выводе тела младше 30 пул-дней.
- Тело / прибыль — внесённое / прирост сверх внесённого; прибыль выводится первой и без штрафа.
- Право на период — право получить распределение суток; теряется выводом ≥ 5 $ в эти сутки.
- Мана — внутренние очки за дисциплину (ежедневно, компаунд, приглашения, вехи); капает при теле ≥ 50 $; двигает ранг.
- Ранг (Аура) — 40–60: Смертный, Мист, Вакхант, Эпопт, Избранный; определяет вашу долю прибыли (ранг %) и ставку рефки (2–8 %).
- Рефка — начисление пригласителю из доли проекта; один уровень; отдельный карман.
- Дань — месячные 5 % золотом рефереру при порогах 500 $ / 10 приглашённых / 30 $ / капитал 500 $.
- Золото — до 25 % вывода в XAUt из прибыли, без штрафа и 1 %.
- Занос — перевод с казны на площадку (демон
bridge_daemon); межсетевой мост — ребаланс казны между сетями (Across/Relay). - Нога — одна транзакция в составе выплаты, свипа или моста.
- Атом — 1/1 000 000 доллара; все суммы в ядре — целые атомы.
- Клон — стенд на живых деньгах с ускоренными часами (×288, ×24); мегаклон 4 — последний прогон перед продом.
- Снимок — замороженная копия кода для выкатки (
2026-10-05-b9198d0). - Рой — параллельный запуск многих агентов-разведчиков по полосам.
- Пробы — тесты; эталон красных 32.
- Четыре показания — файл / путь / время / число: как доказывается, что настройка действует в бою.
- BETAKENT / BETAKENTSTART — метки 05.10: чистый старт беты и старт приватной беты с фиксом «вывод ≠ просадка».