ETHEREUM_RPC_URL=https://sepolia.infura.io/v3/你的_INFURA_API_KEY
如果你没有 Infura Key,注册 Infura 或 Alchemy,拿一个免费测试网节点就行:
Infura:https://infura.io
非常棒的问题,很多刚接触以太坊开发的开发者都会疑惑:
“为什么不能直接连接以太坊?”
“为什么还要用什么 Infura、Alchemy?”
我来从底层原理角度解释一下👇
🧠 以太坊连接本质上是连接“以太坊节点”(Ethereum Node)
你和以太坊互动(比如查询区块、发交易、部署合约)时,是在和“以太坊节点”交互。
这个节点运行软件,比如:
geth
(官方 Go Ethereum 客户端)nethermind
besu
等等
🧱 问题来了:
👉 你自己并没有运行这样的节点!
运行一个以太坊主网节点或测试网节点:
需要几十 GB 到几百 GB 磁盘空间(主网 > 1TB)
需要稳定带宽、运行时间
需要理解同步机制、数据验证
而你只是想开发 DApp、测试合约、发送交易,不想先搞个完整节点吧 😅
✅ Infura / Alchemy 是“区块链基础设施提供商”
它们帮你:
运行并维护高可用的以太坊节点集群
提供稳定、快速的 JSON-RPC API 接口
可免费使用(限流)
提供仪表盘、监控、速率限制管理、Webhooks、分析等高级功能
你只要注册账号、申请一个 project,就能获得一个 RPC 地址,像这样:
https://sepolia.infura.io/v3/xxxxxxxxxxxxx https://eth-sepolia.g.alchemy.com/v2/yyyyyyyyyyyy
❓那为啥不能直接用“以太坊官网”提供的?
因为:
以太坊是协议,不是服务商
它不提供官方公共 RPC 节点(以避免被滥用、攻击)有些人用的是自建节点(比如你以后部署自己的私链、企业链),那就用本地地址:
http://localhost:8545
你也可以找公共 RPC 节点,但多数都有速率限制或不稳定(开发建议不用)
✅ 总结一句话:
你之所以用 Infura 或 Alchemy,是因为你不想自己运行一个以太坊节点,而他们帮你提供了稳定的节点接口。
🔧 想开始用,应该怎么做?
1. 选一个:推荐 Alchemy(文档友好、中文也支持)
注册账号
创建项目(选择 Sepolia)
拿到你的 RPC 地址
像这样:
https://eth-sepolia.g.alchemy.com/v2/your-api-key
然后写入 .env
:
ETHEREUM_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/your-api-key
你就可以开始开发和调用合约了!
sepolia是干嘛的为什么url前缀都是它
ChatGPT 说:
很棒的问题,下面我从用途、命名和你的开发使用角度来给你讲清楚:
✅ Sepolia 是什么?
Sepolia 是以太坊官方的“测试网络”之一,用于开发者测试和调试合约、前后端交互、钱包连接等功能,而不花真币、不冒真风险。
🧪 为什么要有 Sepolia 测试网?
以太坊主网(Mainnet)上:
所有交易都是真实的
需要真实 ETH 支付 gas 费
错误代码可能造成不可逆损失
所以开发时用 Sepolia 这样的测试网,可以:
用免费的测试币
安全地部署、调试合约和 DApp
模拟真实环境交互流程
🌐 为什么 URL 里有 sepolia
?
你看到的 URL:
https://sepolia.infura.io/v3/<你的-api-key>
说明这是:
Infura 提供的通往 Sepolia 网络的 HTTP RPC 网关接口
类似地,还有:
网络名 | RPC 前缀 URL 示例(Infura) |
---|---|
主网(Mainnet) | https://mainnet.infura.io/v3/<api-key> |
Goerli(已弃用) | https://goerli.infura.io/v3/<api-key> |
Sepolia | https://sepolia.infura.io/v3/<api-key> |
Polygon 主网 | https://polygon-mainnet.infura.io/v3/<api-key> |
Arbitrum | https://arbitrum-mainnet.infura.io/v3/<api-key> |
👨💻 你现在为什么用 Sepolia?
因为:
你在做开发或测试阶段
不想烧真 ETH
你可能还没部署合约,或者正在测试代币转账等交互
📌 如何获得 Sepolia 测试币?
访问官方水龙头(Faucet):
或 MetaMask Developer 平台里的 “Faucet” 菜单
✅ 小结一句话:
Sepolia 就是为你这样的开发者准备的“以太坊模拟环境”,URL 以
sepolia
开头说明你连接的是它,而不是主网。
如果你准备上线到主网,到时只需要改 .env
:
ETHEREUM_RPC_URL=https://mainnet.infura.io/v3/<你的主网API KEY>
就完成切换了。
什么是钱包地址和合约地址?
非常关键的问题,下面我给你讲清楚:你已经有 API Key(可以访问网络),现在需要的是 钱包私钥 和 合约地址,这两个是你自己“生成”和“部署”出来的。
✅ 你缺少的两个东西从哪里来?
变量名 | 来源 | 如何获得 |
---|---|---|
ADMIN_PRIVATE_KEY |
钱包 | 用 MetaMask 生成钱包,导出私钥(测试用) |
TOKEN_CONTRACT_ADDRESS |
智能合约 | 自己用 Remix 或 Hardhat 部署到 Sepolia 测试网 |
🔐 一、如何获得 ADMIN_PRIVATE_KEY
(管理员私钥)
⚠️ 仅用于开发环境!不要用于真实钱包!
打开 MetaMask(切换到 Sepolia 测试网)
点击你的账户图标 →
Account details
点
Export Private Key
(输入密码)拷贝那串私钥,填入
.env
文件中:
ADMIN_PRIVATE_KEY=0x开头的私钥字符串
🧾 二、如何获得 TOKEN_CONTRACT_ADDRESS
你要先部署一个代币合约,比如用 Remix + MetaMask:
🚀 简单 ERC20 示例部署流程(Remix 快速搞定):
打开 Remix IDE
新建一个
.sol
文件,粘贴如下示例 ERC20 合约代码:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20 { constructor() ERC20("MyToken", "MTK") { _mint(msg.sender, 1000000 * 10 ** decimals()); } }
在 Remix 左侧选择 "Solidity Compiler" → 编译合约
选择 "Deploy & Run Transactions":
环境选择:
Injected Provider - MetaMask
确保 MetaMask 网络为 Sepolia
点击 "Deploy" → MetaMask 会弹窗确认 → 执行部署
部署成功后,你会看到一个合约地址:
复制这个地址,填到
.env
:
TOKEN_CONTRACT_ADDRESS=0x你部署成功后的合约地址
🧪 示例完整 .env
写法:
ETHEREUM_RPC_URL=https://sepolia.infura.io/v3/你的ApiKey ADMIN_PRIVATE_KEY=0x你测试钱包私钥 TOKEN_CONTRACT_ADDRESS=0x你刚部署的代币合约地址