Skip to content

Repository files navigation

Meme-Scout

Telegram-бот для Base. С 23.09.2026 делает две вещи:

  1. Проверка монеты по адресу. Пришли в чат адрес контракта (или /check <адрес>) — через минуту придёт справка и вывод: ⛔ Не брать / ⚠️ Осторожно / 🟢 Можно смотреть. «Брать» бот не пишет никогда.
  2. Слежка за монетами из watchlist: рост, падение, слив ликвидности.

Никакой авто-торговли. Все источники бесплатные.

Что проверяет /check

Как у всех сканеров — симуляция продажи (honeypot), налоги, может ли кто-то допечатать монеты или вернуть себе контроль, скрытые права, ликвидность, крупнейшие держатели.

Чего у других нет:

  • Кто запустил. Кошелёк автора, откуда пришли его первые деньги и за сколько минут до запуска (одноразовый кошелёк, пополненный на копейки за 5 минут до деплоя, — частая картина у ловушек).
  • Его прошлые монеты — сколько запускал и сколько из них живы.
  • Связи держателей. Кто из крупных получил монеты прямо от автора; кого пополнял один и тот же адрес. Биржевые кошельки (≥500 ETH на балансе) распознаются и не считаются инсайдерами — а если автор сам отправил на них монеты «для вида», об этом сказано прямо.
  • Живой спрос — сколько разных покупателей за сутки, а не объём, который легко накрутить.
  • Выход — сколько вернёшь, продавая на $500 и $5 000 (котировка KyberSwap; при провале симуляции продажи эти цифры скрываются — маршрут обещает выкуп даже у ловушки).
  • Разбор проекта — есть ли продукт, развитие, кто стоит, партнёрства. Материалы бот собирает сам (сайт проекта, CoinGecko, GitHub за 30 дней, поиск по названию, инвесторам и адресу контракта), нумерует, и модель отвечает только по ним, с номером источника у каждого утверждения. Материалы про другие проекты с тем же тикером отбрасываются до модели; страницы, которые есть у любой монеты (кошелёк Binance Web3, basescan, агрегаторы), не считаются новостями; посты из соцсетей помечаются «не официально»; сведения без даты или старше трёх месяцев модель обязана помечать.

Пример (KNNEX, 23.09): ⛔ продать нельзя; 4 кошелька получили от автора 52% монет, из них 39% — на биржевые кошельки для вида; кошелёк автора пополнен 0,005 ETH за 5 минут до запуска.

Почему бот больше не ищет новые монеты

Аудит 23.09.2026 за 18 дней после настройки 05.09: из 23 монет, которые бот прислал как «спрос подтверждён», 13 остались с нулевой ликвидностью, по-настоящему жива одна. А из всех монет, которые за это время выжили, бот сам выбросил около 80% (живых среди отброшенных — 122 из 9 812, среди одобренных — 28 из 1 246). Причина в устройстве: монета оценивалась один раз, в секунду создания пула, когда денег в нём ещё нет, и больше не пересматривалась. Раньше (20.08) выяснилось и второе: проверка контракта не предсказывает, выживет ли монета.

Поэтому поиск выключен (SCAN_BASE=0), а сила бота ушла в проверку конкретной монеты. Статистика прошлого сканера сохранена: deftools.xyz/scout.html.

Настройки (.env)

Ключ Зачем
TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID бот и единственный чат, которому он отвечает
GEMINI_API_KEY бесплатный ключ AI Studio для разбора проекта
GROQ_API_KEY бесплатный ключ Groq — запасной, когда Gemini перегружен
SCAN_BASE=1 вернуть поиск новых монет (по умолчанию выключен)

Без ключей ИИ /check всё равно отвечает — без раздела «Проект». Проверить из консоли: .venv\Scripts\python.exe checker.py <адрес>.


История

Ниже — как бот устроен и менялся до 23.09.2026.

Статус: уже настроено и работает

Всё уже сделано автоматически:

  • Бот @MemeScoutDef777Bot создан, токен и твой chat_id записаны в .env.
  • Зависимости установлены в .venv.
  • Задача Планировщика заданий MemeScoutBot зарегистрирована и уже прислала первые алерты в Telegram (в т.ч. поймала честный скам-токен с honeypot — score 5/🔴).

Просто открой чат с ботом в Telegram — сообщения уже идут. Ничего дополнительно делать не нужно.

Как это работает под капотом

Задача Планировщика запускает .venv\Scripts\python.exe main.py каждые 5 минут (MultipleInstancesPolicy=IgnoreNew) — если процесс уже работает, повторный запуск просто игнорируется; если процесс упал, он автоматически перезапустится в течение 5 минут. Триггер "At log on" использовать не получилось (среда, в которой я это настраивал, блокирует такие триггеры и вход через S4U) — этот вариант с повтором каждые 5 минут даёт тот же эффект (постоянная работа + самовосстановление) без этих ограничений.

Логи пишутся в meme-scout-log.txt в этой папке (пишет сам Python, не PowerShell).

Ручное управление (если понадобится)

schtasks /Query /TN "MemeScoutBot" /V          — статус задачи
schtasks /Run /TN "MemeScoutBot"               — запустить прямо сейчас
schtasks /End /TN "MemeScoutBot"                — остановить текущий запуск
schtasks /Delete /TN "MemeScoutBot" /F          — удалить задачу совсем

Или вручную из консоли: .venv\Scripts\python.exe main.py (из папки meme-scout).

Обновление 2026-08-19: тихий режим, кнопки, «выживший», дайджест

К моменту обновления бот присылал ~50 сообщений в сутки и не давал понять, какие из них были правы. Пять новых вещей это чинят.

1. «Выживший» — главный новый сигнал

98% найденных токенов умирают в первые сутки. Поэтому событие «токен жив через 24 часа, ликвидность не ниже стартовой, объём торгов есть» гораздо ценнее, чем «появился новый токен». Такой токен получает отдельный алерт 🏆 и принудительно остаётся в watchlist.

Пороги: SURVIVOR_MIN_AGE_HOURS, SURVIVOR_MIN_LIQ_RATIO, SURVIVOR_MIN_VOLUME_USD.

2. Кнопки под каждым алертом

📊 Подробнее (свежая цена/ликвидность/объём + изменение с момента алерта), 📈 График, 💰 Купить (готовая строка для покупки через Claude + Base MCP; для Robinhood Chain честно пишет, что там только вручную), 👀 Следить, 🚫 Игнор (больше никогда не алертить по этому токену).

3. Тихий режим — приоритет вместо потока

Пуш приходит сразу только на то, что того стоит:

  • новый токен — если не 🔴 и ликвидность ≥ PUSH_MIN_LIQUIDITY_USD;
  • памп/дамп/rug — если токен «наш» (был 🟢/🟡 или добавлен вручную);
  • выживший — всегда.

Всё остальное копится в тихой очереди и приходит одним утренним сообщением. Плюс появился мьют по сети: /mute robinhood (оттуда идёт 66к из 79к токенов, почти всё — мусор).

4. Дайджест + табло точности

Раз в сутки (DIGEST_HOUR, по умолчанию 09:00) бот присылает: сколько нашёл и отсеял по каждой сети, сколько было пушей и сколько ушло в тихую очередь, саму очередь по категориям — и табло точности: что стало с токенами, про которые он алертил, на отметках 24 часа и 7 дней, в разбивке по вердикту. Видно, сколько 🟢 выжило против 🔴, медиану по цене и лучший результат.

Это и есть материал для настройки порогов. Доступно в любой момент: /stats (только табло) и /digest (весь дайджест сразу).

5. /chart — график картинкой

Цена и ликвидность за неделю из price_snapshots, PNG прямо в чат. Та же кнопка есть под каждым алертом.

Заодно починено

  • Ротация логов. meme-scout-log.txt разросся до 658 МБ: httpx логировал каждый HTTP-запрос на уровне INFO. Теперь RotatingFileHandler (5 МБ × 3) плюс httpx/httpcore/telegram переведены на WARNING.
  • 429 от GeckoTerminal. Бесплатный тариф — ~30 запросов в минуту, а watchlist из 1600+ токенов опрашивался целиком каждые 2 минуты, из-за чего часть проверок просто не отрабатывала. Добавлен общий троттлинг (GECKOTERMINAL_MIN_INTERVAL), обход порциями (WATCHLIST_BATCH, самые давно не проверявшиеся первыми) и параллелизм с ограничением.
  • Уборка watchlist. Токен вылетает после WATCHLIST_DEAD_CHECKS проверок подряд с мёртвой ликвидностью или по возрасту (WATCHLIST_MAX_AGE_DAYS). Добавленные вручную через /watch не трогаются никогда.

Новые таблицы в базе

outcomes (снимок на момент алерта + контрольные точки 24ч/7д — основа табло точности), alert_events (append-only журнал: alerts_sent хранит только последний алерт каждого типа и для истории не годится), digest_queue (тихая очередь), ignored (кнопка «Игнор»). Миграция накатывается сама при старте, старые данные не трогает.

Публичный бот и страница статистики

Сам этот бот - личный: он отвечает только владельцу и шлёт алерты ему одному. Но данные, которые он накопил, публичны:

  • Страница: https://deftools.xyz/scout.html - воронка, разбивка по сетям, свежие находки, выжившие и обвалы ликвидности. Обновляется раз в час (export_stats.py + watchers/publish.py).
  • Публичный бот: @MemeScoutStatsBot - те же цифры в Telegram, доступен кому угодно. Живёт на Cloudflare Workers и читает тот же снимок, что и страница, поэтому не зависит от того, включён ли этот компьютер. Код и инструкции - в public-bot/.

Публичному боту нужен собственный токен: у одного токена не может быть одновременно вебхука и long polling, а личный бот работает на polling.

Команды бота в Telegram

  • /start — приветствие и список команд
  • /status — статус, размер watchlist, счётчик пушей и тихой очереди за сутки
  • /stats — табло точности: что стало с прошлыми алертами
  • /digest — прислать дайджест прямо сейчас
  • /chart <base|robinhood> <адрес> — график цены и ликвидности
  • /watch <base|robinhood> <адрес> — добавить токен вручную
  • /watchlist — показать watchlist
  • /ignore / /unignore / /ignored — игнор-лист
  • /mute [base|robinhood] / /unmute [base|robinhood] — выключить/включить алерты целиком или по одной сети

Известные ограничения

  • Robinhood Chain (chainId 4663, запущен 2026-07-01) — теперь тоже полностью работает: обнаружение идёт через GeckoTerminal (сеть robinhood, подтверждено живым запросом), цены/ликвидность довозятся через DexScreener (слаг сети robinhood, тоже подтверждено). Проверено на реальных данных — бот сам нашёл и прислал алерты на BULLDOGE/CATS.
    • GoPlus / honeypot.is пока не поддерживают эту сеть (honeypot.is отдаёт 400, Blockscout часто 404 для неверифицированных контрактов) → часть проверок скоринга недоступна, алерт помечается "⚠️ ограниченная проверка (новая сеть)", а не занижается втихую.
    • ROBINHOOD_V3_FACTORY в .env уже заполнен официальным адресом Uniswap V3 factory (подтверждено через developers.uniswap.org и перепроверено на blockscout) — на всякий случай, если понадобится on-chain fallback, но сейчас discovery работает через GeckoTerminal и его не использует.
    • ROBINHOOD_KNOWN_QUOTE_TOKENS заполнен адресами WETH/USDG с docs.robinhood.com/chain/contracts, чтобы не скорить котируемую сторону пары.
  • Base работает "из коробки" — обнаружение через GeckoTerminal (new_pools), проверка через GoPlus + honeypot.is + Blockscout. Протестировано на реальных данных, в т.ч. поймал честный rug pull в процессе (резкий слив ликвидности до $0).
  • Скоринг — это чек-лист известных red flags (honeypot, mint, LP-лок, концентрация держателей и т.д.), а не гарантия. Это помощник для быстрой фильтрации, а не финансовый совет — решение всегда за тобой.
  • Свободные лимиты API (GeckoTerminal/DexScreener/GoPlus/honeypot.is) могут давать сбои 429/таймауты при высокой нагрузке — в таком случае токен будет проверен на следующем цикле или с частично неполными данными.

About

Telegram bot for Base: paste a token address, get a dossier and a plain verdict - sell simulation, who deployed it and what else they launched, insider holders, real exit liquidity, and a sourced project read

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages