Skip to main content
Oracle 预编译暂未上线。 在此期间,你可以使用下述方法查询价格。
Injective 提供多种方式访问预言机价格数据,具体取决于你的架构和需求。 下列方法涵盖从在链下集成 Pyth, 到通过 Injective 的 EVM 在链上读取 Pyth 价格。

方式 1:使用 Pyth 的链下价格源

如果你的应用程序在链下获取价格(例如在后端服务或 bot 中), 可以直接查询 Pyth 的 HTTP API,无需任何链上交互。 有关可用端点、请求格式和响应模式的详情,请参见 Pyth 关于获取价格更新的文档。 这种方式非常适合链下交易系统、分析仪表盘, 或任何不需要提交交易就能获取价格数据的服务。

方式 2:通过 EVM 在链上使用 Pyth 价格源

对于需要在链上读取价格的智能合约,你可以与部署在 Injective EVM 上的 Pyth 合约交互。 它使用 Pyth 的拉取式(pull-based)预言机模型,即先在链下获取价格更新,再在链上提交后再读取。

合约地址

要获取 Injective EVM 上的 Pyth 合约地址,请查阅 Pyth 合约地址页面,找到 Injective EVM 条目: 当前,Pyth 在 Injective EVM 主网上的合约地址是 0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320
请始终以官方文档为准以获取最新地址。

价格源 ID

每一个资产对都有一个唯一的价格源 ID(price feed ID)。你可以在 Pyth price feed IDs 页面查阅这些 ID。 例如,搜索 INJ/USD

受支持的价格源

请始终以官方文档为准以获取最新地址。

集成指南

要在你的 Solidity 合约中使用拉取模型完整集成 Pyth 价格源, 请按 Pyth EVM 拉取集成教程 操作。

示例

下面的示例演示了如何在 Injective 的 EVM 上从 Pyth 合约读取 INJ/USD 价格:
getPriceUnsafe 会返回最后一次推送的价格,且不进行 staleness(过时性)检查。在生产环境中, 建议使用 getPriceNoOlderThan(priceFeedId, maxAge)——不过请注意,这要求价格在近期已被推送到链上, 否则调用会 revert。 更多关于拉取模型的信息请参见 Pyth 文档
最后修改于 2026年8月4日