You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:如何获取ETH-USD数据Feed并集成至Solidity/Remix?

获取ETH-USD Chainlink价格Feed的Solidity实现(Remix环境)

核心问题排查

你之前拿到BTC-USD数据,大概率是用错了Chainlink Price Feed的合约地址——每个资产对的Feed地址都是独立的,换对ETH-USD的地址就能解决问题。

步骤1:确认对应网络的ETH-USD Feed地址

不同区块链网络的ETH-USD Feed地址不同,举两个常用的:

  • 以太坊主网:0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
  • Goerli测试网:0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e
    (如果用其他测试链/主链,直接找对应链的Chainlink官方价格Feed地址,别再用BTC的地址)

步骤2:编写Solidity合约

直接用下面的合约代码,替换掉之前的BTC Feed地址即可:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

// 导入Chainlink价格聚合器接口
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

contract ETHUSDPriceFeed {
    // 定义价格聚合器合约实例
    AggregatorV3Interface internal priceFeed;

    // 构造函数:初始化时传入ETH-USD的Feed地址
    constructor(address _feedAddress) {
        priceFeed = AggregatorV3Interface(_feedAddress);
    }

    // 获取最新ETH-USD价格(带小数位)
    function getLatestPrice() public view returns (int) {
        (, int price, , , ) = priceFeed.latestRoundData();
        // Chainlink ETH-USD价格默认带8位小数,比如返回200000000000代表2000.00美元
        return price;
    }

    // 获取价格的小数位数
    function getDecimalPlaces() public view returns (uint8) {
        return priceFeed.decimals();
    }
}

步骤3:在Remix中部署测试

  1. 打开Remix,创建新.sol文件,粘贴上面的代码
  2. 切换到「Solidity Compiler」标签,选择0.8.7版本编译合约
  3. 切换到「Deploy & Run Transactions」标签:
    • 环境选「Injected Provider - MetaMask」,连接到对应网络(比如Goerli测试网)
    • 在部署栏的「Deploy」按钮左侧输入框,填入你要使用的ETH-USD Feed地址
    • 点击「Deploy」,确认MetaMask交易
  4. 部署完成后,调用合约的getLatestPrice()和getDecimalPlaces()函数,就能拿到正确的ETH-USD价格数据

常见坑点

  • 别再混用BTC和ETH的Feed地址,每个资产对地址唯一
  • 确保Remix连接的网络和Feed地址对应的网络一致(比如用Goerli的地址就不能连主网)
  • 如果返回0或者错误值,检查地址是否输入正确,网络是否同步正常

内容的提问来源于stack exchange,提问作者Alifaeen Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:58:22