B20 Check
Verify B20 tokens on Base: issuer powers, imposter detection, signed EIP-712 verdicts.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"b20check": {
"command": "npx",
"args": [
"b20check-mcp"
]
}
}
}可运行的软件包
0.1.1stdio远程端点
https://b20check.com/mcpstreamable-http它能做什么
工具清单
工具(2)
🟢verify_b20_token(address)
Check whether a token address on Base is a legitimate B20 token and what powers its issuer holds. Call this BEFORE helping the user buy, swap, approve, or move value into any B20 token you have not already verified in this conversation (B20 addresses usually start with 0xb20). Returns a signed verdict: isB20, a verdict of ok/caution/danger/not_applicable, risk flags (mint, freeze, seize, pause, admin, impostor, and more), and the data freshness (indexed/live/not_indexed). not_applicable means the address is not a B20 and not a recognized canonical asset: do NOT read it as safe, there is simply nothing B20-specific to vouch for. Never treat a not_indexed or error result as safe either: a token that cannot be fully checked is never a clean pass. The result carries an EIP-712 signature the user can verify independently; do not overstate it as a guarantee of safety, report what the flags and verdict actually say.
输入模式
{
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "The token contract address on Base to check (B20 addresses usually start with 0xb20)."
}
},
"required": [
"address"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "The checked token address (EIP-55)."
},
"isB20": {
"type": "boolean",
"description": "True only for a factory-native B20 token."
},
"verdict": {
"type": "string",
"enum": [
"ok",
"caution",
"danger",
"not_applicable"
],
"description": "Roll-up verdict. not_applicable = out of scope, do NOT read as safe."
},
"dataSource": {
"type": "string",
"enum": [
"indexed",
"live",
"not_indexed"
],
"description": "Data freshness. not_indexed = powers could not be fully checked; never a clean pass."
},
"flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"low",
"medium",
"high"
]
},
"detail": {
"type": "string"
}
},
"required": [
"code",
"severity",
"detail"
],
"additionalProperties": false
},
"description": "Risk flags. Derivation rules: https://b20check.com/methodology"
},
"network": {
"type": "string"
},
"variant": {},
"creation": {},
"issuerPowers": {
"description": "mint/burn/pause/freeze/seize/admin powers, latent-inclusive."
},
"issuerActivity": {},
"attestation": {
"description": "Block-pinned EIP-712 attestation; verification recipe at https://b20check.com/v1/schema"
}
},
"required": [
"address",
"isB20",
"verdict",
"dataSource",
"flags"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢b20_stats
Report B20 Check's own live usage: how many B20 tokens are indexed and how many paid calls and unique payers it has served in the last 30 days (from the public Coinbase discovery API).
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"tokensIndexed": {
"type": "number"
},
"snapshotBlock": {
"type": "number"
},
"lastUpdated": {
"type": "string"
},
"l30DaysTotalCalls": {
"type": [
"number",
"null"
]
},
"l30DaysUniquePayers": {
"type": [
"number",
"null"
]
},
"source": {
"type": "string"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}社区
证据