Tokensafe について
Tokensafeは、トレーダーやエージェント向けのSolana SPLトークンリスク評価APIです。オンチェーンデータとスワップ見積もりから評価し、無料の簡易チェックと署名付き詳細レポートを提供します。MCPでは現在、無料チェックのみ利用できます。
主な機能
- 01オンチェーン情報によるリスク評価
- 02権限・流動性・売却可否の確認
- 03リスクレベルと読みやすい要約
- 04検証用の詳細レポート署名
- 05無料チェックとしきい値判定
活用シーン
- 01取引前のSolanaトークン確認
- 02候補トークン間のリスク比較
- 03リスクしきい値による処理判断
MCP 対応
MCPエンドポイントは、簡易結果を返す無料ツール `solana_token_safety_check` を公開します。有料の詳細チェックツールはまだ有効化されていません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://tokensafe-production.up.railway.app/mcpclaude mcp add --transport http tokensafe https://tokensafe-production.up.railway.app/mcp{"mcpServers":{"tokensafe":{"type":"http","url":"https://tokensafe-production.up.railway.app/mcp"}}}Cursor で開く{"servers":{"tokensafe":{"type":"http","url":"https://tokensafe-production.up.railway.app/mcp"}}}VS Code で開く{"mcpServers":{"tokensafe":{"type":"http","url":"https://tokensafe-production.up.railway.app/mcp"}}}{"mcpServers":{"tokensafe":{"serverUrl":"https://tokensafe-production.up.railway.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mint_address | string | はい | base58 形式の Solana トークン mint アドレス |
詳細
TokenSafe
オンチェーンデータから Solana トークンのラグプルリスクをスコア化し、レポート全文を x402 マイクロペイメントで $0.02 で販売する API です。ラグプルとは、作成者がトークンの価値を引き出してしまうことです。オンチェーンとは、公開台帳に記録されていることを意味します。x402 は HTTP 決済フローです。サーバーが 402 を返し、呼び出し元のウォレットが USDC(ドル連動型ステーブルコイン)で支払うと、再試行時に署名済みレポートが返されます。Express 上の TypeScript で構築されており、9 項目のチェックのうち 7 項目は Helius RPC 経由で Solana を参照し、2 項目は Jupiter のスワップ見積もりを利用します。
ステータス:稼働中です。 このリポジトリには CI がありません。また、MCP エンドポイント上の有料ツール(AI エージェントが呼び出すインターフェース)は、実際に x402 決済が完了したことを確認できるまで無効のままです。
稼働中:https://scry-production.up.railway.app/ · ドキュメント:docs/API.md · INTEGRATION.md
クイックスタート
API は https://tokensafe-production.up.railway.app で利用できます。ライトチェックは無料で、ウォレットは不要です(mint は Solana 上のトークンアドレスです。以下の例はラップド SOL です)。
curl 'https://tokensafe-production.up.railway.app/v1/check/lite?mint=So11111111111111111111111111111111111111112'
risk_score、risk_level、summary、can_sell や authorities_renounced などのフラグ、および full_report の参照先が返されます。ラップド SOL のスコアは 2026-09-27 時点で 5(LOW)でした。フルチェックは、支払いが完了するまで 402 を返します。
curl -sS -D - -o /dev/null 'https://tokensafe-production.up.railway.app/v1/check?mint=So11111111111111111111111111111111111111112'
PAYMENT-REQUIRED ヘッダー(Base64 エンコードされた JSON)は、USDC の最小通貨単位 20000 を要求します。USDC は小数点以下 6 桁なので、これは $0.02 です。INTEGRATION.md の例にある @x402/fetch など、任意の x402 クライアントが支払いを行い、再試行します。
AI エージェント向けに、MCP エンドポイントはライトチェックの結果を返す無料ツール solana_token_safety_check を 1 つ公開しています。
claude mcp add --transport http tokensafe https://tokensafe-production.up.railway.app/mcp
Claude Code では、/plugin marketplace add ampactor-labs/tokensafe に続けて /plugin install tokensafe@ampactor-labs を実行することで、プラグインとしてインストールすることもできます。
使用方法
有料エンドポイントは x402 または X-API-Key ヘッダーを受け付けます。GET /v1/check の料金は $0.02 です。最大 5、20、または 50 件のミントアドレスを指定するバッチ(POST /v1/check/batch/{small,medium,large})の料金は、それぞれ $0.07、$0.20、$0.40 です。最大 10 件または 50 件のミントアドレスを指定するトレジャリー監査(POST /v1/audit/{small,standard})の料金は、それぞれ $0.15、$0.60 で、ポリシーチェックと署名済みレポートが追加されます。POST /v1/subscribe の料金は $49 で、月 6,000 回のチェックを毎分 200 リクエストで利用できる 30 日間有効な Pro キーを発行します。キーは tks_ で始まります。ライトチェック、/v1/decide、/v1/verify、/health、/mcp、およびディスカバリードキュメントは無料です。有料ルートと /health は IP ごとに毎分 60 リクエスト、無料チェックと /mcp は毎分 30 リクエストまで許可されます。料金は src/discovery/catalog.ts で一元管理され、決済ゲートとディスカバリードキュメントの両方に反映されるため、呼び出し元が支払う料金と公開されている料金に食い違いが生じません。
/v1/decide はライトスコアをしきい値に照らして可否に変換します。ゲートとしてのみ利用したい呼び出し元向けです。
curl 'https://tokensafe-production.up.railway.app/v1/decide?mint=So11111111111111111111111111111111111111112&threshold=30'
2026-09-27 時点では、"decision":"SAFE","risk_score":5,"risk_level":"LOW","threshold_used":30,"score_reliable":true が返されました。結果の信頼性が低下している場合は、推測せずに UNKNOWN を返します。すべてのエンドポイント、レスポンス形式、スコアリングの重み付け、決済フローについては docs/API.md をご覧ください。Webhook、管理者向けキー管理、エラーコードについては INTEGRATION.md をご覧ください。
仕組み
src/app.ts は Express アプリです。リクエストはディスカバリードキュメントと /health を通過し、次に無料のルート(/v1/check/lite、/v1/decide、/v1/verify、管理者用および監査読み取り用のルート)、API キーチェック、x402 ゲート(@x402/express を基盤とする src/x402/middleware.ts)の順に進み、その後に有料ルートへ到達します。チェック(src/analysis/token-checker.ts)では、まず Helius(ホスト型の Solana RPC プロバイダー)経由でミントアカウントを読み取り、上位保有者の確認、Jupiter(Solana のスワップアグリゲーター)での売買見積もりの往復、メタデータとトークン年齢の確認を並行して実行し、その後に流動性と LP ロックを検出して、スコアを算出し、署名を行い、同じミントの前回の結果との差分を取ります。キャッシュされていないチェックでは、チェック用モジュールを基に数えた場合、再試行を除いて RPC 呼び出しが 6~11 回、HTTP 呼び出しが 1~3 回発生します。結果は、10,000 件を保持する 5 分間のインメモリ LRU キャッシュ(劣化した結果は 30 秒間)に保存され、同じミントへの同時リクエストでは単一の分析が共有されます。
| チェック | 検出内容 | ソース |
|---|---|---|
| ミント権限 | 供給量がまだ増やされる可能性があるか | RPC getAccountInfo と getMint |
| フリーズ権限 | 保有者のアカウントが凍結される可能性があるか | 同じ読み取り |
| 上位保有者 | 既知の DeFi プログラムが所有するアカウントを除外した、上位 10 アカウントへの集中度 | RPC getTokenLargestAccounts と getMultipleAccounts |
| 流動性 | スワップルートの有無とその深さ | Jupiter の見積もり。フォールバックとして DexScreener(市場データサイト)を使用 |
| LP ロック | Raydium(Solana の取引所)の AMM v4 プールで、資金の受領証にあたる LP トークンが既知のロッカーまたはバーンアドレスに保管されているか | 9 つのロッカープログラムアドレスを対象とする RPC |
| ハニーポット | 購入はできるが売却に失敗する、または売却税があるか | Jupiter の買い見積もりと売り見積もりの比較 |
| メタデータ | 名前や画像をまだ変更できるか | Metaplex メタデータアカウント(Solana のメタデータ標準)の RPC 読み取り |
| トークン年齢 | 1 時間未満または 24 時間未満にローンチされたか | RPC getSignaturesForAddress |
| Token-2022(新しいトークンプログラム) | 送金手数料、永続的な委任者、送金フック | ミントアカウントの型・長さ・値(TLV)拡張データ |
スコア(src/analysis/risk-score.ts)は、検出項目ごとに固定の減点を加算し、合計を 100 点で上限設定します。信頼できないミント権限が有効な場合は、成熟度を示すシグナル(潤沢な流動性、一定の経過期間、保有者の分散度)に応じて 15~30 点を減点し、流動性がない場合は 30 点、売却に失敗した場合は 30 点、永続的な委任者がいる場合は 30 点を減点する、といった具合です。0~20 点は LOW、21~40 点は MODERATE、41~60 点は HIGH、61~80 点は CRITICAL、それを超える場合は EXTREME です。チェックを実行できない場合は、問題なく通過したものとして扱わず、不確実性に対するペナルティを加算します。重みの完全な一覧は docs/API.md にあります。
設計の方針を決める要素は 2 つありました。1 つ目は、サードパーティのセキュリティ API やモデルではなく、チェーンの読み取り結果とスワップ見積もりからスコアを算出することです。入力項目が明示されたスコアであれば再現可能で、署名する価値があるためです。すべての完全なレポートは、{mint, checked_at, rpc_slot, risk_score} に対して Ed25519(公開鍵署名方式)で署名され、レスポンスには response_signature と signer_pubkey(/health にも表示されます)が含まれます。また、POST /v1/verify では署名を無料で検証できるため、転送された判定結果はアテステーション、つまり誰でも確認できる署名付きの声明になります。2 つ目は、支払いを認証にも兼用することです。x402 がデフォルトの API キーに代わり、ウォレットを持たない呼び出し元向けにサブスクリプションキーも用意されています。
デプロイ
API は Railway 上で実行されます。https://tokensafe-production.up.railway.app/health は稼働確認用ページです(ルートルートがないため、ルートへのアクセスは 404 を返します)。Dockerfile からビルドされます。tsc でコンパイルし、npm ci --omit=dev で本番用依存関係をインストールし、/health のコンテナーヘルスチェックとともに node dist/index.js を実行する、マルチステージの node:22-slim イメージです。デプロイトリガーとシークレット(トレジャリーウォレット、Helius キー、Coinbase CDP ファシリテーターキー、署名キー)は Railway にあります。このリポジトリにはデプロイワークフローはありません。/health はネットワーク、署名者の公開鍵、キャッシュ統計を報告します。2026-09-27 時点では、mainnet と 58 日間の稼働時間が表示されていました。Scry(Live リンクのウェブ版、Telegram は https://t.me/ScryTokenBot)は別のサービスで、フロントエンドからこの API を呼び出します。
独自のインスタンスを実行する方法については、docs/SELF-HOSTING.md を参照してください。要約すると、トレジャリーウォレットのアドレス、Helius API キー、および Coinbase CDP キーか FACILITATOR_URL=https://facilitator.payai.network のいずれかが必要です。デフォルトのファシリテーターは CDP キーがないと 401 を返し、サーバーは起動時に終了するためです。
テスト
npm test は vitest を実行します。Node 24.21.0 で 19 ファイル、537 件のテストを 16.5 秒で実行します(2026-10-26 に計測)。テスト対象は、スコアの重みとしきい値、モックした RPC と Jupiter のレスポンスを使った各チェックモジュール、LP ロックの検出、差分の検出とアラート、ポリシーエンジン、チェッカーと x402 ゲートをモックした supertest による HTTP ルート、API キー、監査、Webhook、モニターのエッジトリガー型アラート、MCP の決済ゲート、/v1/verify によるレスポンス署名、ディスカバリードキュメントです。テストスイートから Solana、Jupiter、DexScreener、ファシリテーターに接続することはなく、決済も完了しません。
SMOKE_URL=https://tokensafe-production.up.railway.app npm run test:smoke は、実行中のインスタンスに対して読み取り専用のチェックを 25 件実行します。ヘッダーのヘルスチェック、402 チャレンジとその $0.02 の金額、バッチおよびディスカバリールート、MCP の tools/list とツール呼び出し、実際のトークンを使った lite および decide エンドポイント、エラー形式を確認します。2026-09-27 に本番環境で実行し、25 件中 25 件に合格しました。決済は行いません。決済が必要なパスは SVM_PRIVATE_KEY=<base58 keypair> npm run test:x402 です。資金があるウォレットが必要なため、ここでは実行していません。
このリポジトリには CI ワークフローがありません。テストは開発者のマシン上で実行します。
制限事項
これはチェーンの状態を読み取るため、チェーンの状態に表れる内容しか検出できません。開発者が単に売却した場合や、チームのウォレットが侵害された場合、その瞬間が訪れるまでは問題のないレポートが出ます。SAFE 判定は、チェックで何も見つからなかったことを意味します。トークンが安全だという意味ではありません。
ハニーポット検出では、0.1 SOL の Jupiter 買いクオートと売りクオートを比較するため、一部の売り手のみを拒否するロジックや、一定時間が経過してから拒否するロジックは見逃します。また、Jupiter のルートがないトークンは、ハニーポットではなく不明(10 ポイント)と判定されます。LP ロック検出は Raydium AMM v4 のプールでのみ実行され、2 つのロッカー、Streamflow と UNCX のプログラムアドレス 9 件に加え、LP トークンがインシネレーターアドレス(誰も管理していないバーンアドレス)に送られたケースを認識します。このようなプールでは、それ以外の場所にロックされた流動性は未ロックと判定され、15 ポイントが加算されます。それ以外のすべてのプールタイプでは、ロックはチェックされません。
流動性とハニーポットのチェックはオフチェーンサービスである Jupiter と DexScreener に依存しています。これらのサービスがタイムアウトすると、チェックは劣化状態とマークされ、不確実性ペナルティが適用され、結果は 30 秒間キャッシュされます。通常の結果は 5 分間キャッシュされるため、ラグが進行中でも結果が古いままになることがあります。トップホルダーの集中度は、最も大きい 20 件のトークンアカウントに基づいています。RPC が一覧表示できる上限を超えるアカウントを持つトークンは、集中度 0% の WIDELY_HELD としてマークされます。
RESPONSE_SIGNING_KEY が設定されていない場合、署名キーは一時的なものです。また、/v1/verify は現在のキーのみを使って検証するため、この変数を設定せずに再起動する前に発行された署名は検証できません。このリポジトリのコードは CI で一切テストされず、デプロイとシークレットは Railway に置かれているため、証拠となるのは署名付きレスポンスとオンチェーンの支払いです。
ロードマップ
- MCP 経由の有料フルチェックツール。
src/mcp/payment.tsは JSON-RPC レイヤーで x402 を使ってsolana_token_safety_check_fullツールを制限していますが、実際の決済が確認できるまでPAID_MCP_TOOL_ENABLEDはfalseのままです。その確認はnpm run test:x402-mcpで行うため、現在エンドポイントが公開しているのは無料ツールのみです(2026-09-27 にライブのtools/listで確認済み)。
ライセンス
ライセンスはまだ選定されていません。リポジトリに LICENSE ファイルはなく、package.json に license フィールドもありません。.claude-plugin/plugin.json には MIT と記載されているため、所有者はライセンスファイルを追加するか、その記載を修正する必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。