关于 PlainText Wallet Approval Checker
PlainText 是一个 Node.js 钱包授权解释应用,面向需要理解代币和 NFT 授权或签名请求的用户。它将检查结果转述为通俗语言,并给出 SAFE、CAUTION 或 RISK 判定;当前判定基于 presign-guard。
主要功能
- 01查询代币和 NFT 授权
- 02以通俗语言解释检查结果
- 03提供 SAFE、CAUTION 或 RISK 判定
- 04无状态处理,不存储用户数据
- 05支持反馈提交
适用场景
- 01检查钱包中的代币或 NFT 授权
- 02理解签名前的授权或交易请求
- 03提交错误报告或功能建议
MCP 相关
PlainText 提供 MCP feedback 工具,供客户端提交问题、功能建议或其他反馈。文档也提及通过 presign-guard 获取判定和原因代码。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://plaintext.fizzl.eu/mcpclaude mcp add --transport http fizzl13-plaintext-wallet-checker https://plaintext.fizzl.eu/mcp{"mcpServers":{"fizzl13-plaintext-wallet-checker":{"type":"http","url":"https://plaintext.fizzl.eu/mcp"}}}在 Cursor 中打开{"servers":{"fizzl13-plaintext-wallet-checker":{"type":"http","url":"https://plaintext.fizzl.eu/mcp"}}}在 VS Code 中打开{"mcpServers":{"fizzl13-plaintext-wallet-checker":{"type":"http","url":"https://plaintext.fizzl.eu/mcp"}}}{"mcpServers":{"fizzl13-plaintext-wallet-checker":{"serverUrl":"https://plaintext.fizzl.eu/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
PlainText — 钱包授权翻译器
· 实时状态
基于 presign-guard 构建: PlainText 现在通过 presign-guard 生成判定结果(相同的检查、制裁名单、钱包年龄和签名回执);PlainText 会用通俗易懂的语言向用户解释。
POST /api/check-wallet($0.04)使用 presign-guard 的授权审计;POST /api/explain($0.03)在负载是真正的授权、交易或类型化数据签名时使用其签名前检查(其他内容仅由模型解释,source: "model")。只需要判定结果和原因代码的 Agent 可以直接调用 presign-guard($0.01–$0.02)。需要设置FIZZL_INTERNAL_KEY(两个服务使用相同的值,仅限 Render);未设置时会运行旧路径(GoPlus + Claude)。
一个小型 Node.js 应用,通过 GoPlus Security API 查询钱包的代币/NFT 授权,并让 Claude 用通俗易懂的语言解释这些授权。
▶ 观看 1 分钟介绍视频 · 在线体验:https://plaintext.fizzl.eu
项目结构
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)
反馈
发现错误或有什么遗漏?通过 POST /feedback(免费,无需付款)或 MCP 工具 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 可以是 bug、feature 或 other;必须提供 message(最多 2000 个字符);endpoint 和 contact 为可选项。响应为 202,并包含一个 ID。每位调用者每小时最多可提交 10 条报告。报告会写入使用日志,并由人工逐条查看;报告中的任何内容都不会自动运行或更改。GET /feedback 可查看架构。
1. 先在本地运行
cd plaintext-wallet
npm install
cp .env.example .env
# edit .env and paste your ANTHROPIC_API_KEY
npm start
打开 http://localhost:3000 — 可以先试试“试用示例”标签页(除 Anthropic 外无需 API 密钥),确认运行正常后,再用真实地址试试“检查钱包”。
2. 部署到 Render
选项 A — 通过 render.yaml 一键部署(Blueprint)
- 将此文件夹推送到新的 GitHub 仓库。
- 在 Render 控制面板中:New + → Blueprint → 选择你的仓库。
Render 会自动读取
render.yaml并创建 Web 服务。 - 出现提示时,填写环境变量:
ANTHROPIC_API_KEY— 必需,从 console.anthropic.com 获取GOPLUS_ACCESS_TOKEN— 可选,仅当 GoPlus 的免费 30 次/分钟额度无法满足需求时才需要(参见 console.gopluslabs.io)
- 点击 Apply — Render 会自动构建并部署。
选项 B — 手动创建 Web 服务(无需 render.yaml)
- 将此文件夹推送到 GitHub 仓库。
- Render 控制面板 → New + → Web Service → 连接你的仓库。
- 设置:
- Environment:Node
- Build Command:
npm install - Start Command:
npm start - Instance Type:Free(用于原型足够)
- 在 Environment Variables 下,添加
ANTHROPIC_API_KEY(以及可选的GOPLUS_ACCESS_TOKEN)。 - 点击 Create Web Service。构建完成后,Render 会提供一个
https://<name>.onrender.comURL。
Render 的免费套餐会在服务空闲一段时间后将其关闭 — 空闲后发出的第一个请求需要约 30–50 秒才能唤醒服务。这是正常现象,对于用于收集反馈的原型来说完全没问题。
GoPlus 集成说明
- 钱包检查会调用
token_approval_security或nft721_approval_security(地址为https://api.gopluslabs.io/api/v2/...)。相关文档有记录,但 GoPlus 文档网站使用 JS 渲染,因此在面向真实用户使用前,请先手动调用一次(例如使用curl),检查一个你控制的钱包,并将实际返回的 JSON 结构与server.js的预期进行比较——GoPlus API 版本之间的字段名称偶尔会有变化。 - GoPlus 免费套餐限制为每分钟 30 次调用——足以满足早期测试需求,但超过限制时,界面中会显示普通错误消息。
- 此应用不会在任何地方存储用户数据——每次检查都是无状态的往返调用。以后若添加账户、保存的钱包或历史记录,请相应更新本说明(以及你自己的隐私政策)。
预期费用
- Render 免费套餐:每月 $0,但会出现上述冷启动行为。若应用开始有实际使用量,付费套餐(每月 $7 的 “Starter”)可取消自动休眠。
- Anthropic API:按使用量付费,费用计入你提供的密钥账户。单次说明调用的用量很少(远低于 1K 个 Token),因此每次检查的费用不到一美分的一小部分——但如果应用广泛分享,请留意用量控制面板,因为这个原型目前尚未内置速率限制。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
