pumpfun-claims-bot
PumpFun Claims Bot
Нужен интерактивный мониторинг? telegram-bot поддерживает управление списками отслеживания, групповые чаты, REST API, SSE-стриминг и вебхуки. Используйте этого channel-бота для простых каналов, где нужна только публикация.
Возможности
Типы лент
Лента | Описание | Переключатель |
Клеймы социальных комиссий GitHub | GitHub-разработчики, клеймящие награды PumpFun social fee PDA |
|
Градуации токенов | Токены, выходящие с bonding curve на PumpAMM |
|
Аналитика клеймов
Каждая карточка клейма социальной комиссии GitHub включает:
Возможность | Описание |
🟢 Оценка достоверности | Детерминированный вердикт 0-100 (Strong/Moderate/Caution/High Risk), синтезированный из всех сигналов доверия, с прозрачной разбивкой по факторам ± |
📊 История разработчика | Постоянная репутация каждого разработчика — предыдущие токены повторного разработчика и их средняя достоверность, так что серийный сборщик комиссий, чья новейшая монета выглядит чистой, раскрывается с первого взгляда |
🚨 Алерт о первом клейме | Баннер |
⚠️ Детекция фейковых клеймов | Определяет, когда вызывается инструкция |
📊 Счётчик клеймов | Последовательный номер клейма, постоянно отслеживаемый между перезапусками |
💹 SOL за всё время | Всего SOL, полученных из PDA за всё время |
👤 Профиль GitHub | Имя пользователя, био, репозитории, подписчики, возраст аккаунта, местоположение, блог |
𝕏 Соцсети | Профиль Twitter/X с количеством подписчиков (из профиля GitHub) |
🏅 Бейдж инфлюенсера | Уровневый бейдж для аккаунтов GitHub/X с большим числом подписчиков |
📈 Данные о токене | Статус выхода на AMM/bonding curve, прогресс кривой в %, возраст с момента создания, количество ответов |
🔗 Соцсети токена | Ссылки на Twitter, Telegram, сайт из метаданных токена |
🏷️ Флаги токена | Индикаторы NSFW, бана, кэшбэка |
⚠️ Сигналы доверия | Предупреждения для новых GitHub-аккаунтов (< 30 дней), нулевых репозиториев, фейковых клеймов |
🔗 Торговые ссылки | Ссылки Axiom, GMGN, Padre с аффилиат-кодами |
️ Изображение токена | Изображение токена или аватар GitHub в виде фото-карточки |
Карточки градуаций
Богатые карточки градуаций включают профиль создателя, анализ топ-холдеров, объём торгов за 24 часа, активность кошелька разработчика, ликвидность пула и детекцию бандлов.
Система уровней инфлюенсеров
Объединяет данные подписчиков GitHub и X/Twitter для классификации клеймеров:
Уровень | Бейдж | Подписчики X | Подписчики GitHub |
Мега | 🔥🔥 MEGA INFLUENCER | ≥ 100K | ≥ 10K |
Инфлюенсер | 🔥 Influencer | ≥ 10K | ≥ 1K |
Заметный | ⭐ Notable | ≥ 1K | ≥ 100 |
Достаточно одного порога из пары — пользователь с 50K подписчиков в X и 50 подписчиков в GitHub всё равно попадает в уровень Инфлюенсер.
Оценка достоверности и история разработчика
Каждая карточка клейма начинается с детерминированного вердикта достоверности 0-100, синтезированного из сигналов доверия, которые бот уже собирает, а также с постоянной истории разработчика по его предыдущим токенам.
Оценка детерминирована и прозрачна — одинаковые входные данные всегда дают одно и то же число, без вызова модели, и каждый балл привязан к именованному фактору, показанному под заголовком:
Уровень | Бейдж | Оценка |
Сильный | 🟢 | 75-100 |
Умеренный | 🟡 | 55-74 |
Осторожно | 🟠 | 35-54 |
Высокий риск | 🔴 | 0-34 |
Расчёт начинается с нейтральных 50 и корректируется взвешенными факторами: проверка клейма (+22 или -20 при несовпадении владельца GitHub), возраст аккаунта (+14 за 5+ лет, вплоть до -18 за < 30 дней), публичные репозитории, подписчики, звёзды на не-форк-репозитории, копикаты (-10/-16), бандлинг, концентрация холдеров, предыдущие скамы и баны.
История разработчика превращает разовую оценку в память. Каждая оценка сохраняется за идентификатором клеймящего GitHub-пользователя и персистится, поэтому при следующем запуске токена этим разработчиком карточка покажет его историю — выставляя напоказ серийного сборщика комиссий, чья новая монета выглядит чистой, и отдавая должное билдеру с реальными заслугами:
🟢 Credibility: 100/100 · Strong
↑ claim verified · GitHub 6y · 42 repos · repo 150★
📊 Dev track record: 3 prior tokens · avg 🔴 19/100 (High Risk)Логика находится в src/credibility.ts (чистая функция scoreCredibility) и src/dev-reputation.ts (постоянное хранилище), обе полностью покрыты тестами.
AI-резюме клеймов
Первые клеймы получают однострочную AI-оценку, сгенерированную Groq (llama-3.3-70b-versatile):
Анализирует 30+ сигналов: метаданные токена, профиль GitHub, историю создателя, торговую активность
Максимум 120 символов — прямо, со своей позицией, с фокусом на трейдера
Тайм-аут 5 секунд с корректным запасным вариантом (пустая строка при сбое)
HTML-санитизированный вывод, безопасный для Telegram
Примеры:
«Настоящий GitHub-проект, разработчик заклеймил быстро» · «Форк популярного репозитория, действуйте с осторожностью»
Related MCP server: NoesisAPI
Архитектура
Solana RPC (WebSocket + HTTP polling)
│
▼
┌───────────────────┐
│ SocialFeeIndex │──▶ Bootstraps ~148K SharingConfig → mint mappings
└────────┬──────────┘
│
┌────────▼──────────┐
│ ClaimMonitor │──▶ Decodes PumpFees program claim transactions
│ EventMonitor │──▶ Decodes Pump program logs (graduations)
└────────┬──────────┘
│ FeeClaimEvent / GraduationEvent
┌────────▼──────────┐
│ Enrichment Layer │
│ ├─ GitHub API │──▶ User profile, repos, followers
│ ├─ X/Twitter API │──▶ Follower counts, influencer tier
│ ├─ PumpFun API │──▶ Token info, creator profile, holders, trades
│ ├─ ClaimTracker │──▶ First-claim detection, persistent counts
│ └─ Fake Detect │──▶ Instruction called but no payout (amountLamports=0)
└────────┬──────────┘
│ ClaimFeedContext
┌────────▼──────────┐
│ Formatters │──▶ Rich HTML cards with sections & emoji layout
└────────┬──────────┘
│
┌────────▼──────────┐
│ grammY Bot │──▶ Posts photo + caption to Telegram channel
│ (retry + rate │ Falls back to text-only if photo fails
│ limiting) │
└───────────────────┘Отказоустойчивость Multi-RPC
Класс RpcFallback управляет несколькими Solana RPC-эндпоинтами с автоматической ротацией:
Ротация по кругу после 3 подряд неудач на любом эндпоинте
Пауза 60 секунд для каждого сбойного эндпоинта перед повторной попыткой
Фолбэк по ближайшему истечению — если все эндпоинты на паузе, выбирается тот, чья пауза истекает раньше всех
Успех сбрасывает счётчик — один успешный вызов сбрасывает счётчик неудач
Настройка через
SOLANA_RPC_URLS(через запятую)
Отслеживаемые программы
Программа | ID | Назначение |
PumpFees |
| Распределение комиссий, клеймы social fee PDA |
Pump |
| Bonding curve (градуации) |
PumpAMM |
| AMM (события градуированных пулов) |
Установка
npm (MCP-сервер — рекомендуется для AI-ассистентов)
Запустите MCP-сервер мгновенно с помощью npx — клонирование не требуется:
npx pumpfun-claims-botИли установите глобально:
npm install -g pumpfun-claims-bot
pumpfun-claims-botДобавьте в конфигурацию MCP-клиента (Claude Desktop, Cursor, VS Code Copilot):
{
"mcpServers": {
"pumpfun": {
"command": "npx",
"args": ["pumpfun-claims-bot"]
}
}
}npm-пакет: pumpfun-claims-bot на npm
Из исходников (полный бот + Telegram-лента)
git clone https://github.com/nirholas/pumpfun-claims-bot.git
cd pumpfun-claims-bot && npm installБыстрый старт
1. Создайте Telegram-бота
Напишите @BotFather в Telegram
/newbot→ следуйте подсказкам → скопируйте токен ботаСоздайте публичный канал (например,
@pumpfunclaims)Добавьте бота в канал как администратора (требуется разрешение «Отправлять сообщения»)
2. Настройте окружение
cp .env.example .env# ── Required ──────────────────────────────────────────────
TELEGRAM_BOT_TOKEN=your-bot-token-from-botfather
CHANNEL_ID=@your_channel_name # or numeric chat ID like -100xxx
# ── Solana RPC ────────────────────────────────────────────
SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=your-key
SOLANA_WS_URL=wss://mainnet.helius-rpc.com/?api-key=your-key
# Comma-separated fallback RPCs (rotates on 429/5xx/timeout)
SOLANA_RPC_URLS=https://mainnet.helius-rpc.com/?api-key=key1,https://your-other-rpc.com
# ── Feed Toggles (all default false except FEED_CLAIMS) ───
FEED_CLAIMS=true # GitHub social fee claims (default: true)
FEED_GRADUATIONS=false # Token graduations to PumpAMM (default: false)
FEED_LAUNCHES=false # New token launches (default: false)
FEED_WHALES=false # Large buy/sell whale alerts (default: false)
FEED_FEE_DISTRIBUTIONS=false # Creator fee distribution events (default: false)
# ── Claim Filter ──────────────────────────────────────────
REQUIRE_GITHUB=true # Only post claims with GitHub social fee PDA (default: true)
# ── Enrichment APIs ───────────────────────────────────────
GITHUB_TOKEN=ghp_your_token # Raises GitHub rate limit: 60 → 5000 req/hr
GROQ_API_KEY=gsk_your_key # Groq API for AI one-liner summaries
# X/Twitter follower counts & influencer detection
# Get cookies from x.com DevTools → Application → Cookies
# X_AUTH_TOKEN=your_auth_token_cookie
# X_CT0_TOKEN=your_ct0_cookie
# ── Affiliate Ref Codes ───────────────────────────────────
# Appended to Axiom / GMGN / Padre trading links in cards
# AXIOM_REF=your_ref
# GMGN_REF=your_ref
# PADRE_REF=your_ref
# ── Tuning ────────────────────────────────────────────────
POLL_INTERVAL_SECONDS=30 # HTTP polling fallback interval (default: 30)
WHALE_THRESHOLD_SOL=10 # Minimum SOL for whale alerts (default: 10)
LOG_LEVEL=info # debug | info | warn | error (default: info)
# ── Health Check ──────────────────────────────────────────
# PORT=3000 # Set automatically by RailwayСправочник переменных окружения
Переменная | Обязательно | По умолчанию | Описание |
| ✅ | — | Токен бота — напишите @BotFather → |
| ✅ | — | Канал для публикации ( |
| ✅ |
| Основной HTTP RPC Solana — бесплатный тариф на Helius, QuickNode или Alchemy |
| — | Производное от | WebSocket URL Solana — тот же провайдер, что и |
| — | — | Резервные RPC URL через запятую — автоматическая ротация при 429 / 5xx / таймауте |
| — |
| Публиковать карточки заявок на социальные сборы GitHub |
| — |
| Публиковать карточки выпуска токенов |
| — |
| Публиковать карточки запуска новых токенов |
| — |
| Публиковать оповещения о крупных покупках/продажах |
| — |
| Публиковать события распределения комиссий создателей |
| — |
| Пропускать заявки без GitHub социального PDA комиссии |
| — | — | GitHub PAT — создайте здесь (права не нужны) — повышает лимит запросов с 60 до 5000 в час |
| — | — | Ключ API Groq для AI-сводок в одну строку — получите бесплатный ключ на console.groq.com |
| — | — | Cookie |
| — | — | Cookie |
| — | — | Реферальный код для торговых ссылок Axiom |
| — | — | Реферальный код для торговых ссылок GMGN |
| — | — | Реферальный код для торговых ссылок Padre |
| — |
| Интервал HTTP-опроса при недоступности WebSocket |
| — |
| Минимальный размер сделки в SOL для срабатывания оповещения о ките |
| — |
| Уровень детализации логов: |
| — |
| Порт HTTP-сервера проверки здоровья — автоматически устанавливается Railway |
| — |
| Включить MCP-сервер (Model Context Protocol) для интеграций с AI-ассистентами |
| — |
| HTTP-порт MCP-сервера (транспорт Streamable HTTP) |
3. Запуск
# Install dependencies
npm install
# Development (hot reload via tsx)
npm run dev
# Production
npm run build
npm start4. Развертывание с Docker
docker build -t pumpfun-channel-bot .
docker run -d --env-file .env pumpfun-channel-bot5. Развертывание на Railway
Railway автоматически развертывает из GitHub и предоставляет постоянные тома для данных отслеживания заявок.
# Install Railway CLI
npm install -g @railway/cli
railway login
# Create & link project
railway init
railway link
# Set environment variables
railway variables set TELEGRAM_BOT_TOKEN=your-token
railway variables set CHANNEL_ID=@your_channel_name
railway variables set SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=your-key
railway variables set SOLANA_WS_URL=wss://mainnet.helius-rpc.com/?api-key=your-key
railway variables set FEED_CLAIMS=true
railway variables set REQUIRE_GITHUB=true
# Create persistent volume for claim tracker data
railway volume create --mount /app/data
# Deploy
railway upСм. railway.json для конфигурации развертывания:
{
"$schema": "https://railway.app/railway.schema.json",
"build": {
"builder": "DOCKERFILE",
"dockerfilePath": "Dockerfile"
},
"deploy": {
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 10
}
}Структура проекта
pumpfun-claims-bot/
├── src/
│ ├── index.ts # Entry point — wires monitors, enrichment, & Telegram posting
│ ├── config.ts # Environment variable loading & validation
│ ├── mcp-server.ts # MCP server — exposes tools via Streamable HTTP or stdio
│ ├── mcp-stdio.ts # Standalone MCP entry point (stdio transport)
│ ├── claim-monitor.ts # PumpFees program monitor (WebSocket + HTTP polling)
│ ├── claim-routing.ts # Decides which claims are posted, skipped, or re-routed
│ ├── claim-tracker.ts # First-claim detection + claim counter (persisted to disk)
│ ├── credibility.ts # Deterministic 0-100 credibility scoring
│ ├── dev-reputation.ts # Persistent per-developer track record store
│ ├── event-monitor.ts # Pump program log decoder (graduations, launches)
│ ├── social-fee-index.ts # SocialFeeIndex — maps SharingConfig PDAs → mints (~148K)
│ ├── formatters.ts # Rich HTML card builders for Telegram
│ ├── pump-client.ts # PumpFun HTTP API client (token info, creator profiles)
│ ├── github-client.ts # GitHub API client (user profiles, rate-limited cache)
│ ├── x-client.ts # X/Twitter profile fetcher + influencer tier logic
│ ├── groq-client.ts # Groq AI one-liner summaries
│ ├── rpc-fallback.ts # Multi-RPC failover with round-robin
│ ├── health.ts # HTTP health check server
│ ├── types.ts # Program IDs, discriminators, event types
│ └── logger.ts # Leveled console logger
├── src/__tests__/ # Vitest suites (203 tests) + shared fixtures
├── packages/web/ # React dashboard, mock-data build (see Web Dashboard)
├── web/web/ # React dashboard, live-SSE build (see Web Dashboard)
├── leaderboard-bot/ # Separate Telegram bot: GitHub dev earnings leaderboard
├── data/ # Persisted state (gitignored, Railway volume mount)
│ └── github-first-claims.json
├── Dockerfile # Multi-stage Docker build
├── railway.json # Railway deployment config
├── package.json
└── tsconfig.jsonКак это работает
Конвейер обнаружения заявок
Transaction detected on PumpFees program
│
▼
Identify instruction: claim_social_fee_pda?
│
├─ YES ──▶ Parse platform (2 = GitHub) + user_id from Anchor args
│ │
│ ▼
│ Check amountLamports from SocialFeePdaClaimed event
│ │
│ ├─ amountLamports > 0 ──▶ Real claim
│ │ ├─ Check ClaimTracker: first time for this GitHub user?
│ │ │ ├─ YES ──▶ 🚨 FIRST TIME CLAIM banner
│ │ │ └─ NO ──▶ Standard claim card
│ │ └─ Enrich: GitHub API + PumpFun API + X profile
│ │
│ └─ amountLamports = 0 ──▶ ⚠️ FAKE CLAIM (instruction called, no payout)
│
└─ NO ───▶ Other claim type (creator fee, cashback, etc.)Инициализация SocialFeeIndex
При запуске бот получает все аккаунты SharingConfig из программы PumpFees для построения обратного сопоставления адресов PDA социальных комиссий с минтами токенов. Это позволяет определить, к какому токену относится заявка на социальную комиссию, без дополнительных RPC-вызовов.
~148K сопоставлений загружается при запуске
Инкрементальные обновления через WebSocket-подписку на события
CreateFeeSharingConfigиUpdateFeeSharesПоиск:
socialFeeIndex.getMintForPda(pdaAddress)→ минт токенаОдин PDA → много минтов — обрабатывает мошенников, которые переиспользуют PDA для нескольких токенов
Обнаружение фейковых заявок
Некоторые пользователи вызывают инструкцию claim_social_fee_pda для случайных PDA токенов, где у них нет комиссий для получения. Бот обнаруживает такие вызовы, проверяя:
Дискриминатор инструкции совпадает с
claim_social_fee_pdaВ логах транзакции нет события
SocialFeePdaClaimed— ИЛИ событие показываетamountLamports = 0Идентификатор пользователя GitHub и платформа по-прежнему извлекаются из аргументов инструкции (формат Anchor Borsh)
Фейковые заявки публикуются с предупреждением ⚠️ FAKE CLAIM и сигналом доверия 🚩 Fake claim — no fees paid out.
Отслеживание первых заявок
ClaimTracker поддерживает постоянный набор идентификаторов пользователей GitHub, которые успешно подали заявку:
Набор в памяти для быстрого поиска во время обработки
Отложенная запись на диск (задержка 5 секунд) в
data/github-first-claims.jsonРаздельный паттерн проверки/отметки:
hasGithubUserClaimed()проверяет без побочных эффектов,markGithubUserClaimed()вызывается только после успешной публикации в TelegramСчетчик заявок:
incrementGithubClaimCount()возвращает порядковый номер заявки для каждого пользователяСтатус первой заявки НЕ устанавливается для фейковых заявок
Трехуровневая проверка первой заявки
Локальная дедупликация — пропуск, если уже опубликовано (переживает перезапуски через сохраненный JSON)
Проверка в цепочке —
lifetimeClaimedLamports == amountLamportsподтверждает, что это действительно первая заявка в цепочкеБезопасный откат — пропускает баннер первой заявки, если проверка не удалась (предотвращает ложные срабатывания после повторного развертывания)
Пример карточки заявки
🚨🚨🚨 FIRST TIME CLAIM 🚨🚨🚨
🐙 $PUMP — PumpCoin 💹 $45K
↳ GitHub dev claimed PumpFun social fees
📊 Claim #1 · 0.1043 SOL lifetime ($15.65)
🏦 0.1043 SOL ($15.65)
↳ 8mNp...4rWz
👤 nirholas (Nicholas)
↳ 📦 45 · 👁 200 · 📅 5y ago
TypeScript SDK builder
𝕏 nichxbt · 1.2K
📈 Bonding curve (72%) · Created 3h ago · 💬 12
𝕏 @pump_coin · 💬 TG · 🌐 pumpcoin.io
⚠️ GitHub account created 15d ago
CA: 7xKXt...p3Bz
Axiom · GMGN · Padre
🔍 TXТребования
Node.js >= 20.0.0
Токен бота Telegram (через @BotFather)
Канал Telegram с ботом, добавленным как администратор
RPC-эндпоинт Solana — рекомендуется выделенный RPC (Helius, QuickNode, Triton). Публичная mainnet работает, но может ограничивать частоту запросов.
Токен GitHub (необязательно) — повышает лимит API с 60 до 5 000 запросов в час
Устранение неполадок
Бот не публикует сообщения
Проверьте права бота — бот должен быть администратором канала с правом "Отправка сообщений"
Проверьте CHANNEL_ID — используйте
@channel_nameдля публичных каналов или числовой ID (например,-100xxx) для приватных. Чтобы найти числовой ID, перешлите сообщение из канала @userinfobotОшибка Telegram 403 — означает, что бот НЕ является участником/администратором канала. Добавьте его через настройки канала → Администраторы → Добавить администратора
Проверьте логи — установите
LOG_LEVEL=debug, чтобы видеть все события, которые обрабатывает бот
Ограничение частоты запросов
Telegram ограничивает ботов примерно 30 сообщениями в секунду на канал. Фреймворк grammY автоматически обрабатывает ограничение частоты:
Сообщения могут задерживаться, но не будут отброшены
Бот включает помощник повтора, который учитывает заголовки
retry_afterПри очень высокой активности увеличьте
POLL_INTERVAL_SECONDS, чтобы уменьшить объем событий
Проблемы с RPC-подключением
Публичные RPC-эндпоинты имеют ограничения частоты — для продакшена используйте выделенный RPC
Установите
SOLANA_RPC_URLSс несколькими эндпоинтами для автоматического переключенияЕсли WebSocket отключается, бот переключается на HTTP-опрос с интервалом
POLL_INTERVAL_SECONDSКласс
RpcFallbackобеспечивает циклический перебор настроенных эндпоинтовУстановите
LOG_LEVEL=debug, чтобы видеть статус подключения
Отсутствующие заявки
Только заявки GitHub? — установите
REQUIRE_GITHUB=true, чтобы публиковать только заявки на социальные комиссии GitHubЛента отключена? — проверьте, что установлено
FEED_CLAIMS=trueSocialFeeIndex медленный? — начальная инициализация загружает ~148K аккаунтов. Это занимает 30-60 секунд при запуске. Проверьте логи на наличие
SocialFeeIndex: loaded N mappingsОграничение частоты? — GitHub API позволяет 60 запросов/час без аутентификации. Установите
GITHUB_TOKENдля 5 000 запросов/час
Статистика конвейера
Бот записывает счетчики конвейера каждые 60 секунд:
Pipeline: 15 total → 8 social → 3 first / 5 repeat → 8 posted (skip: 7 cashback)total: все полученные события заявок
social: заявки на социальные комиссии GitHub PDA
first/repeat: впервые подавшие vs. повторные заявители
posted: успешно опубликовано в Telegram
skip cashback: кэшбэк-заявки (возвраты пользователям, не активность создателей)
Веб-панель
В репозиторий включены два React-фронтенда, и это не одно и то же приложение:
Каталог | Что это | Сборка |
| Полная панель управления: поток событий SSE, списки наблюдения, SEO-активы ( |
|
| Более ранняя, уменьшенная копия того же интерфейса. Его панель управления отображает сгенерированные примеры событий без SSE-клиента. |
|
Перечисленные ниже возможности описывают web/web/. Оба каталога сегодня собираются без ошибок;
объединение их в один — всё ещё открытая задача.
Глубокие ссылки (/dashboard, /docs, ...) — это клиентские маршруты, поэтому любой статический
хостинг должен перенаправлять неизвестные пути на index.html. Каждое приложение теперь поставляется с vercel.json,
содержащим такое перенаправление; на хостинге, отличном от Vercel, настройте эквивалентный SPA-fallback.
Страницы
Страница | Маршрут | Описание |
Главная |
| Посадочная страница с обзором проекта |
Панель |
| Живая лента событий с потоковой передачей SSE |
Создать монету |
| Интерфейс создания токена |
Документация |
| Документация API и команды Telegram |
Пакеты |
| Обозреватель пакетов |
Возможности панели управления
Server-Sent Events (SSE) — потоковая передача в реальном времени через
/api/v1/claims/streamс автоматическим переподключением (задержка 3 с)Фильтры событий — Все, Запуски, Киты, Выпуски, Клеймы, Распределения
Живая панель статистики — счётчики для каждого типа событий
Списки наблюдения — добавление/удаление адресов кошельков для мониторинга (
GET/POST/DELETE /api/v1/watches)Богатые карточки событий — запуски токенов, сделки китов, выпуски, клеймы комиссий с полным контекстом
Статус подключения — визуальный индикатор с сообщениями об ошибках
Резервные мок-данные — имитация ленты, когда SSE недоступен
Технологический стек
Слой | Технология |
Фреймворк | React 18 |
Роутер | React Router |
Сборка | Vite 5 |
Стили | Tailwind CSS |
Язык | TypeScript |
MCP-сервер
Бот включает встроенный Model Context Protocol (MCP) сервер, который позволяет ИИ-ассистентам (Claude, Copilot, Cursor и др.) запрашивать ончейн-данные PumpFun в диалоговом режиме.
MCP-инструменты
Инструмент | Описание |
| Метаданные токена, рыночная капитализация, прогресс bonding curve, флаги |
| Крупнейшие держатели с метриками концентрации |
| Недавняя торговая активность — объём, количество покупок/продаж |
| Ликвидность пула AMM PumpSwap для выпущенных токенов |
| Обнаружение бандлов (индикатор скама) |
| История запусков создателя, оценка скама, недавние монеты |
| Профиль GitHub по имени пользователя или числовому ID |
| Статус клеймов для пользователя GitHub — количество, заявленные минты |
| Текущая цена SOL/USD |
Использование: транспорт Stdio (Claude Desktop / Cursor / VS Code)
Добавьте в конфигурацию вашего MCP-клиента (например, claude_desktop_config.json):
{
"mcpServers": {
"pumpfun": {
"command": "npx",
"args": ["pumpfun-claims-bot"]
}
}
}Или запустите из исходников:
# Development (tsx)
npm run mcp:dev
# Production (compiled)
npm run build && npm run mcpИспользование: потоковый HTTP-транспорт (встроенный)
Запускается вместе с основным ботом при установке MCP_ENABLED=true:
MCP_ENABLED=true MCP_PORT=3001 npm run devКонечная точка MCP доступна по адресу POST /mcp на настроенном порту. Клиенты подключаются с использованием потокового HTTP-транспорта.
Примеры запросов
После подключения спросите вашего ИИ-ассистента:
«Найди информацию о токене по адресу минта 7xKXt...p3Bz»
«Подавал ли пользователь GitHub 12345 когда-либо клеймы на комиссии PumpFun?»
«Кто крупнейшие держатели этого токена?»
«Проверь, был ли запуск этого токена бандлом»
«Какая текущая цена SOL?»
API проверки состояния
Бот предоставляет HTTP-сервер проверки состояния для проб Railway / Docker.
Конечная точка | Метод | Описание |
| GET | Статус здоровья с аптаймом и статистикой |
| GET | Псевдоним для |
Ответ:
{
"status": "ok",
"uptime": "12345s",
"uptimeMs": 12345000
}Возвращает 200 для
ok, 503 дляdegradedДинамическая статистика внедряется через колбэк (счётчики конвейера, статус подключения)
Порт настраивается через переменные окружения
PORTилиHEALTH_PORT(по умолчанию: 3000)
Тестирование
Проект использует Vitest: 203 теста в 11 наборах, все проходят при npm test.
# Run all tests
npm test
# Watch mode (re-runs on file changes)
npm run test:watchНаборы тестов
Каждый набор находится в src/__tests__/ (плюс fixtures.ts — общие примеры данных).
Набор | Файл | Покрытие |
Трекер клеймов |
| Обнаружение первого клейма, персистентность, счётчики, пожизненные итоги |
Маршрутизация клеймов |
| Какие клеймы публикуются, пропускаются или направляются в какую ленту |
Достоверность |
| Детерминированная оценка 0–100, факторная атрибуция, границы уровней |
Репутация разработчика |
| Персистентная история разработчика и средние показатели |
Форматтеры |
| Генерация HTML-карточек, экранирование, обработка null, крайние случаи |
GitHub-клиент |
| Разбор URL, обработка ответов API, поведение кэша |
Groq-клиент |
| Генерация ИИ-сводок, обработка ключей API, безопасность HTML |
Pump-клиент |
| Обработка ответов API токенов, держателей, сделок и создателей |
RPC-резерв |
| Ротация round-robin, кулдауны, обработка повторяемых ошибок |
X-клиент |
| Классификация уровней инфлюенсеров, форматирование подписчиков |
E2E-конвейер |
| Сквозное отслеживание клеймов, форматирование, лента GitHub |
Локальная разработка
# Install dependencies
npm install
# Run with hot reload (tsx)
npm run dev
# Type-check without emitting
npm run typecheckУстановите LOG_LEVEL=debug — все события записываются в stdout независимо от того, публикуются ли они в Telegram.
Технологический стек
Компонент | Технология |
Среда выполнения | Node.js >= 20 (ESM) |
Язык | TypeScript 5.7 (строгий режим) |
Блокчейн | Solana через |
Telegram | фреймворк grammY |
ИИ | Groq API (llama-3.3-70b-versatile) |
Фронтенд | React 18 + Vite 5 + Tailwind CSS |
Тестирование | Vitest |
Контейнер | Docker (многоступенчатый Alpine, non-root) |
MCP |
|
Хостинг | Railway (автодеплой из GitHub) |
Зависимости | 6 production, 4 dev — намеренно минимально |
Участие в разработке
Вклад приветствуется! См. CONTRIBUTING.md с рекомендациями.
Сделайте форк репозитория
Создайте ветку для функции (
git checkout -b feat/my-feature)Запустите тесты (
npm test) и проверку типов (npm run typecheck)Откройте Pull Request
Безопасность
Нашли уязвимость? Пожалуйста, сообщите о ней ответственно — см. SECURITY.md.
Лицензия
Все права защищены. См. LICENSE.
Документация
Полный сайт документации: https://nirholas.github.io/pumpfun-claims-bot/
Начало работы — установка и первый запуск.
Примеры — готовые фрагменты для копирования.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time radar for Solana memecoins, Pump.fun launches, and KOL trades.82MIT
- AlicenseNot gradedqualityDmaintenanceSolana on-chain intelligence API — token scans, wallet PnL, bundle detection, fresh wallets, dev profiling. MCP server for Claude, Cursor & AI agents. Live PumpFun/Raydium streams1MIT

Pique Signalofficial
AlicenseAqualityCmaintenanceLive scored Solana memecoin signals with safety profiles, conviction scoring, and paper trading for AI agents.6MIT- FlicenseBqualityCmaintenanceReal-time Solana pump.fun token scanner with MCP stdio transport and HTTP API. Enables AI agents to monitor and trade pump.fun tokens via natural language.83
Related MCP Connectors
Solana on-chain intelligence — token scans, wallet profiling, bundle detection, 19 MCP tools.
Rug-check & launch radar for trading agents: composite honeypot score, EVM+Solana, keyless x402.
Solana token risk-scoring MCP server for AI trading agents with insider wallet cluster detection.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nirholas/pumpfun-claims-bot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server