ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Token Safety Check

โดย lx1112รุ่น 0.4.1i★ –iรันบนเครื่อง
ชื่อใน registryio.github.lx1112/token-safety-check

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Rug check tokens on Base, Ethereum, Arbitrum, Optimism, Polygon, Solana: 0-100 risk score + reasons

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: คริปโตและบล็อกเชน
  • ต้องใส่ค่าเหล่านี้: X402_PRIVATE_KEY

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "token-safety-check": {
      "command": "npx",
      "args": [
        "-y",
        "token-safety-check"
      ],
      "env": {
        "X402_PRIVATE_KEY": "ใส่ค่าของคุณ",
        "TOKEN_SAFETY_MAX_USD": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add token-safety-check --env X402_PRIVATE_KEY='ใส่ค่าของคุณ' --env TOKEN_SAFETY_MAX_USD='ใส่ค่าของคุณ' -- npx -y token-safety-check

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "token-safety-check": {
      "command": "npx",
      "args": [
        "-y",
        "token-safety-check"
      ],
      "env": {
        "X402_PRIVATE_KEY": "ใส่ค่าของคุณ",
        "TOKEN_SAFETY_MAX_USD": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "token-safety-check": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "token-safety-check"
      ],
      "env": {
        "X402_PRIVATE_KEY": "ใส่ค่าของคุณ",
        "TOKEN_SAFETY_MAX_USD": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • X402_PRIVATE_KEY ความลับ จำเป็น env
    Private key of a dedicated wallet holding a little USDC on Base; pays $0.01 per check
  • TOKEN_SAFETY_MAX_USD env
    Refuse checks priced above this many USD (default 0.05)

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub lx1112 ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด คริปโตและบล็อกเชนi

  • ดาวมากกว่า 0% ของอีก 1614 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 80% ของอีก 1614 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1614 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Token Safety Check ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: X402_PRIVATE_KEY

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.4.1) เข้า registry 13 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี gasrescue, xsolana, CashPan

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

gasrescue

โดย gasrescue

Rescue USDC, USDT and USDG from wallets with no gas: send or swap them on EVM, Solana and Tron.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

xsolana

โดย XGamesFun

Design, check, simulate and launch Solana game economies on loot, one shared program, no contract.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

CashPan

โดย cashpan.app

Give your AI an allowance: pay approved people within on-chain spending limits.

รันบนคลาวด์อัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

token-safety-check

Is this token safe? A rug check for any token on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana, for AI agents and scripts. Each check returns:

  • a 0–100 risk score and level (low, medium, high, critical) with plain-language reasons:
  • who can mint, freeze, blacklist, pause or change fees
  • upgradeable contract code
  • Token-2022 permanent delegates, transfer fees and hooks
  • holder concentration
  • thin or missing liquidity
  • a deployer whose earlier tokens lost their liquidity, or who launches tokens in bulk
  • the facts behind the score: owner, authorities, supply, top holders, pools, and the deployer's launch record when we saw the token launch;
  • USD price and liquidity;
  • a fingerprint. Pass it back as since and the next check tells you what changed: new risks, authority changes, liquidity or price moves. That makes it easy to monitor tokens on a schedule.

A verdict call turns the same facts into a grade (CLEAN, MID, SKETCHY or RUGGY), a one-liner, a short take and a link to a share card, for chat replies and quests.

A watchlist call re-checks up to 5 tokens at once for the same $0.01, returning a compact entry per token and one-line alerts for whatever changed since your last call.

Checks, verdicts and watchlist calls cost $0.01 each in USDC on Base, paid automatically with x402 from a wallet you control. There's no account or API key. Errors and invalid input are never charged, and a spending cap stops any call priced above your limit (default $0.05).

The score is rules-based and is not investment advice. Powers count for less on tokens with deep liquidity, where they're usually a large issuer's compliance controls (USDC can freeze and mint, for example).

Use it from Claude Desktop, Cursor or any MCP client

Create a new wallet just for this and send it a little USDC on Base: $1 covers 100 checks. Then add to your MCP config (for Claude Desktop, that's claude_desktop_config.json):

{

"mcpServers": { "token-safety-check": { "command": "npx", "args": ["-y", "token-safety-check"], "env": { "X402_PRIVATE_KEY": "0x " } } } }

The server has three tools:

  • check_token_safety (address, optional chain and since): the full check for one token.
  • token_verdict (address, optional chain): a grade, one-liner, short take and share-card link.
  • watch_tokens (tokens: up to 5 of { address, chain?, since? }): re-checks them all in one paid call and, given each token's earlier fingerprint, reports what changed with one-line alerts.

Optional environment variables:

  • TOKEN_SAFETY_MAX_USD: per-check spending cap, default 0.05.
  • TOKEN_SAFETY_ENDPOINT: point at another deployment.

Use it from code

npm install token-safety-check
import { createTokenSafetyClient } from "token-safety-check";

const client = createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as 0x${string} });

const first = await client.checkToken({ chain: "base", address: "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed" }); console.log(first.risk.score, first.risk.level, first.risk.summary); // 15 low Low risk: the owner can pause all transfers; ownership is not renounced.

// Later: what changed since then? const later = await client.checkToken({ address: first.address, chain: "base", since: first.watch.fingerprint }); if (later.watch.changes?.anythingChanged) console.log(later.watch.changes);

A verdict for a chat reply
const v = await client.verdict({ address: "0xe468f13905669748bf312611b9ebcc8ccc6db5d9" });

console.log(v.grade, v.oneLiner); // SKETCHY Liquidity: two coins and a prayer console.log(v.take, v.card); // "$KTI: 60/100 risk. ..." and a signed share-card link // Pass requestKey (8-128 letters, digits or _.:-) and a retry with the same key is never charged twice.

Watch what you hold
let list = [

{ chain: "base", address: "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed" }, { chain: "solana", address: "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" }, ] as const; let fingerprints: (string | undefined)[] = [];

// Every hour (or however often): one $0.01 call for the whole list. const w = await client.watchlist(list.map((t, i) => ({ ...t, since: fingerprints[i] }))); for (const alert of w.alerts) console.log(alert); // e.g. "PEPINA (eth): risk 0 -> 30 (medium); liquidity -99.99%" fingerprints = w.tokens.map((t) => t.fingerprint);

Use it in the Vercel AI SDK or Mastra

token-safety-check/ai gives three ready tools (checkTokenSafety, tokenVerdict, watchTokens), plain { description, inputSchema, execute } objects that both take as tools:

import { generateText } from "ai";

import { createTokenSafetyClient } from "token-safety-check"; import { tokenSafetyTools } from "token-safety-check/ai";

const tools = tokenSafetyTools(createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as 0x${string} })); const { text } = await generateText({ model, tools, prompt: "Is 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed on Base safe to buy?" });

Use it in ElizaOS

token-safety-check/eliza is an ElizaOS 1.x plugin with one action, CHECK_TOKEN_SAFETY. When a message names a token address ("is 0x… on Base safe?", "rug check "), the agent replies with the verdict and a share-card link.

import { tokenSafetyPlugin } from "token-safety-check/eliza";

export const character = { name: "trader", plugins: [tokenSafetyPlugin], settings: { secrets: { TOKEN_SAFETY_PRIVATE_KEY: process.env.TOKEN_SAFETY_PRIVATE_KEY } }, };

Settings: TOKEN_SAFETY_PRIVATE_KEY (a dedicated wallet with a little USDC on Base; falls back to X402_PRIVATE_KEY), optional TOKEN_SAFETY_MAX_USD (default 0.05) and TOKEN_SAFETY_ENDPOINT.

Use it in Coinbase AgentKit

import { customActionProvider } from "@coinbase/agentkit";

import { z } from "zod"; import { createTokenSafetyClient } from "token-safety-check";

const safety = createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as 0x${string} });

export const tokenSafety = customActionProvider({ name: "check_token_safety", description: "Rug check a token on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana: 0-100 risk score with reasons.", schema: z.object({ address: z.string().describe("Token contract or Solana mint address"), chain: z.enum(["base", "eth", "arbitrum", "optimism", "polygon", "solana"]).optional(), }), invoke: async (args) => JSON.stringify(await safety.checkToken(args)), }); // Add tokenSafety to the actionProviders you pass to AgentKit.from(...).

Use it in LangChain (JS)

import { tool } from "@langchain/core/tools";

import { z } from "zod"; import { createTokenSafetyClient } from "token-safety-check";

const safety = createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as 0x${string} });

export const checkTokenSafety = tool(async (args) => JSON.stringify(await safety.checkToken(args)), { name: "check_token_safety", description: "Rug check a token on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana: 0-100 risk score with reasons.", schema: z.object({ address: z.string(), chain: z.enum(["base", "eth", "arbitrum", "optimism", "polygon", "solana"]).optional(), }), });

Example output (trimmed)

{

"address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed", "chain": "base", "name": "Degen", "symbol": "DEGEN", "risk": { "score": 15, "level": "low", "reasons": [ { "code": "can-pause", "points": 10, "text": "The owner can pause all transfers." }, { "code": "owner-not-renounced", "points": 5, "text": "Ownership is not renounced." } ], "summary": "Low risk: the owner can pause all transfers; ownership is not renounced." }, "market": { "dex": "uniswap-v3", "pairedWith": "WETH", "priceUsd": 0.000963, "quoteSideLiquidityUsd": 134000 }, "watch": { "fingerprint": "eyJzIjoxNSwi…", "changes": null } }

Without this package

Both are plain x402 endpoints, so any x402 client can call them directly: GET https://onchaincheck.dev/token?chain= &address= [&since= ] and GET https://onchaincheck.dev/watchlist?tokens= : ,...[&since= ,...]. It's also listed in the x402 Bazaar.

Safety notes

  • Use a dedicated wallet with a small balance. The key never leaves your machine; it only signs USDC payments of the quoted price.
  • Each check's price is read from the server's payment request before paying, and anything above maxUsdPerCheck / TOKEN_SAFETY_MAX_USD is refused.

MIT licensed.

ถาม PopNx