PlainText Wallet Approval Checker

Explains wallet approvals and signature requests in plain language: SAFE, CAUTION or RISK.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~714Tokens (tool definitions)
~2.2 KBTypical response size
Moderate attention impact (0.56% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "plaintext-wallet-checker": {
      "url": "https://smartcontractexplainer.onrender.com/mcp"
    }
  }
}

Remote endpoints

https://smartcontractexplainer.onrender.com/mcpstreamable-http
https://plaintext.fizzl.eu/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_wallet_approvals(address, chain, kind)

Check an EVM wallet's live token/NFT approvals and get a plain-language safety verdict (SAFE, CAUTION, or RISK) with an explanation. The verdict comes from presign-guard's approval audit (who each spender is, which to revoke).

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "EVM wallet address to check, e.g. 0x..."
    },
    "chain": {
      "description": "Chain to check approvals on (default: ethereum)",
      "type": "string",
      "enum": [
        "ethereum",
        "bsc",
        "polygon",
        "arbitrum",
        "optimism",
        "base",
        "avalanche"
      ]
    },
    "kind": {
      "description": "Approval type to check (default: token)",
      "type": "string",
      "enum": [
        "token",
        "nft"
      ]
    }
  },
  "required": [
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "description": "SAFE, CAUTION or RISK"
    },
    "explanation": {
      "type": "string",
      "description": "Plain-language explanation of what the approval or payload allows"
    }
  },
  "required": [
    "verdict",
    "explanation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢explain_approval(data)

Explain an arbitrary approval/permission JSON payload in plain language, when you already have the data instead of needing an on-chain lookup.

Input Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Arbitrary approval/permission JSON payload to explain"
    }
  },
  "required": [
    "data"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "description": "SAFE, CAUTION or RISK"
    },
    "explanation": {
      "type": "string",
      "description": "Plain-language explanation of what the approval or payload allows"
    }
  },
  "required": [
    "verdict",
    "explanation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
⚪feedback(type, message, endpoint, contact)

Report a bug, a missing feature or anything else about this service, in a structured way. Free. A person reads every report; nothing is run or changed automatically.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "description": "bug, feature (something missing) or other",
      "type": "string",
      "enum": [
        "bug",
        "feature",
        "other"
      ]
    },
    "message": {
      "type": "string",
      "description": "What happened or what you need"
    },
    "endpoint": {
      "description": "Optional: the route or tool it is about, e.g. /v1/token",
      "type": "string"
    },
    "contact": {
      "description": "Optional: how to reach you about it",
      "type": "string"
    }
  },
  "required": [
    "message"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "received": {
      "type": "boolean",
      "description": "true: a person will read it"
    },
    "id": {
      "type": "string",
      "description": "Report id, to refer to it later"
    },
    "service": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "received",
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
failed observationversion not recorded—
failed observationversion not recorded—
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools
verifiedversion not recorded2 tools
verifiedversion not recorded2 tools