Skill: yishixing01/dexscan-skill (version 1.0.0)

--- name: dexscan-skill description: > 使用此技能获取链上市场数据：代币行情、牛人榜、社交热度、信号。 **触发场景**： - 用户提到 dexscan - 用户提到代币行情、价格、市值、成交量、流动性、涨跌幅、持币地址数 - 用户提到代币信号、首次信号推送最大涨幅、信号推送 - 用户提到代币热度、热度排行榜、KOL讨论 - 用户提到聪明钱、牛人榜 --- # DexScan 技能说明 ## 目录结构 ``` dexscan-skill/ ├── SKILL.md # 主技能文件（当前文件） ├── scripts/ │ └── dexscan.js # API 调用脚本（get/post封装+签名认证） ├── references/ │ ├── signal.md # 代币信号接口文档 │ ├── market.md # 行情接口文档 │ ├── address.md # 地址情况接口文档 │ ├── address-rank.md # 地址牛人榜接口文档 │ └── heat.md # 热度接口文档 └── assets/ # 资源文件目录 ``` ## API 调用方式 所有 API 调用通过 `scripts/dexscan.js` 导出的方法实现： ```javascript const dexscan = require('./scripts/dexscan.js'); // 信号列表查询（游标分页） await dexscan.querySignalList({ chainName: 'SOL' }); await dexscan.querySignalList({ chainName: 'SOL', cursor: { address: 'xxx', signalTime: 1234567890 } }); // 信号排行榜查询 await dexscan.querySignalRank({ chainName: 'SOL' }); // 行情模块 - 代币排行查询 await dexscan.queryCoinRank({ chainName: 'SOL', bar: '1h', page: 1, pageSize: 20 }); // 行情模块 - 交易活动列表 await dexscan.queryTradeScroll({ chainName: 'SOL', tokenContractAddress: 'xxx' }); // 地址情况模块 - 地址交易历史 await dexscan.queryAddressTradeScroll({ chainName: 'SOL', address: 'xxx' }); // 地址情况模块 - 地址盈亏分析 await dexscan.queryAddressList({ chainName: 'SOL', address: 'xxx' }); ``` ## 认证机制 API 请求头包含签名认证： - `ACCESS-KEY`： - 操作系统环境变量（最高优先级）：`DS_ACCESS_KEY`，环境变量未设置时使用公用默认配置（低频限制，仅适用于轻量体验） - `ACCESS-TIMESTAMP`：当前毫秒时间戳 - `ACCESS-SIGN`：`HMAC-SHA256(ACCESS-KEY + ":" + ACCESS-TIMESTAMP)` 的 Base64 编码 SECRET-KEY： - 操作系统环境变量（最高优先级）：`DS_SECRET_KEY`，环境变量未设置时使用公用默认配置（低频限制，仅适用于轻量体验） ## 支持的链名称 必须使用以下链名称之一：`SOL, BSC, Base, ETH, Polygon, Arbitrum, Optimism, Avalanche, Monad, SUI` ## 通用行为规则 1. **语言**：始终以用户提问的语言回复 2. **链名称**：用户未指定链时默认使用 `SOL`；用户给出别称（如"以太坊"）时映射为对应链名（`ETH`） 3. **错误处理**：API 返回 `code !== 200` 时，展示 `msg` 字段内容，不展示空数据 4. **时间字段格式化**：响应数据中字段名含 `time` 或 `date`（不区分大小写）的字段，按客户端默认时区转换为 `yyyy-MM-dd HH:mm:ss` 展示；`cursor` 对象内的字段除外，保持原始值 5. **数值格式化**： - 价格：小数位超过16位时保留16位小数，截断多余位数 - 金额/市值：`≥1B` 显示为 `xB`，`≥1M` 显示为 `xM`，`≥1K` 显示为 `xK` - 涨跌幅/收益率：转为百分比，保留2位小数，正值加 `+` 前缀（如 `+12.34%`） - 胜率/比例：转为百分比，保留1位小数 6. **分页提示**：响应包含 `cursor` 字段时提示"还有更多数据，如需继续请告知"；无 `cursor` 时提示"已显示全部数据" 7. **默认输出**：`data` 不为空时，必须按各模块文档定义的默认字段输出，不可省略；用户要求详细信息时输出完整字段 ## 接口选择指引 | 用户意图 | 推荐接口 | |----------|----------| | 查代币信号/推送列表 | `querySignalList` | | 查信号排行榜 | `querySignalRank` | | 查代币行情排行 | `queryCoinRank` | | 查代币详细信息、价格、市值、24h涨幅、24h成交额、符号、创建时间、流动性、持币地址数 | `queryCoinInfo` | | 查代币近期统计 | `queryCoinSummary` | | 查K线历史数据 | `queryKlineHistorical` | | 查某代币的链上交易记录 | `queryTradeScroll` | | 查某代币的流动性变化 | `queryLiquidScroll` | | 查某代币的持仓盈亏 | `queryPnlCoinList` | | 查开发者关联代币 | `queryDeveloperScroll` | | 查Meme币排行 | `queryMemeRank` | | 查Meme支持的DEX列表 | `queryMemeDexs` | | 查某地址的交易历史 | `queryAddressTradeScroll` | | 查某地址的盈亏分析 | `queryAddressList` | | 查某地址的持仓资产 | `queryAddressAssetTop` | | 查开发者创建的代币 | `queryDeveloperPage` | | 查聪明钱/牛人榜 | `queryAddressRank` | | 查社交热度排行 | `queryCoinHeatPage` | | 查推文热度 | `queryTwitterTweetsHeat` | ## 模块接口文档 - **代币信号模块**：详见 [references/signal.md](references/signal.md) - 信号列表查询（分页，游标方式） - 信号排行榜查询（TOP10） - **行情模块**：详见 [references/market.md](references/market.md) - 代币排行查询（coin-rank） - 交易活动列表（trade-scroll） - 流动性变化列表（liquid-scroll） - 代币盈利列表（pnl-coin-list） - 开发者代币列表（developer-scroll） - 代币统计信息（coin-summary） - 代币信息（coin-info） - K线历史数据（kline-historical） - Meme代币排行（meme-rank） - Meme支持DEX列表（meme-dexs） - **地址情况模块**：详见 [references/address.md](references/address.md) - 地址交易历史（address-trade-scroll） - 地址盈亏分析（address-list） - 地址资产组合（address-asset-top） - 地址开发者代币（developer-page） - **地址牛人榜模块**：详见 [references/address-rank.md](references/address-rank.md) - **热度模块**：详见 [references/heat.md](references/heat.md) - 社交热度列表（coin-heat-page） - 推文热度数据（twitter-tweets-heat）


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal:  | SkillSpector: suspicious (HIGH)