关于 Coin Scout
Coin Scout 是只读的 Solana 取证 MCP 服务,用于钱包与代币分析、欺诈调查和资金追踪。它结合基于 Helius 的数据工具、本地可复用案件文件和带证据的报告。
主要功能
- 01分析钱包并筛查代币风险
- 02跨多跳及桥接追踪资金流
- 03检测洗量交易与钱包集群
- 04计算钱包盈亏并查找交易对手
- 05保存调查并导出报告
- 06只读 RPC 与 DAS 访问
适用场景
- 01追踪与疑似盗窃有关的资金
- 02评估代币风险和可疑交易
- 03比较钱包以判断是否可能由同一方控制
- 04将调查结果保存为案件报告
MCP 相关
通过 stdio 或 Streamable HTTP 向 MCP 客户端提供 Solana 分析、数据访问和案件管理工具。服务为只读,并使用 Helius 获取区块链数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
为你的 AI Agent 配备 Solana 取证实验室。
直接通过与 Claude 或任何 MCP 客户端的对话,跨多个跳转和桥追踪被盗资金、揭露由同一操作者控制的钱包集群,并筛查代币的跑路风险。只读,由 Helius 提供支持。
数据来自 2026 年 11 月 5 日对 BONK 执行的真实 analyze_token 调用。
- 追踪资金流向。
trace_funds最多向前或向后追踪 5 跳,按资金转移时的汇率以 USD 计算每笔转账金额,并在遇到 Wormhole、deBridge、Mayan 和 Circle CCTP 跨链转账时停止,告知你资金最终到达的链和地址。启用followEvm后,它会继续追踪 EVM 侧的资金流向。 - 识别资金流向的另一端。 内置 16,050 个 OKX 钱包,每个钱包都经过 OKX 自有的储备证明签名消息验证。追踪会在交易所钱包处停止,并将其之前的地址标记为可能的充值地址,让你知道该联系哪家交易所。
- 发现虚假交易量。
detect_wash_trading直接读取代币池中的交易,并标记自买自卖的钱包、同一时隙内的往返交易,以及由同一个钱包资助的机器人群组。 - 查找操作者。
find_cluster会分析手续费支付方、共同签名者、租金接收地址、共同资助方和同一时隙内的活动,找出由同一操作者控制的钱包,并提供每个关联背后的签名证据。 - 买入前进行筛查。
analyze_token会检查铸造权限和冻结权限、元数据是否可变以及持有者集中度,并区分流动性池和其他由程序控制的持有者与真正的大户。 - 查看获利者。
wallet_pnl会按照每笔兑换发生时的价格计算收益,并标记钱包卖出但从未买入过的代币。 - 整理证据。 将追踪结果和集群保存到案件文件,为地址添加带有置信度和证据的标签,并导出包含 SVG 资金流向图的 Markdown 报告。
- 无法动用你的资金。 不需要密钥,也不会签名。原始 RPC 工具只转发只读方法,因此
sendTransaction、requestAirdrop等方法永远不会触达网络。它唯一会写入的内容是本地案件文件。
试着这样提问:
- “分析钱包
<address>:谁资助了它?资金去了哪里?有没有可疑之处?” - “
<mint>有跑路风险吗?实际持有这些代币的都是谁?” - “追踪从
<address>流出的资金,跳数设为 3,将结果保存到案件exchange-hack,然后导出报告。” - “这四个钱包是同一个人的吗?”
- “
<wallet>有没有从<mint>获利?谁免费给它转过代币?” - “
<mint>的交易量真实吗?还是机器人在自买自卖?”
安装
你需要一个 Helius API 密钥(免费套餐即可)和 Node.js 22.19 或更高版本。coin-scout 通过 stdio 和 Streamable HTTP 支持 2026-07-28 版 MCP 修订,同时仍为 2025 年版客户端提供服务,并已列入官方 MCP Registry,注册名称为 io.github.dennisyilmaz/coin-scout。
Claude Desktop 和其他 MCPB 客户端
用客户端打开下载的 coin-scout.mcpb,并在提示时粘贴 Helius API 密钥。密钥由客户端保存,不会存放在安装包中。
Claude Code
curl -LO https://github.com/dennisyilmaz/coin-scout/releases/latest/download/coin-scout.mjs
node coin-scout.mjs
这个单文件就是完整的服务。交互式运行时,它会提示你输入 Helius 密钥,将自身复制到 ~/.coin-scout/,并在用户级别通过 claude mcp add 注册自身。重启 Claude Code 后即可使用这些工具。
任何 MCP 客户端,使用源码安装
git clone https://github.com/dennisyilmaz/coin-scout.git && cd coin-scout
npm ci && npm run build
{
"mcpServers": {
"coin-scout": {
"command": "node",
"args": ["/absolute/path/to/coin-scout/build/index.js"],
"env": { "HELIUS_API_KEY": "your-key" }
}
}
}
若要使用 Streamable HTTP 而不是 stdio,请运行 node build/http.js。它仅绑定到 127.0.0.1:8787,拒绝外部 Host 标头,并通过 GET /health 提供传输指标。
验证下载文件
每个版本都在 GitHub Actions 中构建,并附有已签名的构建来源证明、SHA256SUMS 文件和 CycloneDX SBOM(coin-scout.cdx.json)。
gh attestation verify coin-scout.mjs --repo dennisyilmaz/coin-scout
工作原理
Helius 按 RPC 调用次数计费并进行速率限制,而不是按 HTTP 请求计费,因此原始并行调用只会让你遇到 429 错误。传输层围绕这一点构建:
- JSON-RPC 微批处理。 在 4 ms 时间窗口内发出的调用会合并为一个 HTTP 请求。在 50 个
getTransaction调用的扇出测试中测得:HTTP 请求从 50 个降至 8 个,整体耗时快 2.2 倍。 - 自适应批次大小。 批次遇到 429 错误时,批次大小会减半,未应答的调用会重新排队,而不会失败;持续成功后,批次大小会逐渐恢复。实测发现,API 接受 20 个调用的批次,但会拒绝 50 个调用的批次。
- 成本感知型自适应速率限制。 请求间隔会根据单个请求中的 调用次数 进行调整,因此包含 20 个调用的批次,其间隔与 20 次单独调用相同。每次遇到 429 错误,并发数都会减半,间隔则加倍,随后逐渐恢复。
server_metrics会报告收敛后的速率。 - 通过
undici连接池使用 HTTP/2 + keep-alive,因此每次调用都不需要进行 TLS 握手。 - 两级 TTL 缓存,并合并进行中的请求。 已最终确认的交易和区块会缓存数小时;余额则缓存数秒。多个并发的相同调用会共用一个 Promise。
- 精简负载。 工具返回一个紧凑的 JSON 文档,而不是原始节点响应。影响 Agent 延迟的最大因素是令牌数,而不是毫秒数。
工具
分析(组合工具,从这里开始)
| 工具 | 可解答的问题 |
|---|---|
analyze_wallet | 资产组合价值、持仓、钱包年龄、流入/流出情况、主要交易对手方、最早的资金提供方、风险标记 |
analyze_token | Rug 风险筛查:实时铸造/冻结权限、元数据可变性、供应量、FDV、持有者集中度(前 1 名/前 10 名/HHI),并标记池和其他由程序控制的持有者;0–100 风险评分 |
trace_funds | 广度优先搜索资金流图,正向或反向追踪,最多 5 跳:节点、边及其权重(按每笔转账发生时的美元价值计算)、带有交易所和充值地址标签的终端流向,以及循环流动。追踪在跨链桥处停止,并报告资金去向;followEvm 会继续追踪 EVM 目的地址 2 跳 |
follow_bridge | 经 Wormhole、deBridge、Mayan 或 Circle CCTP 离开或进入 Solana 的资金:其他链、接收方、金额、目标链交易。可传入交易签名,或传入地址进行扫描 |
trace_evm | 在 Ethereum、Base、Arbitrum、BNB Chain 及其他 9 条 EVM 链上追踪资金流:原生代币和 ERC-20 转账(按发生时的美元价值计算),并在合约地址和带标签的地址处停止 |
identify_addresses | 查明地址背后的实体:内置的交易所钱包、套餐包含此功能时可用的 Helius 身份、案例和程序标签,以及充值地址检查。每个标签都附带来源和置信度 |
detect_wash_trading | 根据代币交易量最大的池计算刷量交易评分:自我对敲钱包、同区块时隙和快速往返交易、交易量集中度、由同一钱包提供资金的交易者。可疑交易者会附带一条示例交易签名 |
find_cluster | 从一个钱包出发,发现可能由同一方控制的钱包:手续费支付方、共同签名者、租金去向、共同或唯一资金提供方、同区块时隙活动、创建时间。提供评分和交易签名证据 |
wallet_pnl | 根据兑换记录,按兑换发生时的价格计算每种代币的已实现和未实现盈亏。标记从未买入却卖出的代币;对于单个铸币地址,还会标出免费发送代币的对象 |
find_counterparties | 钱包进行过交易的所有地址,按排名列出,并按交易方向和每种铸币地址的交易量拆分 |
compare_wallets | 跨 2–10 个钱包进行女巫攻击/共同所有权检测:直接关联、共同资金提供方、交易对手方 Jaccard 重合度、0–100 关联强度 |
investigate_transaction | 单笔交易签名:增强解析、每个账户的余额变动及其发生时的美元价值、涉及的每个铸币地址的 Rug 风险筛查、手续费支付方画像 |
案例文件
| 工具 | 功能 |
|---|---|
case_update | 创建案例,或添加摘要、地址标签(含置信度和证据交易签名)及带日期的备注 |
case_read | 列出案例、读取单个案例,或在开始调查某个地址前搜索所有案例 |
case_export | 生成 report.md,其中包含 Mermaid 图表,并为每个已保存的追踪或集群生成独立的 SVG 资金流图 |
将 case: "<name>" 传给 trace_funds、find_cluster 或 follow_bridge,即可将结果保存到该案例中。任何案例中的标签都会显示在每个工具的 label 字段中,因此后续调查可以基于先前结果展开。案例以纯 JSON 格式保存在 ~/.coin-scout/cases/<name>/ 中。
由 coin-scout 自带的渲染器绘制的 case_export 图表。数据仅供示例。
| 工具 | 后端 |
|---|---|
chain_status | getEpochInfo + getPriorityFeeEstimate |
get_balances | DAS getAssetsByOwner,包含原生余额和 USD 定价 |
get_account | getMultipleAccounts(jsonParsed),并标注程序 |
get_transactions | Helius 增强型交易:易读的类型、来源、转账和兑换事件 |
get_transaction_raw | getTransaction,包含日志、内部指令和计算单元 |
get_transfers | getTransfersByAddress:服务端支持对手方/方向/铸币地址/时间筛选,可选显示每笔转账发生时的 USD 价格 |
get_transaction_history | getTransactionsForAddress:支持按 slot、时间和状态筛选,并使用游标分页 |
get_swaps | 筛选为 SWAP 的增强型历史记录,规范化为卖出/买入明细,并附带按铸币地址汇总的净额 |
get_token_holders | DAS getTokenAccounts |
get_assets / search_assets / get_asset_activity | 完整的 DAS 功能(NFT、cNFT、同质化代币、Token-2022) |
solana_rpc | 只读 RPC 和 DAS 方法的备用入口:get*、is*、search*、minimumLedgerSlot、simulateTransaction |
server_metrics | 批次压缩、缓存命中率、自适应速率限制状态 |
提示词
investigate_address、screen_token、trace_stolen_funds:每个提示词都定义了一套调查操作顺序。
配置
除 API 密钥外,所有配置均为可选。请参阅 .env.example。
| 变量 | 默认值 | 用途 |
|---|---|---|
HELIUS_API_KEY | — | 必填 |
ETHERSCAN_API_KEY | — | 可选。可让 trace_evm 和 followEvm 读取 Etherscan 套餐覆盖的所有已列出链;不设置时只能通过 Blockscout 使用 Ethereum |
HELIUS_NETWORK | mainnet | mainnet 或 devnet |
HELIUS_RPC_HOST | <network>.helius-rpc.com | 覆盖 RPC 主机 |
HELIUS_MAX_CONCURRENCY | 24 | 在途 HTTP 请求数上限 |
HELIUS_CONNECTIONS | 64 | undici 连接池大小 |
HELIUS_MAX_BATCH_SIZE | 20 | JSON-RPC 批处理上限 |
HELIUS_BATCH_WINDOW_MS | 4 | 合并请求的时间窗口 |
HELIUS_HTTP2 | true | 禁用后强制使用 HTTP/1.1 |
HELIUS_TIMEOUT_MS | 30000 | 单个请求的超时时间 |
HELIUS_MAX_RETRIES | 6 | 单个(非批处理)请求的重试次数 |
HELIUS_CACHE_ENTRIES | 20000 | LRU 容量 |
COIN_SCOUT_MAX_TRACE_NODES | 400 | trace_funds 图规模硬上限 |
COIN_SCOUT_MAX_PAGES | 20 | 分页循环硬上限 |
COIN_SCOUT_CASES_DIR | ~/.coin-scout/cases | 案例文件的存储位置 |
COIN_SCOUT_ENV_FILE | ./.env,然后是服务器文件上一级目录中的文件 | 指定 .env 路径 |
PORT | 8787 | 仅用于 HTTP 入口 |
数据与隐私
所有操作都在你的机器上运行。离开本机的数据如下:
- Helius 会接收你查询的地址、签名和铸币地址,以及你的 API 密钥。
- DefiLlama 会接收用于
usdAtTime价格查询的铸币地址和时间戳。 - WormholeScan、deBridge、Mayan 和 Circle 会在解析跨桥转账时接收交易签名。
- DexScreener 会在
detect_wash_trading查询代币池时接收铸币地址。 - 在 EVM 链上追踪资金时,Blockscout(或设置了
ETHERSCAN_API_KEY时使用的 Etherscan)会接收 EVM 地址。
只有 Helius 和 Etherscan 会获得 API 密钥,且各自只获得自己的密钥。案例文件会保存在你的案例目录中。
准确性说明
- 分析工具会抽样近期历史记录。如果结果带有
truncated或sampleTruncated,其计数只是下限;提高transferSample可覆盖更多记录。 - 当前 USD 价值来自 Helius 定价,
usdAtTime价值来自 DefiLlama 历史价格;两者都仅涵盖活跃交易的代币。缺少价格表示未知,而非为零。 wallet_pnl只能根据样本中的兑换记录进行判断。通过转账收到或在样本范围之前收到的代币没有成本基础;其卖出额会报告为unmatchedProceedsUsd,而非已实现盈亏。find_cluster只会向上追溯到种子地址的一个资助方。可在具有代表性的成员地址上再次运行,以继续追溯。- 桥接解析涵盖 Wormhole、deBridge、Mayan 和 Circle CCTP。deBridge 和 CCTP 只能追踪出站交易;服务无法识别的链会以原始链 ID 显示。
- 内置交易所标签来自 OKX 于 2026 年 11 月 1 日发布的储备证明快照,并使用
scripts/okx-labels.ts重新生成。存款地址和热钱包标签根据归集模式推断,并会在其confidence和source中说明。 detect_wash_trading会读取进出池子的代币转账,因此流动性添加和移除也会计为交易,通过其他程序账户路由的交易量会单独报告为routedVolume。同一时隙内的买入和卖出也是夹子攻击机器人和套利机器人的典型特征。analyze_token最多扫描 1000 个代币账户。holderAccountsExact会说明持有人数量是真实总数还是下限。所有者为程序或程序派生地址的持有人会标记为isProgramOwned;集中度数据仍会将其计入,programControlledPct会说明其持有的供应量占比。- 风险标记和评分是用于分流处理的启发式指标。它们会引导调查人员查看相关交易,但不构成最终判定。
贡献与安全
有关开发环境设置和 CI 运行的检查,请参阅 CONTRIBUTING.md。请按照 SECURITY.md 中的说明私下报告漏洞。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。