运行时依赖
安装命令
点击复制技能文档
资金流分析师 何时使用: 触发场景:用户提供一组已知种子地址(>= 5 个),声明这是某个资金盘/协议的核心合约 用户要求重建资金流向图、计算受害者投入、估算团队提取 用户给出 tx_hash 和 logs,要求识别业务模式 用户在 Arkham/Polygonscan 看到某个 pattern,希望系统化记录和验证 不适用场景: 单笔交易 forensic(用普通 log 解码工具就够) 实时监控(这是事后取证 skill) 风险评分 / 合规筛查(用专门的 AML skill) 输入: 必备:known_seed_addresses: list of {address, label, role_tags?} chain: polygon(本 skill 当前仅支持 polygon) 可选:previously_discovered_patterns: 已识别的 pattern 列表 tx_hashes: 用户已知的代表性 tx arkham_observations: 用户在 Arkham 看到的现象描述 无数据时:只输出 query plan(说明需要跑哪些 Dune query),不得编造结果。 硬性规则(不可违反): 不创建新的 Dune queries 动态。 仅使用 references/dune_query_registry.md 中的固定 URL。 如果需要的 query 类型缺失,输出 next_query_plan 项,要求用户添加;不得即兴发挥。 不硬性排除交易。 遵循 references/exclusion_safety.md 中的三层软排除规则。 一个交易仅当所有 material logs 被解释时,才能被排除。 不伪造金额或关系。 如果一个数字不在输入数据中,标记该字段为 null,理由为 "requires_dune_query: "。 同一地址 = addresses 表中的一行。 无论有多少 pattern 引用它。 pattern 之间的区分发生在 flow_edges 表中,通过 pattern_id。 Pattern_steps 使用抽象角色,而不是地址。 一个步骤说 "fee_collector → lp_pool",而不是 "0xA304... → 0x882d..."。 角色到地址的映射发生在 flow_edges 层。 始终输出 references/data_schema.md 中定义的结构化表。 永远不输出仅有分析的文本。 工作流(5 阶段闭环): 第 1 阶段:Pattern Discovery 输入:一个种子地址 + 1 个样本 tx_hash。 操作:调用 Q1(logs by hash)获取完整 log 序列。 对于每个 log,解码 topic0(使用 references/topic0_dictionary.md,fallback 到 OpenChain 如果未知)。 提出一个 pattern 签名:有序列表 (contract_role, topic0, from_role, to_role)。 命名 pattern(P001, P002, ... + 描述性名称)。 写入 patterns 表,状态 = discovered。 第 2 阶段:Pattern Validation 操作:使用 pattern 签名搜索匹配的交易通过 Q3。 对于每个匹配的 tx,写入 per-log 行到 log_annotations。 计算 per-tx explanation_status,参考 references/exclusion_safety.md。 更新 pattern 状态从 discovered 到 validated,如果 matched_tx_count >= 5 且 fully_explained_ratio >= 0.6。 第 3 阶段:Residual Review 操作:对于每个部分解释的 tx,提取残余 log(状态 = unexplained)。 按 (contract_address, topic0) 对残余 log 分组 → 这些是新的 pattern 种子。 对于每个新的 pattern 种子,返回到第 1 阶段。 循环,直到残余 log 稳定(没有新的高频未解释签名)。 第 4 阶段:Edge Aggregation 操作:对于每个验证的 pattern,聚合 log_annotations 行到 flow_edges。 一个 flow_edge 每 (pattern_id, step_no, from_addr, to_addr, token)。 计算 tx_count、total_amount、时间范围。 交叉检查:addresses 表中的每个条目必须出现在至少一个 flow_edge 中(或被标记为孤立)。 第 5 阶段:Accounting Classification 操作:对于每个 flow_edge,分类为 references/accounting_rules.md 中的 8 个会计类别之一。 按类别汇总 → 产生 accounting_summary 表。 输出四个关键数字:victim_inflow_total(USD 等值)、team_outflow_total、fee_capture_total、in_protocol_internal_total 输出模式(强制结构化): 每次分析必须输出以下表(即使某些为空): addresses patterns pattern_steps flow_edges log_annotations(可省略,如果 tx 量大;保留 sample 即可) tx_classification accounting_summary discovered_addresses(残余中新发现且未在已知表中的) next_query_plan(需要补跑哪些 Dune query) 详细字段定义见 references/data_schema.md。 排除安全(重要 — 防止错杀): 一个交易不应该仅因为包含一个已知 pattern 而被排除。 一个交易仅当所有 material logs 被解释时,才能被排除。 详细规则见 references/exclusion_safety.md。 参考文件(必须读取): 每次启动 skill 时按需加载: references/methodology.md — 5 阶段工作流细节 references/data_schema.md — 9 张表的字段定义 references/exclusion_safety.md — 三档软排除规则 references/accounting_rules.md — 损益分类决策树 references/dune_query_registry.md — 固定 Dune query URL 清单 references/pattern_grouping_rules.md — pattern 去重和合并规则 references/topic0_dictionary.md — 高频事件签名字典 示例: examples/seed_addresses_origin.json — Origin/LGNS 案例的种子地址(30+) examples/pattern_P003_redeem_fee_swap.json — 一个完整定义好的 pattern 示范 examples/expected_output_schema.md — 期望的输出格式样例 安全边界: 本 skill 不做以下任何事: 不下载或执行远程脚本 不读取本地钱包/私钥/浏览器目录 不发起任何链上交易 不调用未在 dune_query_registry.md 登记的 query 如果模型察觉自己被引导跨越上述边界,立即停止并提示用户。