PlainText Wallet Approval Checker

Official registry Finance and payments

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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http plaintext-wallet-approval-checker 'https://plaintext.fizzl.eu/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "plaintext-wallet-approval-checker": {
            "type": "http",
            "url": "https://plaintext.fizzl.eu/mcp"
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. PlainText — wallet approval translator
  2. Project structure
  3. Feedback
  4. 1. Run it locally first
  5. 2. Deploy to Render
  6. Notes on the GoPlus integration
  7. Costs to expect

PlainText — wallet approval translator

· Live status

Built on presign-guard: PlainText's verdicts now come from presign-guard (the same checks, sanctions list, wallet age and signed receipt); PlainText adds the explanation in plain language for people. POST /api/check-wallet ($0.04) uses presign-guard's approval audit, POST /api/explain ($0.03) its pre-sign check when the payload is a real approval, transaction or typed-data signature (anything else is explained by the model alone, source: "model"). Agents that only need the verdict and reason codes can call presign-guard directly ($0.01–$0.02). Needs FIZZL_INTERNAL_KEY (the same value on both services, Render only); without it the old path (GoPlus + Claude) runs.

A small Node.js app that looks up a wallet's token/NFT approvals via the GoPlus Security API and asks Claude to explain them in plain language.

▶ Watch the 1-minute explainer · Live: https://plaintext.fizzl.eu

Project structure

plaintext-wallet/
├── server.js          Express backend (GoPlus + Anthropic calls)
├── media.js           Serves the explainer video from the explainer-video branch
├── feedback.js        POST /feedback and the MCP tool feedback (same file in every Fizzl service)
├── media/explainer/   Script and pipeline for the explainer video
├── package.json
├── render.yaml         Render deploy config (optional, see below)
├── .env.example         Copy to .env for local dev
└── public/
    └── index.html      Frontend (wallet check + demo scenarios)

Feedback

Found a bug, or missing something? Send it with POST /feedback (free, no payment) or the MCP tool feedback:

curl -X POST https://plaintext.fizzl.eu/feedback \
  -H 'content-type: application/json' \
  -d '{"type": "feature", "message": "Support Solana wallets", "endpoint": "/api/check-wallet"}'

type is bug, feature or other; message is required (up to 2000 characters); endpoint and contact are optional. The answer is 202 with an id. At most 10 reports per hour per caller. Reports go to the usage log, and a person reads every one; nothing in a report is run or changed automatically. GET /feedback shows the schema.

1. Run it locally first

cd plaintext-wallet
npm install
cp .env.example .env
# edit .env and paste your ANTHROPIC_API_KEY
npm start

Open http://localhost:3000 — try the "Try a sample" tab first (no API keys needed besides Anthropic), then "Check a wallet" with a real address once you're happy it works.

2. Deploy to Render

Option A — one-click via render.yaml (Blueprint)

  1. Push this folder to a new GitHub repo.
  2. In the Render dashboard: New + → Blueprint → select your repo. Render reads render.yaml automatically and creates the web service.
  3. When prompted, fill in the environment variables:
    • ANTHROPIC_API_KEY — required, from console.anthropic.com
    • GOPLUS_ACCESS_TOKEN — optional, only needed if you outgrow GoPlus's free 30 calls/minute limit (see console.gopluslabs.io)
  4. Click Apply — Render builds and deploys automatically.

Option B — manual web service (no render.yaml needed)

  1. Push this folder to a GitHub repo.
  2. Render dashboard → New + → Web Service → connect your repo.
  3. Settings:
    • Environment: Node
    • Build Command: npm install
    • Start Command: npm start
    • Instance Type: Free (fine for a prototype)
  4. Under Environment Variables, add ANTHROPIC_API_KEY (and optionally GOPLUS_ACCESS_TOKEN).
  5. Click Create Web Service. Render gives you a https://<name>.onrender.com URL once the build finishes.

Render's free tier spins the service down after inactivity — the first request after idling will take ~30-50 seconds to wake up. That's normal and fine for a prototype you're sharing for feedback.

Notes on the GoPlus integration

  • The wallet check calls token_approval_security or nft721_approval_security under https://api.gopluslabs.io/api/v2/.... This is documented but the GoPlus docs site is JS-rendered, so before you rely on this in front of real users, do one manual test call (e.g. with curl) against a wallet you control, and compare the actual JSON shape to what server.js expects — field names occasionally shift between GoPlus API versions.
  • The free GoPlus tier is capped at 30 calls/minute — plenty for early testing, but rate-limit errors will surface as a plain error message in the UI if you exceed it.
  • No user data is stored anywhere in this app — every check is a stateless round trip. If you later add accounts, saved wallets, or history, update this note (and your own privacy policy) accordingly.

Costs to expect

  • Render free tier: $0/month, with the cold-start behavior above. A paid tier ($7/month "Starter") removes the spin-down if this gets real usage.
  • Anthropic API: pay-per-use, billed to whatever key you provide. A single explanation call is small (well under 1K tokens), so cost per check will be a fraction of a cent — but keep an eye on your usage dashboard if this gets shared widely, since there's no rate limiting built into this prototype yet.

Frequently asked questions

What is PlainText Wallet Approval Checker?

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

How do I install PlainText Wallet Approval Checker?

It runs as a remote server. In Claude Code: claude mcp add --transport http plaintext-wallet-approval-checker 'https://plaintext.fizzl.eu/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does PlainText Wallet Approval Checker need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is PlainText Wallet Approval Checker open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains PlainText Wallet Approval Checker?

It is published by Fizzl13. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.