SuperAPI AI 工具集

pyth-evm

编程与开发

查看项目

更新于 10-16 06:21

技能介绍

用途:为 EVM 链上应用提供高频价格数据,采用拉取(pull)模型,与 Chainlink 等推送式预言机不同,需先从 Hermes 获取更新数据并在链上提交后才能读取有效价格。

主要能力:IPyth 提供 updatePriceFeeds、getPrice、getPriceUnsafe、getPriceNoOlderThan、getEmaPriceNoOlderThan、parsePriceFeedUpdates、getUpdateFee;价格含 price、conf(1 个标准差置信区间)、expo(通常为 -8)、publishTime。feed ID 为 bytes32,跨链一致;Pyth 合约地址因链而异。Hermes 提供最新价格、SSE 流式接口与 TypeScript 客户端 @pythnetwork/hermes-client。

使用方式:链上需把 updatePriceFeeds 与读取放在同一笔交易中,避免被夹;用 getUpdateFee(updateData) 计算费用并以 msg.value 传入,不可硬编码;读取用 getPriceNoOlderThan。链下可用 Hermes 接口:GET /v2/updates/price/latest?ids[]=...&encoding=hex&parsed=true;TypeScript 依赖 npm install @pythnetwork/hermes-client@^3.1.0 viem。

适用场景:DeFi 借贷、DEX/永续合约、跨链定价、高频读取(>1 次/分钟);低频读取、稳定币锚定监控等更适合推送式预言机。

限制:getPriceUnsafe 可能返回任意过期数据,仅可在同一交易 update 之后调用;更新与读取分离可被抢跑;置信区间过宽(如大于价格 1%)应拒绝;更新费用动态变化且以原生代币支付;缺失信息暂未提供。