RugRadar について
RugRadarは、Solanaトークンのラグ、トークン安全性、ハニーポットのチェックと監視アラートを提供するサービスとして紹介されています。READMEにはUSDCで都度払いする調査API群が記載されていますが、リスクチェックの具体的なエンドポイントやMCP対応は示されていません。
主な機能
- 01Solanaトークンのリスクチェック
- 02トークン安全性とハニーポットの確認
- 03トークン監視アラート
活用シーン
- 01Solanaトークンの潜在リスク確認
- 02トークンの安全性とハニーポットリスクの評価
- 03トークン監視アラートの受信
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://x402-seller-pmlm.onrender.com/mcpclaude mcp add --transport http jimmybr-pdx-rugradar https://x402-seller-pmlm.onrender.com/mcp{"mcpServers":{"jimmybr-pdx-rugradar":{"type":"http","url":"https://x402-seller-pmlm.onrender.com/mcp"}}}Cursor で開く{"servers":{"jimmybr-pdx-rugradar":{"type":"http","url":"https://x402-seller-pmlm.onrender.com/mcp"}}}VS Code で開く{"mcpServers":{"jimmybr-pdx-rugradar":{"type":"http","url":"https://x402-seller-pmlm.onrender.com/mcp"}}}{"mcpServers":{"jimmybr-pdx-rugradar":{"serverUrl":"https://x402-seller-pmlm.onrender.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://x402-seller-pmlm.onrender.com/mcp認証が必要ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| chain | enum | いいえ | デフォルトは solana。0xアドレスは base がデフォルトです。solana | base | bnb | ethereum | arbitrum |
| token | string | はい | SolanaのmintまたはEVMの0xトークンコントラクト |
| api_key | string | いいえ | オプションのRugRadarクレジットキー(またはヘッダー X-RugRadar-Key を送信) |
詳細
エージェント調査ツール — 従量課金型 x402 API(USDC:Base、Polygon、Arbitrum、Solana、Avalanche、Sei)
稼働中:https://x402-seller-pmlm.onrender.com · エージェントガイド:/llms.txt · OpenAPI:/openapi.json · ディスカバリー:/.well-known/x402
API キーもサインアップも不要です。AI エージェントは、x402 プロトコルを使用して、Base(eip155:8453)、Polygon(eip155:137)、Arbitrum(eip155:42161)、Solana メインネット(CDP ファシリテーター)、Avalanche(eip155:43114)、Sei(無料の PayAI ファシリテーター)上の USDC でリクエストごとに支払います。決済は Coinbase CDP ファシリテーターを通じて行われ、CDP x402 Bazaar に掲載されています。
| エンドポイント | 価格 | 利用する場面 | 返される内容 |
|---|---|---|---|
GET /report?q=<question> | $0.01 | トピックについて、出典付きの簡潔な回答や背景情報が必要な場合 | 1~3 文の answer、出典 ID に関連付けられた key_points、URL、日付、根拠となる引用を含む sources[](通常 1~5 件:Wikipedia が最初で、該当する場合は Stack Overflow、GitHub、Crossref の論文、公式ドキュメントも含みます。トピックに関係のない出典は除外されます)、confidence |
GET /read?url=<https url> | $0.005 | URL のテキストを LLM 用に取得したい場合 | title、description、publishedAt、整形済みの markdown、wordCount、headings[]、links[] |
GET /check?url=<x402 endpoint> | $0.005 | x402 API の利用料を支払う、または掲載する前に確認したい場合 | 準備状況の score、各チェックの結果、fixes[](支払い不要のプローブを 1 回実行。対象には決して支払いません) |
GET /news?q=<keywords> | $0.005 | 過去 1~7 日間にトピックについて何が起きたか知りたい場合 | articles[](タイトル、url、配信元、publishedAt、一致度の score、partialMatch)、outlets、プロバイダーの状態。hours(1~168、デフォルト 72)、limit(1~25)は任意です。見出しとリンクのみ |
GET /price?token=<symbol, 0x address or Solana mint> | $0.002 | トークンの検証可能な USD 価格と 24 時間の変動が必要な場合 | priceUsd、change24hPct と priceUsd24hAgo(EVM)、confidence、poolSpreadPct、totalDepthUsd、エクスプローラーへのリンクを含む pools[]、block/slot。chain(ethereum、base、arbitrum、polygon、solana)は任意です |
GET /solana-price?token=<symbol or mint> | $0.002 | Solana トークン(pump.fun/PumpSwap トークンを含む)の価格が必要な場合 | priceUsd、confidence、thinLiquidity、深度を含む pools[](Orca Whirlpool、Raydium CLMM、PumpSwap、pump.fun カーブ)、poolSpreadPct、solUsd、slot |
GET /balance?address=<0x, name.eth or Solana address> | $0.003 | ウォレットの保有資産とその価値を確認したい場合 | チェーンごとの native と tokens[](残高、価格、USD)および totalUsd。EVM は Ethereum、Base、Arbitrum、Polygon を 1 回の呼び出しで取得します。chain、tokens(追加のコントラクト/ミント)は任意です |
GET /tx?hash=<0x hash or Solana signature> | $0.003 | トランザクション/支払いが着金したか、何を実行したかを確認したい場合 | status、timestamp、confirmations、from/to、デコードされた method(x402/EIP-3009 の USDC 支払いを識別)、USD 建ての fee、デコードされた tokenTransfers[](EVM)または SOL/トークンの残高変動(Solana)。chain は任意です |
GET /gas[?chain=] | $0.002 | トランザクションを送信する前に現在の手数料を確認したい場合 | ベース手数料、低速/標準/高速の優先手数料、maxFeePerGas、EVM チェーンごとの送金/ERC-20 送金/スワップの USD コスト、Solana の優先手数料、cheapestEvmForErc20Transfer |
エラーに対して請求されることはありません: 400 入力不正、422 該当なし/対象に到達不能、503 利用不可。 x402 ミドルウェアは、ハンドラーが 2xx を返した場合にのみ支払いを決済します。
呼び出し
# 1. Unpaid call -> 402 with base64 JSON challenge in the PAYMENT-REQUIRED header
curl -i "https://x402-seller-pmlm.onrender.com/report?q=history+of+the+transistor"
# 2. Pay with any x402 client, e.g. @x402/fetch
import { wrapFetchWithPayment } from "@x402/fetch";
// ... create an x402 client with an EVM signer holding a little Base USDC
const res = await fetchWithPayment("https://x402-seller-pmlm.onrender.com/report?q=what+is+RAG");
console.log(await res.json()); // { summary, bullets, sources, ... }
自分で実行する
Node 22 以降、CDP API キー(https://portal.cdp.coinbase.com)、Base の受取アドレスが必要です。
cp .env.example .env # fill CDP_API_KEY_ID / CDP_API_KEY_SECRET / X402_PAY_TO
npm ci && npm run dev # http://localhost:8402
| 環境変数 | デフォルト値 | 備考 |
|---|---|---|
X402_ENV | development | production = Base、Polygon、Arbitrum、Solana(CDP)+ Avalanche、Sei(PayAI);development = Base Sepolia + Solana Devnet |
X402_NETWORKS | X402_ENV に応じた値 | CAIP-2 形式の任意のカンマ区切りオーバーライド。例:eip155:8453,eip155:137(サポート対象:8453、137、42161、43114、1329、84532、Solana mainnet/devnet)。すべての EVM チェーンで同じ X402_PAY_TO を使用します |
X402_SOLANA_PAY_TO | 組み込みの公開アドレス | Solana の受取アドレス(公開鍵のみ。秘密情報がこのリポジトリに保存されることはありません) |
PAYAI_FACILITATOR_URL | https://facilitator.payai.network | Avalanche/Sei 用のファシリテーター(無料枠、API キー不要) |
X402_PAY_TO | — | EVM の受取アドレス(指定しない場合は CDP がプロビジョニングします。CDP_WALLET_SECRET が必要です) |
REPORT_PRICE / READ_PRICE / CHECK_PRICE / NEWS_PRICE / TOKEN_PRICE | $0.01 / $0.005 / $0.005 / $0.005 / $0.002 | 1 回あたりの料金 |
SOL_PRICE / BALANCE_PRICE / TX_PRICE / GAS_PRICE | $0.002 / $0.003 / $0.003 / $0.002 | /solana-price、/balance、/tx、/gas の1回あたりの料金 |
NEWS_GKG_HOURS | 24 | メモリに保持する GDELT GKG 15分ニュースインデックスの時間数(0 = 無効)。15分ごとに約2.5 MBをダウンロードし、1日あたり約5万件の見出し、RAMを約60 MB使用します |
NEWS_GDELT_API | オフ | 1 = GDELT DOC API もクエリします(レート制限あり。レイテンシが増加します) |
TRAFFIC_FILE | ./data/traffic.json | /stats のカウントを保存する場所(10分ごと、およびシャットダウン時)。off = メモリのみ。Render の無料プランには永続ディスクがないため、ここにディスクをマウントしない限り、デプロイのたびにカウントがリセットされます |
SOLANA_RPC_URLS | Solana Foundation + PublicNode | カンマ区切りの Solana RPC URL(最初に正常応答したものを使用) |
PUBLIC_URL | Render の URL | 検出用ドキュメントで使用します |
DAILY_SPEND_CAP_USD | 50 | UTC 日ごとの決済確定額に対する暴走防止の上限 |
GROK_API_KEY または OPENAI_API_KEY | — | 任意:引用元をもとにした LLM による統合。未設定の場合、/report は抽出型になります |
SERPER_API_KEY | — | 任意:Serper(Google 検索結果 API)を最初の /search の検索元として使用します(タイムアウト5秒)。エラーや割り当て上限に達した場合、または未設定の場合は、Brave → DuckDuckGo → Bing → Bing RSS → Wikipedia の順にフォールバックし、結果が少ない場合は補完します |
無料のルート:/health、/stats、/examples、/llms.txt、/openapi.json、/.well-known/x402、/robots.txt、/icon.png(/icon.svg)。
回答のパーマリンク(/a/<id>)
有料の /report の回答にはすべて、共有可能な無料ページ /a/<id>(シンプルな HTML。保存済み JSON は ?format=json)が用意され、フッターにはサービスへのリンクがあります。データはメモリにのみ保存されます(最大500件、30日間)。そのため、Render のデプロイや再起動のたびにリンクがリセットされます。保存されるのは回答のみ(質問、回答、ソース)で、IP アドレス、ユーザーエージェント、支払者は保存されません。/a/example-mcp は固定のデモです。有料レスポンスには、ボット向けのフィールドが先頭に含まれます:answer、answer_citations、key_points[{text,citations}]、publisher、published、quote、confidence、confidence_why、checked_at、permalink を含むソース。元のフィールド(summary、bullets など)は変更されません。
関心トラッカー(/stats)
ブラウザーで /stats(または /stats?view=simple)を開くと、平易な英語のページが表示されます。見出しの一文、ツールごとの表(価格の確認/支払い済み/ボット・クローラー)、太平洋時間が掲載されます。プログラムには JSON(デフォルト、または ?format=json)が返されます。独自のテストウォレット(SELF_PAYERS、デフォルトは 0x4862…4940)で署名された支払いと、同じ訪問者によるその直前の未払いプローブには self のタグが付けられ、購入者数から除外されます(selfPaid に表示されます)。
有料ルートごと、および時間ごと/UTC 日ごとに、未払いの 402、支払い済みの 200、決済失敗、支払い拒否、請求されなかったエラー、ユニーク訪問者を集計し、訪問者クラスごとに分類します。client(支払いを送信する人、またはボットではないユーザーエージェント(node、python、curl、ブラウザーなど))、crawler(CDP Bazaar、x402scan、402index、その他の x402 ディレクトリ)、pinger(cron-job.org、UptimeRobot など)、bot(検索/AI クローラー、スキャナー、空の UA)、head(HEAD/OPTIONS)、self(scripts/rank-check.mjs)です。訪問者は sha256(ランダムな日次ソルト + IP + UA) で識別されます。生の IP は保存されず、ソルトがメモリから外に出ることもありません。/health には簡潔な traffic ブロックが含まれ、/stats には本日、昨日、過去 7 日間、48 時間分および 35 日分のバケット、上位ユーザーエージェント、定義が表示されます。メモリ使用量は数百 KB です。
ディスカバリーとランキング
- すべての有料ルートは、x402 Bazaar 仕様に従い、
extensions.bazaar(入力スキーマと例、型指定された出力スキーマと例)およびresource.serviceName/tags/iconUrl/mimeTypeを宣言します。 - CDP Bazaar は、CDP で決済された最初の支払い後にルートをインデックス化し、約 6 時間ごとにランキングを更新します(過去 30 日間の呼び出し数、ユニークな支払い者数、メタデータの品質、可用性)。30 日間決済がないルートは除外されます。
node scripts/rank-check.mjsを実行すると、定期チェックリスト(稼働状況、Bazaar の掲載状況とクエリごとの順位(Base フィルターあり/なし)、CDP の検証、オンチェーン売上、/stats関心トラッカー、x402scan への掲載状況)が出力されます。- Bazaar の検索順に影響する要素(CDP のドキュメントと観測されたランキング):クエリに対する
serviceName、タグ、説明の関連性(テキスト検索とセマンティック検索のハイブリッド)に、過去 30 日間のユニーク購入者数、決済済みの呼び出し数、新しさ、メタデータの完全性を組み合わせます。約 6 時間ごとに再計算されます。結果はドメインごとに上限が設けられ、新たな CDP 決済が発生した後にのみ、インデックス済みのメタデータが更新されます。
ガードレール
- 決済は、ファシリテーターが確認した後にのみ、支払者とトランザクションハッシュとともに
payments.jsonl(gitignore 対象)に記録されます。 - サーキットブレーカー:10 分以内に決済失敗(支払いを確認済みだが決済に失敗)が 3 回発生すると、有料呼び出しに対して 503(課金なし)を返します。
/newsの情報源は、GDELT GKG の 15 分間隔ファイル(オープンデータ。gdeltproject.org を引用。メモリ内でインデックス化されるため、API のレート制限なし)、Hacker News(Algolia API)、約 26 のパブリッシャーの RSS/Atom フィード(10 分間キャッシュ)です。返されるのは見出し、リンク、媒体名、時刻のみで、記事本文は含まれません。/priceは、パブリック RPC ノード経由の Multicall を使って Uniswap v3 プールの状態(slot0、リザーブ)を直接読み取ります。サードパーティの価格 API は使わないため、すべての数値を返却されたブロック上でオンチェーン検証できます。見積もり通貨側の流動性が 25,000 ドル未満のプールは除外されます。条件を満たすプールがない場合は 422(課金なし)を返します。24 時間の変動率は、最も流動性の高いプール独自の TWAP オラクル(observe)、または約 24 時間前のブロックにおけるアーカイブslot0の読み取り値から算出されます。30 秒間キャッシュされます。/solana-price(および Solana 向けの/price)は、PDA から Orca Whirlpool、Raydium CLMM、PumpSwap、pump.fun のボンディングカーブのアカウントを導出し、パブリック Solana RPC から読み取ります(インデクサー、API キー不要)。対象外:Raydium AMM v4、Meteora。Solana では 24 時間の変動率はありません(パブリック RPC に価格履歴が保存されていないため)。流動性が 5,000 ドル未満の場合は 422、25,000 ドル未満の場合はthinLiquidityとなります。/balance、/tx、/gasはパブリック RPC ノードのみを読み取ります(EVM では Multicall3)。残高には、ネイティブトークンと各チェーンの主要トークンの厳選リストに加え、指定したtokens=が含まれます(パブリック RPC はウォレットが保有するすべてのトークンをインデックス化しているわけではありません)。/readと/checkは、パブリックなhttpsホストのみを取得します(プライベート/ループバック/リンクローカル IP はブロックされ、リダイレクト先も再確認されます。上限は 3 MB/15 秒です)。
MIT スタイルのライセンスです。自由にご利用ください。このリポジトリにシークレットを保存しないでください。.env は絶対にコミットしないでください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。