pumpfun-claims-bot
PumpFun Claims Bot
インタラクティブな監視をお探しですか? telegram-bot は、ウォッチ管理、グループチャット、REST API、SSE ストリーミング、Webhook をサポートしています。こちらは配信専用のシンプルなチャンネルには、この channel-bot を使ってください。
機能
フィードタイプ
フィード | 説明 | トグル |
GitHub ソーシャルフィークレーム | PumpFun のソーシャルフィー PDA 報酬をクレームする GitHub 開発者 |
|
トークンの卒業 | ボンディングカーブから PumpAMM へ卒業するトークン |
|
クレームのインテリジェンス
GitHub ソーシャルフィークレームカードには、次の情報が含まれます。
機能 | 説明 |
🟢 信頼性スコア | すべてのトラストシグナルから総合した決定論的な 0〜100 の判定(Strong/Moderate/Caution/High Risk)。透明な ±要因の内訳付き |
📊 開発者の実績 | 開発者ごとに永続化されるレピュテーション。常連開発者の過去のトークンとその平均信頼度を表示。最新のコインがきれいでも、常習のフィーファーマーを一目で見抜けます |
🚨 初回クレームアラート | GitHub ユーザーが史上初めてクレームした場合に |
⚠️ 偽クレーム検出 |
|
📊 クレームカウンター | 再起動をまたいで永続的に記録される連続クレーム番号 |
💹 累計 SOL | PDA からこれまでに取得された総 SOL 量 |
👤 GitHub プロフィール | ユーザー名、bio、リポジトリ、フォロワー数、アカウント年齢、場所、ブログ |
𝕏 ソーシャルリンク | Twitter/X のプロフィールとフォロワー数(GitHub プロフィールから取得) |
🏅 インフルエンサーバッジ | 高フォロワーの GitHub/X アカウント向けティア別バッジ |
📈 トークン情報 | 卒業済み/ボンディングカーブの状態、カーブ進捗率、作成時からの経過期間、リプライ数 |
🔗 トークン SNS | トークンメタデータから取得した Twitter、Telegram、ウェブサイトへのリンク |
🏷️ トークンフラグ | NSFW、禁止、キャッシュバックステータス表示 |
⚠️ トラストシグナル | 新しい GitHub アカウント(30 日未満)、リポジトリ 0 個、偽クレームなどの警告 |
🔗 取引リンク | Axiom、GMGN、Padre へのアフィリエイトリンク |
️ トークン画像 | トークン画像または GitHub アバターをフォトカードで表示 |
卒業カード
リッチな卒業カードには、作成者プロフィール、トップホルダー情報、24 時間取引量、開発者のウォレット情報、プール流動性、バンドル検出が含まれます。
インフルエンサーティアシステム
GitHub と X/Twitter のフォロワー情報を組み合わせ、クレーマーを分類します。
ティア | バッジ | X フォロワー | GitHub フォロワー |
Mega | 🔥🔥 MEGA INFLUENCER | ≥ 100K | ≥ 10K |
Influencer | 🔥 Influencer | ≥ 10K | ≥ 1K |
Notable | ⭐ Notable | ≥ 1K | ≥ 100 |
どちらかのしきい値を満たせばティアが適用されます — X フォロワー 50K・GitHub フォロワー 50 でも、まだ Influencer に該当します。
信頼性スコアと開発者実績
すべてのクレームカードは、あらかじめボットが収集するトラストシグナルを合成した決定固の 0〜100 信頼性判定と、クレームした開発者の診断ティブ実績(過去のトークンなど)を先頭に表示します。
このスコアは 決定論的で透明性があります。同じ入力であれば常に同じ結果を出し、モデル呼び出しを行って**である、ポイントのすべては見出しの下に表示される明示された要因に紐づきます。
ティア | バッジ | スコア |
Strong | 🟢 | 75-100 |
Moderate | 🟡 | 55-74 |
Caution | 🟠 | 35-54 |
High Risk | 🔴 | 0-34 |
スコアリングは中立の 50 から始まり、重み付けされた要因で調整されます:クレーム検証(+22、または GitHub オーナー不一致の場合は -20)、アカウント年齢(5 年以上は +14、30 日未満は -18)、公開リポジトリ、フォロワー、スター付き non-fork リポジトリ、コピーキャット(-10 / -16)、バンドル、ホルダー集中、過去のラグプル、BAN が評価されます。
開発者の実績記録は、一時的なスコアを記憶に変えます。すべてのスコアは、クレームした GitHub ユーザー ID に紐づけて記録されて永続化されるため、次に同開発者がトークンを立ち上げたとき、カードにはその履歴が表示されるのです。これにより、新しいコインがきれいに見えても、繰り返し手数料を搾り取る常連ファーマーを暴き出し、本当に実績のあるビルダーに正当な評価を与えます。
🟢 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 によるクレームサマリー
初回クレームでは、Groq (llama-3.3-70b-versatile) が生成した 1 行形式の AI 見解が提供されます。
トークンメタデータ、GitHub プロフィール、Creator の履歴、トレード動向など、30 以上のシグナルを分析
最大文字数 120。直接的、明断で、トレーダー向け
5 秒のタイムアウトと優雅なフォールバック(失敗時は空文字列)
Telegram でも安全な HTML サニタイズ済みの出力
例:
"本物の 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) │
└───────────────────┘マルチRPC フェールオーバ
RpcFallback クラスは、複数の Solana RPC エンドポイントを自動ローテーションで管理します。
ラウンドロビンローテーション — いずれかで 3 回連続失敗すると次エンドポイントへ切り替え
60 秒クールダウン — 失敗したエンドポイントは待振り 60 秒間休止します
最早期限フォールバック — すべてのエンドポイントがクールダウンの場合、最も近い期限が切れそうなものを選択
成功時のリセット — 1 回成功すると失敗カウンタがリセット
SOLANA_RPC_URLS(カンマ区切り)で設定
検知プログラム
プログラム | ID | 目的 |
PumpFees |
| フィー分散、ソーシャルフィー PDA クレーム |
Pump |
| ボンディングカーブ(卒業) |
ھپAMPump` |
| AMM(卒業後のプールイベント) |
インストール
npm(MCP サーバー — AI アシスタントに推奨)
npx を使って、クローンしなくてもMCPサーバーをすぐ実行できます:
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 on npm
ソースから(フルボット + Telegram フィード)
git clone https://github.com/nirholas/pumpfun-claims-bot.git
cd pumpfun-claims-bot && npm installクイックスタート
1. Telegram ボットを作成
Telegram で @BotFather にメッセージを送信
/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 にメッセージ → |
| ✅ | — | 投稿先チャンネル( |
| ✅ |
| |
| — |
| Solana WebSocket URL — |
| — | — | カンマ区切りのフォールバックRPC URL — 429 / 5xx / タイムアウト時に自動ローテーション |
| — |
| GitHubソーシャルフィー請求カードを投稿 |
| — |
| トークン卒業カードを投稿 |
| — |
| 新規トークンローンチカードを投稿 |
| — |
| クジラの買い/売りアラートを投稿 |
| — |
| クリエイター手数料分配イベントを投稿 |
| — |
| GitHubソーシャルフィーPDAがない請求をスキップ |
| — | — | GitHub PAT — こちらで作成(スコープ不要)— レート制限を60 → 5000 req/hr に引き上げ |
| — | — | AIワンライナー要約用のGroq APIキー — console.groq.com で無料キーを取得 |
| — | — | X/Twitter の |
| — | — | X/Twitter の |
| — | — | Axiom 取引リンク用のアフィリエイト参照コード |
| — | — | GMGN 取引リンク用のアフィリエイト参照コード |
| — | — | Padre 取引リンク用のアフィリエイト参照コード |
| — |
| WebSocketが利用できない場合のHTTPポーリング間隔 |
| — |
| クジラアラートをトリガーする最小SOL取引サイズ |
| — |
| ログの詳細度: |
| — |
| ヘルスチェックHTTPサーバーポート — Railway が自動設定 |
| — |
| AIアシスタント統合用のMCP(Model Context Protocol)サーバーを有効化 |
| — |
| MCPサーバーHTTPポート(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 ブートストラップ
起動時に、ボットはPumpFeesプログラムからすべての SharingConfig アカウントを取得し、ソーシャルフィーPDAアドレスからトークンミントへの逆マッピングを構築します。これにより、追加のRPC呼び出しなしでソーシャルフィー請求がどのトークンに属するかを解決できます。
起動時に約148Kのマッピングを読み込み
増分更新 —
CreateFeeSharingConfigとUpdateFeeSharesイベントのWebSocketサブスクリプションによるルックアップ:
socialFeeIndex.getMintForPda(pdaAddress)→ トークンミント1つのPDA → 複数のミント — 複数のトークンにわたってPDAを再利用する詐欺師に対応
偽の請求検出
一部のユーザーは、徴収する手数料がないランダムなトークンPDAを対象に claim_social_fee_pda 命令を呼び出します。ボットは以下をチェックしてこれらを検出します:
命令のディスクリミネータが
claim_social_fee_pdaと一致するトランザクションログに
SocialFeePdaClaimedイベントが含まれない — またはイベントがamountLamports = 0を示すGitHubユーザーIDとプラットフォームは命令引数(Anchor Borsh形式)から引き続き解析される
偽の請求は ⚠️ FAKE CLAIM 警告と 🚩 Fake claim — no fees paid out トラストシグナル付きで投稿されます。
初回請求トラッキング
ClaimTracker は正常に請求したGitHubユーザーIDの永続セットを維持します:
インメモリセット — 処理中の高速ルックアップ用
デバウンス付きディスク永続化(5秒遅延)—
data/github-first-claims.jsonへチェック/マーク分割パターン:
hasGithubUserClaimed()は副作用なしでチェック、markGithubUserClaimed()はTelegram投稿成功後にのみ呼び出し請求カウンター:
incrementGithubClaimCount()はユーザーごとの連番請求番号を返す初回請求ステータスは偽の請求には設定されない
3層の初回請求検証
ローカル重複排除 — 既に投稿済みの場合はスキップ(永続化された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チャンネル — ボットが管理者として追加されていること
Solana RPCエンドポイント — 専用RPC推奨(Helius、QuickNode、Triton)。パブリックメインネットでも動作しますが、レート制限される可能性があります。
GitHubトークン(任意)— APIレート制限を60から5,000 req/hrに引き上げ
トラブルシューティング
ボットがメッセージを投稿しない
ボットの権限を確認 — ボットはチャンネルの管理者で「メッセージを投稿」権限が必要です
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が切断された場合、ボットは
POLL_INTERVAL_SECONDSでHTTPポーリングにフォールバックRpcFallbackクラスが設定されたエンドポイント間でラウンドロビンを提供LOG_LEVEL=debugを設定して接続ステータスを確認
請求が欠落している
GitHub請求のみ? —
REQUIRE_GITHUB=trueを設定してGitHubソーシャルフィー請求のみを投稿フィードが無効? —
FEED_CLAIMS=trueが設定されているか確認SocialFeeIndexが遅い? — 初期ブートストラップは約148Kアカウントを取得します。起動時に30〜60秒かかります。ログで
SocialFeeIndex: loaded N mappingsを確認レート制限? — GitHub APIは未認証で60 req/hrを許可。
GITHUB_TOKENを設定して5,000 req/hrに
パイプライン統計
ボットは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: キャッシュバック請求(ユーザー返金、クリエイター活動ではない)
Webダッシュボード
2つのReactフロントエンドがチェックインされており、それらは同じアプリではありません:
ディレクトリ | 概要 | ビルド |
| 完全なダッシュボード: SSEイベントストリーム、ウォッチリスト、SEOアセット( |
|
| 同じUIの初期の小規模版。ダッシュボードは生成されたサンプルイベントをレンダリングし、SSEクライアントはありません。 |
|
以下に記載する機能は web/web/ を説明したものです。両ディレクトリとも現在はクリーンにビルドできますが、1つに統合する作業はまだ未完了です。
ディープリンク(/dashboard、/docs など)はクライアントサイドルートのため、任意の静的ホストで未知のパスを index.html にリライトする必要があります。各アプリには現在、そのリライト設定を含む vercel.json が同梱されています。Vercel以外のホストでは、同等のSPAフォールバックを設定してください。
ページ
ページ | ルート | 説明 |
ホーム |
| プロジェクト概要のランディングページ |
ダッシュボード |
| SSEストリーミングによるライブイベントフィード |
コイン作成 |
| トークン作成インターフェース |
ドキュメント |
| APIドキュメント & Telegramコマンド |
パッケージ |
| パッケージブラウザ |
ダッシュボード機能
サーバー送信イベント(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)サーバーが含まれており、AIアシスタント(Claude、Copilot、Cursorなど)がPumpFunのオンチェーンデータを会話形式で照会できます。
MCPツール
ツール | 説明 |
| トークンメタデータ、時価総額、ボンディングカーブの進捗、フラグ |
| 集中度メトリクス付きの上位ホルダー |
| 最近の取引アクティビティ — 出来高、買い/売り回数 |
| 卒業トークンのPumpSwap AMMプール流動性 |
| バンドル検出(詐欺インジケーター) |
| クリエイターのローンチ履歴、詐欺推定、最近のコイン |
| ユーザー名または数値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使用方法: Streamable HTTPトランスポート(組み込み)
メインボットと並行して実行するには、MCP_ENABLED=true を設定します:
MCP_ENABLED=true MCP_PORT=3001 npm run devMCPエンドポイントは設定されたポートの POST /mcp で利用可能です。クライアントはStreamable HTTPトランスポートを使用して接続します。
クエリ例
接続後、AIアシスタントに次のように尋ねます:
"ミントアドレス 7xKXt...p3Bz のトークン情報を調べて"
"GitHubユーザー 12345 はPumpFunの手数料をクレームしたことがある?"
"このトークンの上位ホルダーは誰?"
"このトークンのローンチがバンドルされていたか確認して"
"現在のSOLの価格は?"
ヘルスチェックAPI
このボットはRailway / Dockerプローブ用のHTTPヘルスチェックサーバーを公開しています。
エンドポイント | メソッド | 説明 |
| GET | 稼働状況と統計情報を返します |
| GET |
|
レスポンス:
{
"status": "ok",
"uptime": "12345s",
"uptimeMs": 12345000
}正常時は 200、低下時は 503 を返します
コールバックを介して動的統計情報を注入(パイプラインカウンター、接続ステータス)
ポートは
PORTまたはHEALTH_PORT環境変数で設定可能(デフォルト: 3000)
テスト
このプロジェクトは Vitest を使用しています: 11スイート・203テストがすべて npm test で成功します。
# Run all tests
npm test
# Watch mode (re-runs on file changes)
npm run test:watchテストスイート
すべてのスイートは src/__tests__/ にあります(共有フィクスチャデータは fixtures.ts)。
スイート | ファイル | カバレッジ |
Claim Tracker |
| 初回クレーム検出、永続化、カウンター、生涯合計 |
Claim Routing |
| どのクレームが投稿されるか、スキップされるか、どのフィードにルーティングされるか |
Credibility |
| 決定的0〜100スコアリング、要因別内訳、ティア境界 |
Dev Reputation |
| 開発者ごとの永続的なトラックレコードと平均値 |
Formatters |
| HTMLカード生成、エスケープ、null処理、エッジケース |
GitHub Client |
| URL解析、APIレスポンス処理、キャッシュ動作 |
Groq Client |
| AI要約生成、APIキー処理、HTML安全性 |
Pump Client |
| トークン、ホルダー、取引、クリエイターAPIレスポンス処理 |
RPC Fallback |
| ラウンドロビンローテーション、クールダウン、再試行可能なエラー処理 |
X Client |
| インフルエンサーティア分類、フォロワー数フォーマット |
E2E Pipeline |
| エンドツーエンドのクレーム追跡、フォーマット、GitHubフィード |
ローカル開発
# Install dependencies
npm install
# Run with hot reload (tsx)
npm run dev
# Type-check without emitting
npm run typecheckLOG_LEVEL=debug を設定すると、Telegramに投稿されるかどうかに関係なく、すべてのイベントがstdoutに記録されます。
技術スタック
コンポーネント | 技術 |
ランタイム | Node.js >= 20 (ESM) |
言語 | TypeScript 5.7 (strict mode) |
ブロックチェーン |
|
Telegram | grammYフレームワーク |
AI | Groq API (llama-3.3-70b-versatile) |
フロントエンド | React 18 + Vite 5 + Tailwind CSS |
テスト | Vitest |
コンテナ | Docker(マルチステージAlpine、非root) |
MCP |
|
ホスティング | Railway(GitHubからの自動デプロイ) |
依存関係 | 本番6、開発4 — 意図的に最小限 |
コントリビューション
コントリビューションを歓迎します!ガイドラインは CONTRIBUTING.md を参照してください。
リポジトリをフォーク
フィーチャーブランチを作成(
git checkout -b feat/my-feature)テスト(
npm test)と型チェック(npm run typecheck)を実行プルリクエストを開く
セキュリティ
脆弱性を発見しましたか?責任を持って報告してください — 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