Skip to main content
Glama
DeFadeLtd

DeFade

Official

Scan a token

get_token_scan
Read-onlyIdempotent

Assess a token's full rug-pull risk: view metadata, holder distribution, and creator history, then get a 0-100 safety score to guide buy or avoid decisions.

Instructions

Run a full DeFade scan on one token contract: token metadata, holder distribution, creator history (wallet age, previous token launches) and the headline risk verdict. Start here for any "is this token safe", "is this a rug pull" or "should I buy this" question. Returns risk.score as a SAFETY score where 100 is clean and low numbers are dangerous, with a rating label. For the inverse — a rug pull probability where high means dangerous — call get_rug_score. Not for a single module in isolation (call that module's tool directly), price or market-cap questions (get_token_price), or checking the caller's own quota (get_usage). Arguments: address and chain; one API unit on any chain.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoChain the token is deployed on: solana (default), ethereum, base, robinhood. Required for any 0x address, because the same contract address can exist on several EVM chains. Omit it for Solana. An unsupported value is rejected before any request is spent; EVM chains need a key on an All-Chains plan.solana
addressYesThe token's own contract address, exactly as an explorer shows it. Solana: the base58 mint, 32-44 characters (e.g. 6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN). EVM: 0x followed by 40 hex characters, case-insensitive (e.g. 0x6982508145454ce325ddbe47a25d4ec3d2311933). Never a pool, pair, wallet or deployer address — those come back as not found. Set `chain` to match the address: a 0x address alone cannot say which EVM chain it lives on, and a Solana mint sent with an EVM chain is rejected.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
riskNoThe SAFETY score: score (0-100, 100 is clean), rating, color, flags. Opposite direction from get_rug_score.
tokenNoToken metadata: name, symbol, mint, supply, decimals, creator, mintAuthority, freezeAuthority, marketCap, liquidity.
creatorNoDeployer wallet: address, walletAgeDays, solBalance, totalTransactions, tokenCreations, recentTokens, riskLevel.
holdersNoSame body as get_holders: totalHolders, topHolders, concentration, protocolHoldings, lockedSupply, deferredUnlock, bundles.
successNoWhether the scan completed.
poweredByNoAlways "DeFade.org".
scanCountNoHow many times DeFade has scanned this token: the lifetime figure the rug database shows when the token has a row there (scanWindow "all"), otherwise the last 24h (scanWindow "24h").
timestampNoISO time the response was assembled.
analyzedAtNoISO time of the scan itself.
scanWindowNo"all" when scanCount is the lifetime rug-database figure, "24h" when it is the last 24 hours only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.3.0
    • changedOutput schema / properties / scanCount / description
      Previous value: -"Scans of this token in the last 24h."New value: +"How many times DeFade has scanned this token: the lifetime figure the rug database shows when the token has a row there (scanWindow \"all\"), otherwise the last 24h (scanWindow \"24h\")."
    • addedOutput schema / properties / scanWindow
      Added value: +{
      +  "description": "\"all\" when scanCount is the lifetime rug-database figure, \"24h\" when it is the last 24 hours only.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed9 schema fields changedv0.2.3
    • changedOutput schema / properties / analyzedAt / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / creator / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedOutput schema / properties / holders / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedOutput schema / properties / poweredBy / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / risk / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedOutput schema / properties / scanCount / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / success / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • changedOutput schema / properties / timestamp / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / token / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
  3. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the read-only, idempotent, non-destructive profile, so the description adds meaningful context beyond them: it explains the risk.score direction (100 = clean, low = dangerous), the rating label, that it returns a safety score, and that one API unit is consumed per call. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action, then succinctly covers usage, exclusions, and argument notes. Every sentence brings distinct value, and there is minimal redundancy with the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, complete input schema, and existing output schema, the description covers all necessary selection and routing context. It explains when something, when not to use it, which sibling to use instead, and what the risk score means, leaving no important gap for a caller.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides strong parameter descriptions at 100% coverage, including address formats and chain rules. The description adds useful semantic context such as 'one API unit on any chain' and reinforces that address and chain must be paired, which slightly exceeds schema-only information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Run a full DeFade scan on one token contract' and then enumerates the exact data categories returned. It also explicitly differentiates from siblings such as get_rug_score, get_token_price, and module-specific scanners, making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says to start here for 'is this token safe', 'is this a rug pull', and 'should I buy this' questions, and explicitly directs the user to the inverse tool for rug-pull probability. It also lists concrete exclusions with alternative tools, giving agents clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.