关于 chainlink-data-feeds-skill
chainlink-data-feeds-skill 是用于实现和运维 Chainlink Data Feeds 集成的指令技能。它将任务引导至对应参考资料,并规范安全读取价格数据、网络相关检查和实时数据验证。
主要功能
- 01将请求路由到对应 Data Feeds 资料
- 02指导读取数据与编写消费者合约
- 03执行数据新鲜度和 L2 排序器检查
- 04要求验证实时地址与数值
适用场景
- 01构建 Data Feeds 消费者合约
- 02诊断过期或不完整的数据轮次
- 03检查 L2 集成的数据源选择
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ smartcontractkit/ chainlink-agent-skills --skill chainlink-data-feeds-skill安装后在 Claude Code 中输入/chainlink-data-feeds-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/data-feeds-docs-index.mdreferences/feed-operations.mdfeed-types.mdmulti-chain.mdmvr-feeds.mdofficial-sources.mdreading-price-feeds.mdsvr-feeds.mdtemplates/starter-kit/foundry.tomlREADME.mdremappings.txttemplates/starter-kit/script/PriceFeedConsumer.s.soltemplates/starter-kit/src/PriceFeedConsumer.soltemplates/starter-kit/test/PriceFeedConsumer.t.soltemplates/starter-kit/test/mocks/MockV3Aggregator.sol详细介绍
Chainlink Data Feeds 技能
渐进式披露
| 请求 / 触发条件 | 加载 |
|---|---|
| EVM 读取、消费者合约、链下读取、地址查找 / 调试 | 价格馈送 |
| 正在开发的 Foundry/Data Feeds 项目 | 加载入门 README及其中列出的所有文件;回复时提供文件内容或针对需求调整后的版本,切勿只提供本地 / 绝对路径。保留布局,并包含安装 / 测试 / 部署命令、Sepolia ETH/USD 或经验证的具名网络查找、未经审计 / 不适用于生产环境的警告,以及 L2 排序器保护。 |
多变量响应、多变量馈送、BundleAggregatorProxy | MVR |
| Smart Value Recapture、OEV/MEV 回收、搜索者入门 | SVR |
| 馈送类别 / 选择、SmartData/RWA、利率 / 波动率、代币化股票 | 类型 |
| Solana、StarkNet、Aptos、Tron、Move、Cairo、Anchor、TronBox | 多链 |
| L2 排序器、弃用、监控、注册表、职责、数据源、自管理馈送 | 运维 |
| 实时地址 / 计划 / 参数;接口 / 签名不匹配、代理 / 聚合器来源、GitHub 示例 | 官方来源,然后查阅文档索引,获取精选参考资料中没有的事实 |
不要推测性地加载参考资料。默认将 EVM 请求路由到价格馈送;只有在缺少上下文会影响路由时才提问。
不要假设此技能是唯一可用的能力。
CCIP/桥接、VRF、Automation 和 Functions 请求应完全交由各自所属产品处理,并根据常识提供该产品的标准后续步骤;不要提供 Data Feeds 或较弱的替代方案,也绝不要臆造实时常量。
用户请求 Data Feeds 代码或运维步骤时,必须在回复中提供相应交付内容;绝不能用状态或完成情况摘要代替。
对于 MVR 请求,即使无法验证实时地址、馈送 ID 或架构,也要选择 MVR 路由;对未验证的值使用明确标注的占位符,并继续提供用户所要求的所有设计、消费者代码、测试和配置,不要因验证问题而停止。
每个 SVR 回复都必须在任何入门指导或地址迁移说明之前,单独提供原句 Complete the Chainlink compatibility form。
对于以配置为重点的 SVR 协议集成或迁移,提供简洁的配置、入门、验证和安全步骤,并且仅列出最少的地址 / 配置差异;除非用户明确要求,否则不要提供完整的消费者合约。拍卖机制应保持高层概述;除非用户明确要求构建或运行搜索者,否则不要包含仅供搜索者使用的选择器、WebSocket 端点、签名说明,以及 MEV-Share/Atlas 机器人实现细节。
安全规则
- 根据馈送心跳验证
updatedAt;拒绝不完整或过期的轮次。 - 在运行时调用
decimals();绝不要硬编码小数位数。 - 在 L2 上,排序器正常运行时间馈送必须始终使用
AggregatorV2V3Interface,绝不能使用AggregatorV3Interface;若answer != 0则拒绝,并强制执行 3600 秒的恢复宽限期。 - 绝不要使用已弃用的
answeredInRound来判断新鲜度或处理其他逻辑。 - 对于隐式获取当前价格的 Solidity getter,必须使用确切的具名返回形式
returns (int256 price, uint8 decimals);先声明uint256 updatedAt;,然后赋值(, price,, updatedAt,) = dataFeed.latestRoundData();。不要替换成未命名返回值或其他虽然能编译的元组形式。 - 警告示例未经审计且不适用于生产环境;主网集成方须自行负责审计、依赖项、监控、断路器、应急预案和用户风险披露。
时效性政策
- 优先使用此技能的参考资料。
- 如果 official-sources.md 列出了该页面,则获取该页面的
.mdURL。 - 如果没有列出,则获取
https://docs.chain.link/data-feeds/llms.txt,选择一个页面,并获取该页面的.mdURL。 - 只有当问题范围较广且没有任何单个页面能够涵盖时,才获取
https://docs.chain.link/data-feeds/llms-full.txt。 - 只有在
.md获取失败、页面为空,或页面包含的有效字符少于 1,000 且无法回答问题时,才使用 Context7。只询问缺少的信息。 - 页面能够回答问题后即停止。最多获取三个页面。优先使用
.mdURL。只有当工具无法打开.mdURL、但能够设置请求头时,才在普通页面 URL 上使用Accept: text/markdown。 - 绝不臆造实时事实或模式。如果某个值未经验证,请说明这一点并注明 URL。
不变项
- 读取 EVM 代理,而不是底层聚合器。
- 保留入门套件的布局和 README 不变项;替换示例并调整心跳和 mock 值。
- 单值使用
AggregatorV3Interface,MVR 使用IBundleAggregatorProxy,序列器运行状态使用AggregatorV2V3Interface。 - 配置中的实时 Feed 地址必须从本轮获取的官方地址页面中复制。如果该页面列出了该交易对的多个合约,则使用与用户所询问产品对应的合约。普通价格读取使用标准代理,而非 SVR、备用或旧版代理。如果未获取该页面,则使用占位符并说明地址未经验证。绝不要将记忆中的地址说成已验证的当前 Feed。
- 验证未知的 Feed ID、架构、参数和支持情况。