关于 gate-info-riskcheck
gate-info-riskcheck 是用于评估代币或合约地址风险的技能,面向需要安全检查的用户。它聚合多项风险检测、税费分析和持仓集中度信息;在存在主 CLI 技能时会转交处理。
主要功能
- 01聚合 30 多项风险检测
- 02分析税费与持仓集中度
- 03检查代币及地址风险
- 04可路由至主 CLI 技能
- 05只读查询 Gate Info 数据
适用场景
- 01检查代币是否存在安全风险
- 02评估合约地址风险
- 03生成结构化风险评估
MCP 相关
在兼容模式下,它使用 Gate-Info MCP 服务进行只读查询,包括代币信息、合规风险、代币安全和地址信息工具;如果路由到主 CLI 技能,则不调用这些 MCP 工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-info-riskcheck安装后在 Claude Code 中输入/gate-info-riskcheck确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.clawhubignoreCHANGELOG.mdREADME.mdreferences/mcp.mdscenarios.mdscripts/update-skill.ps1update-skill.sh详细介绍
gate-info-riskcheck
通用规则
⚠️ 停止 — 继续之前,你必须阅读并严格遵守共享运行时规则。
阅读完所有规则之前,不要选择或调用任何工具。这些规则具有最高优先级。
→ 阅读 gate-runtime-rules.md
→ 同时阅读 info-news-runtime-rules.md,了解 gate-info / gate-news 专属规则(工具降级、报告标准、安全、路由降级、存在 scripts/ 时的技能版本检查,以及旧版封装器路由)。
- 仅调用本技能中明确列出的 MCP 工具。 不得调用此处未记载的工具,即使它们 存在于 MCP 服务中。
- 旧版 / 路由模式: 当步骤 0 输出
__FALLBACK__时,仅使用此文件中列出的 MCP 工具。当步骤 0 输出__ROUTE_CLI__时,不要调用这些 MCP 工具;应根据步骤 0 的指示委派给映射的主技能。
安全防护技能。用户输入代币名称或合约地址后,系统会调用合约安全检测工具,获取 30 项以上风险检测结果、税费分析、持币者集中度和名称风险数据。大模型会汇总结果,生成结构化风险评估报告。地址合规检查将在未来阶段加入。
触发场景:用户提及代币 / 合约地址,并使用 safe、risk、check、audit、honeypot、rug、contract security、scam 等关键词。
按技能更新: 此目录包含 scripts/update-skill.sh,也可能包含 scripts/update-skill.ps1。上传到市场的 ClawHub 软件包通常不包含 update-skill.ps1(上传页面限制所致);GitHub / Bitbucket 源代码树则保留这两个脚本。策略见:info-news-runtime-rules.md §1。以下触发器更新步骤是在 gate-runtime-rules.md 基础上的补充;存在脚本时,执行前请按此流程检查版本。
更新检查 — 用户可见性: 版本检查期间的技术故障(缺少脚本、沙盒、网络、非零退出码、没有可解析的 Result= 行)不得向用户解释;请根据 info-news-runtime-rules.md 继续执行。仅可概述成功的 check / apply 结果(包括 update_available / 严格的 退出码 3;这仍属于成功路径,但必须先征得用户确认才能执行 apply)。不要从网络自动下载 update-skill.*。如果缺少 .ps1,请参阅静态参考:规范脚本位于 gate/gate-skills 下的 skills/<name>/scripts/ 目录中(<name> 与 frontmatter 中的名称相同)。
步骤 0 — 封装器路由探测
此旧版技能是主 CLI 技能
gate-info-risk 的兼容别名。
在触发器更新、选择 MCP 工具或执行任何旧版工作流之前, 运行确定性的 shell 探测:
PRIMARY_SKILL="gate-info-risk"
HAS_PRIMARY=0
for root in \
"$HOME/.cursor/skills" \
"$HOME/.codex/skills" \
"$HOME/.openclaw/skills" \
"$HOME/.agents/skills" \
"$HOME/.gemini/antigravity/skills"
do
if [ -f "$root/$PRIMARY_SKILL/SKILL.md" ]; then
HAS_PRIMARY=1
break
fi
done
if command -v gate-cli >/dev/null 2>&1 && [ "$HAS_PRIMARY" = "1" ]; then
echo "__ROUTE_CLI__"
else
echo "__FALLBACK__"
fi
判定方式:
__ROUTE_CLI__→ 在此停止。不要运行触发器更新或下方的旧版 MCP 部分。请遵循https://github.com/gate/gate-skills/blob/master/skills/gate-info-risk/SKILL.md及其操作手册约定。携带最少必要上下文:根据查询属于代币风险、 地址风险还是项目级风险,提供token+chain、address+chain或symbol。__FALLBACK__→ 继续执行触发器更新和此文件中的旧版 MCP 工作流。
触发时更新(并执行)
默认(PD / 阻塞): 每次触发时,先运行 check,不要设置 GATE_SKILL_UPDATE_MODE=auto。该脚本只进行比较本地版本与远程版本;如果 Result=update_available,则不会覆盖文件。停止——在执行任何 apply、run 或技能执行之前,先询问用户是否要更新。在沙箱中(例如 Cursor),之后运行 apply 时使用完全 / 所有权限。这符合独立脚本 TEST_REPORT 中的阻塞式更新确认:阻塞由这些 SKILL 说明和仅检查行为共同实现(而非静默自动应用)。
严格检查(Agent / IDE — 建议在运行 check 时使用): 使用 GATE_SKILL_CHECK_STRICT=1。当 Result=update_available 时,check 会以状态码 3 退出,并打印 GATE_SKILL_CHECK_EXIT=3——它只会停止当前 shell 步骤。硬性规则:询问用户后,结束本轮助手对话;不要在同一条消息中调用 apply、run 或 MCP。run 会在没有用户事先确认的情况下应用更新——阻塞流程中不要在聊天中使用 run;请使用 check → 用户确认 → apply。
步骤 1 — 检查
安装根目录: check / apply 会读取 $DEST/SKILL.md。常见的 $SKILL_ROOT:$HOME/.cursor/skills/<name>/、$HOME/.codex/skills/<name>/、$HOME/.openclaw/skills/<name>/、$HOME/.agents/skills/<name>/、$HOME/.gemini/antigravity/skills/<name>/。单参数模式:当 SKILL.md 存在时,脚本会按此顺序解析 DEST;否则 DEST 为 scripts/../。仅工作区目录树需要使用双参数 check / apply,并显式指定 DEST。
Agent 选择规则(下面带围栏的示例最多运行一个;根据操作系统和 $SKILL_ROOT/scripts/ 下的文件进行选择):
- **macOS / Linux / WSL / Git Bash:**如果存在
update-skill.sh→ 仅使用 Bash 示例。 - **Windows(原生 PowerShell):**如果存在
update-skill.ps1→ 仅使用 PowerShell 示例。 - Windows(没有
.ps1)(典型的 ClawHub 安装):如果只有update-skill.sh→ 尝试使用 WSL 或 Git Bash(bash),并采用与 Bash 示例相同的命令格式。如果 bash 不可用或执行失败 → 静默跳过步骤 1(不要向用户显示脚本 stderr 或“版本检查失败”消息);继续执行技能。 - **两个脚本都不存在:**静默跳过步骤 1;继续执行技能。不要臆造
GATE_SKILL_CONFIRM_TOKEN,也不要运行apply/revoke-pending。
Bash(阻塞式——不自动更新;Cursor 示例):
GATE_SKILL_CHECK_STRICT=1 bash "$HOME/.cursor/skills/gate-info-riskcheck/scripts/update-skill.sh" check "gate-info-riskcheck"
PowerShell:
$env:GATE_SKILL_CHECK_STRICT = '1'
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.cursor\skills\gate-info-riskcheck\scripts\update-skill.ps1" check "gate-info-riskcheck"
结果含义:skipped = 不执行任何操作。update_available = 远程版本较新;采用阻塞流程时,未经用户同意不得应用更新。check_failed = 无法进行比较——根据 info-news-runtime-rules.md 使用当前版本继续;不要向用户透露检查失败的技术细节。
Agent 解析(stdout):GATE_SKILL_UPDATE_AGENT_ACTION=…。BLOCK_UNTIL_USER_CONFIRMS_UPDATE → 在执行技能前进行步骤 2。CONTINUE_SKILL_EXECUTION → 检查脚本不会阻止执行技能。
步骤 2 — 确认或拒绝(阻塞)
运行环境: 步骤 2 使用与步骤 1 相同的 shell 类型(Bash 或 PowerShell)。如果跳过步骤 1,则不要运行 apply 或 revoke-pending。
如果为 update_available:
-
停止——此时不要继续执行。
-
告知用户(例如,有新版本可用;如有帮助,可进行概述)。
-
等待用户回复——此步骤会阻塞。
硬性规则(Cursor / Agent): 当
check报告update_available、BLOCK_UNTIL_USER_CONFIRMS_UPDATE或严格模式下的exit 3时,结束本轮回复并提出确认请求。只有在用户的下一条消息中,才运行apply(如果用户同意)或revoke-pending(如果用户拒绝)。此流程中,不要在运行check的同一轮中接着运行apply。- 用户同意 → 在需要时,使用严格模式
check的标准输出中的GATE_SKILL_CONFIRM_TOKEN运行apply,然后执行。 - 用户拒绝 → 运行
revoke-pending,然后基于当前安装执行。
- 用户同意 → 在需要时,使用严格模式
两步门控(严格模式 check): 在 GATE_SKILL_CONFIRM_TOKEN 与 .gate-skill-apply-token 匹配之前,apply / run(未设置 GATE_SKILL_UPDATE_MODE=auto)会失败。用户拒绝时 → revoke-pending。
GATE_SKILL_CONFIRM_TOKEN="<paste from check stdout>" bash "$HOME/.cursor/skills/gate-info-riskcheck/scripts/update-skill.sh" apply "gate-info-riskcheck"
bash "$HOME/.cursor/skills/gate-info-riskcheck/scripts/update-skill.sh" revoke-pending "gate-info-riskcheck"
$env:GATE_SKILL_CONFIRM_TOKEN = '<paste from check stdout>'
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.cursor\skills\gate-info-riskcheck\scripts\update-skill.ps1" apply "gate-info-riskcheck"
powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.cursor\skills\gate-info-riskcheck\scripts\update-skill.ps1" revoke-pending "gate-info-riskcheck"
如果步骤 1 未采用严格模式(没有待处理令牌):允许在不提供 GATE_SKILL_CONFIRM_TOKEN 的情况下运行 apply。
**如果为 skipped 或 check_failed:**不执行更新步骤;继续执行。
可选 — GATE_SKILL_UPDATE_MODE=auto
仅用于 CI / 无人值守自动化:在 check 时设置 GATE_SKILL_UPDATE_MODE=auto,会使脚本在远程版本较新时立即应用更新——无需用户确认,且与阻塞式更新确认测试不兼容。复现阻塞式 PD 流程时,不要在 check 时使用 auto。
参数
- name:上方 Frontmatter 中的
name;必须与 gate-skills 中的skills/<name>/匹配。 - 调用方式:使用
$SKILL_ROOT/scripts/update-skill.sh(或.ps1),其中$SKILL_ROOT/SKILL.md是此技能所在位置——例如~/.cursor/skills/<name>、~/.codex/skills/<name>、~/.openclaw/skills/<name>、~/.agents/skills/<name>、~/.gemini/antigravity/skills/<name>;不要将~/.cursor(或任何不包含skills/<name>/SKILL.md的宿主根目录)视为安装目录。传入一个参数时,脚本会按上述顺序解析$SKILL_ROOT,之后才回退到脚本所在目录;工作区安装需要显式指定DEST。两个参数的check/apply/revoke-pending:规范顺序是先传绝对路径DEST(技能根目录),再传name;当只有一个规范化路径包含SKILL.md时,update-skill.sh/update-skill.ps1会自动交换参数顺序(例如 Agent 先传name,再传路径)。 - **ClawHub 与完整目录树:**未包含
update-skill.ps1的安装可从 gate/gate-skills 的skills/<name>/scripts/中复制该文件(仅限手动操作;Agent 不得自动下载)。
除调试外,不要将原始脚本日志输出到面向用户的回复中。严格模式下,若 check 以退出码 3 结束,在步骤 2 解决前不要执行。若为 check_failed 或 apply 失败,仍应在运行环境规则允许时执行。
MCP 依赖项
仅适用于旧版路径——当步骤 0 输出 __FALLBACK__ 时适用。
必需的 MCP 服务
| MCP 服务 | 状态 |
|---|---|
| Gate-Info | ✅ 必需 |
使用的 MCP 工具
查询操作(只读)
- info_coin_get_coin_info
- info_compliance_check_address_risk
- info_compliance_check_token_security
- info_onchain_get_address_info
身份验证
- 需要 API Key:否
- 凭证来源:无;此技能仅使用只读的 Gate Info / Gate News MCP 访问权限。
安装检查
- 必需:Gate-Info
- 安装:继续之前,请使用适用于当前主机 IDE 的本地 Gate MCP 安装流程。
- 仅当所需的 Gate MCP 服务在当前环境中可用后,才继续。
路由规则
仅限旧版路径 — 当 Step 0 输出 __ROUTE_CLI__ 时,路由由
gate-info-risk 负责。
| 用户意图 | 关键词/模式 | 操作 |
|---|---|---|
| 代币合约安全检查 | "这个代币安全吗" "PEPE 合约有什么风险吗" "检查 0x... 合约" | 执行此 Skill(代币安全模式) |
| 地址风险检查 | "这个地址安全吗" "这个地址是否在黑名单中" | 执行此 Skill(地址风险模式 — 当前功能降级) |
| 单个代币分析 | "帮我分析 SOL" | 路由至 gate-info-coinanalysis |
| 地址追踪 | "追踪这个地址" "资金流向" | 路由至 gate-info-addresstracker |
| 代币链上分析 | "链上筹码分布" | 路由至 gate-info-tokenonchain |
| 项目尽职调查 | "这个项目靠谱吗" "团队背景" | 路由至 gate-info-coinanalysis(侧重基本面) |
执行工作流
仅限旧版路径 — 当 Step 0 输出 __FALLBACK__ 时,本节适用。
Step 0:多维度意图检查
执行此 Skill 前,检查用户的查询是否涉及多个分析维度:
- 如果查询涉及地址安全(例如,“这个地址安全吗”“检查 0x...”),请使用此 Skill(模式 B)——地址风险检查仅由此 Skill 提供,
gate-info-research不涵盖此功能。 - 如果查询仅涉及代币/合约安全,没有其他维度,请使用此 Skill(模式 A)。
- 如果查询还涉及基本面、技术面、新闻、情绪、比较或任何其他安全之外的分析维度,请路由至
gate-info-research——它可通过统一的工具去重和连贯的报告汇总处理多维度查询。
模式 A:代币安全检查(核心模式 — 已就绪)
Step 1:意图识别与参数提取
从用户输入中提取:
token:代币符号(例如,PEPE、SHIB)——与address互斥address:合约地址(例如,0x...)——与token互斥chain:链名称(eth / bsc / solana / base / arb 等)——必需
参数补全策略:
- 如果用户只提供代币而未提供链:询问“请指定链(例如,eth、bsc、solana)”
- 如果用户提供了合约地址但未提供链:尝试根据地址格式推断(0x 前缀可能表示 EVM 链,但仍需确认具体链)
- 如果用户询问主流币(BTC、ETH):告知他们“主流币通常没有合约安全风险。如需检查,请指定特定链上的包装代币或 Meme 代币”
Step 2:并行调用 2 个 MCP 工具
| 步骤 | MCP 工具 | 参数 | 获取的数据 | 并行 |
|---|---|---|---|---|
| 1a | info_compliance_check_token_security | token={token} or address={address}, chain={chain}, scope="full", lang="en" | 风险级别、30 多项风险项、税费分析、持有者集中度、名称风险、蜜罐检测、开源状态 | 是 |
| 1b | info_coin_get_coin_info | query={token or symbol} | 代币基本信息(项目名称、所属领域、上线交易所 — 补充背景) | 是 |
两个工具并行调用,彼此没有依赖关系。
Step 3:LLM 汇总 — 生成风险报告
将安全检测数据和基本面信息传递给 LLM,使用下方模板生成评估报告。
模式 B:地址风险检查(降级模式)
info_compliance_check_address_risk尚未推出(P3 阶段)。目前只有info_onchain_get_address_info可以提供基本地址信息。
| 步骤 | MCP 工具 | 参数 | 获取的数据 | 状态 |
|---|---|---|---|---|
| 1 | info_onchain_get_address_info | address={address}, chain={chain} | 基本地址信息、余额、交易数量 | ✅ 可用 |
| 2 | info_compliance_check_address_risk | — | 地址合规风险标签 | ❌ 尚未就绪 |
降级处理:告知用户:“地址合规风险检测正在开发中。目前仅提供基本地址信息。如需检查代币合约安全性,请提供代币名称或合约地址。”
报告模板(代币安全模式)
仅适用于旧版路径 — 当步骤 0 输出 __FALLBACK__ 时,本节才适用。
## {token} Contract Security Report
### 1. Risk Overview
| Metric | Result |
|--------|--------|
| Chain | {chain} |
| Contract Address | {address} |
| Overall Risk Level | {risk_level_text} ({highest_risk_level}) |
| High-Risk Items | {high_risk_num} |
| Medium-Risk Items | {middle_risk_num} |
| Low-Risk Items | {low_risk_num} |
| Honeypot Detected | {is_honeypot ? "⛔ Yes" : "✅ No"} |
| Open Source | {is_open_source ? "✅ Yes" : "⚠️ No"} |
### 2. High-Risk Item Details
{If high-risk items exist, list each:}
| Risk Item | Description | Value |
|-----------|------------|-------|
| {risk_name_1} | {risk_desc_1} | {risk_value_1} |
| {risk_name_2} | {risk_desc_2} | {risk_value_2} |
| ... | ... | ... |
{If no high-risk items: "✅ No high-risk items detected"}
### 3. Tax Analysis
| Metric | Value | Status |
|--------|-------|--------|
| Buy Tax | {buy_tax}% | {Normal/Elevated/Extreme} |
| Sell Tax | {sell_tax}% | {Normal/Elevated/Extreme} |
| Transfer Tax | {transfer_tax}% | {Normal/Elevated/Extreme} |
{If multiple DEX pools have different tax rates, list the major pool breakdowns}
### 4. Holder Concentration
| Metric | Value | Status |
|--------|-------|--------|
| Holder Count | {holder_count} | {Many/Normal/Low} |
| Top 10 Holder % | {top10_percent}% | {Normal/High/Extremely Concentrated} |
| Top 100 Holder % | {top100_percent}% | — |
| Developer Holdings | {dev_holding_percent}% | {Normal/High} |
| Insider Holdings | {insider_percent}% | {Normal/High} |
| Largest Single Holder | {max_holder_percent}% | {Normal/High} |
### 5. Name Risk
| Metric | Result |
|--------|--------|
| Domain Token | {is_domain_token ? "⚠️ Yes" : "✅ No"} |
| Contains Sensitive Words | {is_sensitive ? "⚠️ Yes" : "✅ No"} |
| Sensitive Words | {sensitive_words} |
### 6. Project Basic Info (Supplementary)
| Metric | Value |
|--------|-------|
| Project Name | {project_name} |
| Sector | {category} |
| Listed on Major Exchanges | {exchange_list} |
### 7. Overall Assessment
{LLM generates a 3-5 sentence comprehensive risk assessment:}
- Overall contract safety level
- Most critical risk items (if any)
- Whether holder concentration is healthy
- Whether tax rates are reasonable
- Whether further manual audit is recommended
### ⚠️ Risk Warnings
{Auto-generated explicit warnings based on detection results:}
- Honeypot detection (if applicable)
- High tax warning (if applicable)
- Excessive holder concentration (if applicable)
- Contract not open-source (if applicable)
> The above analysis is based on automated on-chain data detection and cannot cover all risk scenarios. Please combine with project due diligence and community research for comprehensive judgment.
决策逻辑
| 条件 | 评估 |
|---|---|
is_honeypot == true | 最高级别警告:“⛔ 检测为蜜罐合约 — 极有可能无法卖出。请勿购买。” |
is_open_source == false | 标记“合约未开源 — 无法审计代码逻辑,风险较高” |
buy_tax > 5% 或 sell_tax > 5% | 标记“税率异常高 — 交易成本极高” |
buy_tax > 10% 或 sell_tax > 10% | 标记“⛔ 税率极高 — 疑似恶意合约” |
top10_percent > 50% | 标记“持仓高度集中 — 存在内部人士/巨鲸抛售风险” |
top10_percent > 80% | 标记“⛔ 持仓极度集中 — 抛售风险极高” |
dev_holding_percent > 10% | 标记“开发者持仓偏高 — 留意抛售风险” |
holder_count < 100 | 标记“持有者极少 — 流动性和去中心化程度不足” |
high_risk_num > 0 | 列出每项高风险内容及其说明 |
high_risk_num == 0 && middle_risk_num <= 2 | 标记“合约安全检查通过 — 未发现重大风险” |
is_domain_token == true | 标记“这是域名代币 — 与同名项目无关。请仔细核实。” |
is_sensitive == true | 标记“代币名称包含敏感词 — 可能存在冒充/欺诈风险” |
| 任一工具返回空结果/错误 | 跳过该部分;在报告中注明“数据不可用” |
风险等级映射
highest_risk_level 的值 | 风险等级 | 标签 | 说明 |
|---|---|---|---|
| 0 | 安全 | ✅ 安全 | 未检测到风险项 |
| 1 | 低风险 | 低风险 | 仅存在低风险项 |
| 2 | 中风险 | 中风险 | 存在中风险项 — 请留意 |
| 3 | 高风险 | 高风险 | 存在高风险项 — 请格外谨慎 |
| is_honeypot=true | 严重风险 | ⛔ 严重风险 | 蜜罐合约 — 强烈建议远离 |
错误处理
| 错误类型 | 处理方式 |
|---|---|
| 缺少 chain 参数 | 提示用户:“请指定链(例如 eth、bsc、solana、base、arb)” |
| 未提供代币或地址 | 提示用户:“请提供代币代码或合约地址” |
| 合约地址不存在/无法识别 | 提示用户核实地址并确认链 |
| 代币是主流币(BTC/ETH 等) | 告知用户:“主流币通常不存在合约安全风险。如需检查合约代币,请指定特定链上的封装代币或 Meme 代币” |
| check_token_security 超时/错误 | 返回错误消息;建议稍后重试 |
| 地址风险查询(目前不可用) | 告知用户:“地址合规检测正在开发中。”引导用户使用 gate-info-addresstracker 获取基本地址信息 |
| 用户误将普通地址当作合约输入 | 尝试检测;如果结果为空,则告知用户“这可能不是合约地址。如需查询地址信息,请使用 Address Tracker 功能” |
跨技能路由
| 用户后续意图 | 路由至 |
|---|---|
| “帮我分析一下这枚币” | gate-info-coinanalysis |
| “链上筹码分布情况如何?” | gate-info-tokenonchain |
| “最近有什么新闻?” | gate-news-briefing |
| “追踪这个地址” | gate-info-addresstracker |
| “把它和 XX 比较一下” | gate-info-coincompare |
| “这枚币的价格走势如何?” | gate-info-trendanalysis |
可用工具与降级说明
| PRD 定义的工具 | 实际可用工具 | 状态 | 降级策略 |
|---|---|---|---|
info_compliance_check_token_security | info_compliance_check_token_security | ✅ 已就绪 | — |
info_coin_get_coin_info | info_coin_get_coin_info | ✅ 已就绪 | — |
info_onchain_get_address_info | info_onchain_get_address_info | ✅ 已就绪 | 地址模式可获取基本信息 |
info_compliance_check_address_risk | — | ❌ 未就绪(P3) | 地址合规风险检测不可用——告知用户并引导其使用地址追踪工具 |
安全规则
- 必须警告蜜罐风险:检测到
is_honeypot=true时,必须在最醒目的位置显示“⛔ 严重风险”警告,绝不可淡化 - 不提供投资建议:风险评估基于链上数据,必须附带“非投资建议”免责声明
- 不保证绝对安全:即使所有检查均通过,也要说明“自动检测无法覆盖所有风险”
- 数据透明:标注检测数据来源和时间戳
- 标明缺失数据:任何维度缺少数据时,都必须明确告知用户,绝不可捏造安全结论
- 地址隐私:不要主动披露地址持有人身份——仅展示公开可查的链上数据