TypeScript 快速入门:Sepolia 测试网 ETH 转账全流程

·

关键词:ETH 转账、Ethereum 地址、Sepolia 测试网、TypeScript、Ethers.js、Gas 费、钱包管理

通过 100% TypeScript 代码,一步一步完成从「生成新地址」到「链上确认 ETH 到账」的完整链路。跟着练,不再“只看图不见钱”。


前置条件

已满足?要求
已准备 两个 Sepolia 测试网地址(A 发 / B 收)
钱包 A 有 3 ETH 以上余额用于转账 + Gas 费
电脑已安装 Node.js 18+
对 Solidity/Ethers.js/TypeScript 任一有「Hello World」级别好奇心即可

环境准备

npm init -y
npm i ethers typescript ts-node @types/node

一个小贴士:ethers v6 已内置 TypeScript 类型,无需额外声明文件。


开发第一步:本地生成钱包地址

保存文件:generateAddress.ts

import { ethers } from 'ethers';

function generateEthereumAddress() {
  const wallet = ethers.Wallet.createRandom();
  console.log(`📍 地址 (公钥): ${wallet.address}`);
  console.log(`🔐 私钥: ${wallet.privateKey}`);
  // 安全起见:立即保存到本地 `.env.local`
}

generateEthereumAddress();

运行:

npx ts-node generateAddress.ts

输出示例:

📍 地址 (公钥): 0xD758f4b9Ba93091c7b89A...ABCD
🔐 私钥: 0x1234567890abcdef...

👉 如果本地没有私钥保存习惯,可一站式生成并加密钱包文件防止泄露。


转账核心:执行 ETH 转账

创建文件:transfer.ts

import { ethers } from 'ethers';
import dotenv from 'dotenv';
dotenv.config();      // 读取 .env 里的私钥与 RPC

const senderPrivateKey = process.env.SENDER_PRIVATE_KEY!;
const recipientAddress = process.env.RECIPIENT_ADDRESS!;
const sepoliaProvider = new ethers.JsonRpcProvider(process.env.SEPOLIA_RPC || 'https://rpc.sepolia.org');

async function sendEth(amount: string) {
  const wallet = new ethers.Wallet(senderPrivateKey, sepoliaProvider);

  const tx = await wallet.sendTransaction({
    to: recipientAddress,
    value: ethers.parseEther(amount),      // 0.05 ETH,可做批量发放
    type: 2                                // EIP-1559
  });

  console.log(`⏳ Tx Hash: ${tx.hash}`);
  const receipt = await tx.wait();
  console.log(`✅ 上链确认`, receipt);
  console.log(`Gas Used: ${receipt!.gasUsed.toString()}`);
}

sendEth('0.05').catch(console.error);

.env 模板

SENDER_PRIVATE_KEY=0x...      # 钱包 A 的私钥
RECIPIENT_ADDRESS=0x...       # 钱包 B 的地址
SEPOLIA_RPC=https://rpc.sepolia.org

区块链浏览器验证

打开 Sepolia Etherscan 输入 Tx Hash,五步看懂:

  1. Status: Success
  2. From 为钱包 A,To 为钱包 B
  3. Value: 0.05 ETH
  4. Gas Used: 21,000
  5. Gas Price: 1.04 gwei

资产对账

钱包初始余额最终余额变化说明
A3.34553.295477发送 0.05 ETH + 0.000023 ETH Gas
B0.275250.32525收到 0.05 ETH 精准到账
Gas 与 baseFeePerGas×21000 走势相关,不是为了多扣你钱,而是为了矿工优先打包。

批量转账的扩展思路


常见问题与解答(FAQ)

Q1: 为什么我用 Goerli 跑不动?
A: Goerli 已逐步弃用,Sepolia 区块速度更快、官方水龙头稳定,改 Sepolia 即可。

Q2: 私钥在本地 .env 安全吗?
A: 永远别上传到 GitHub;如果不放心,使用 keystore 加密硬件钱包

Q3: TypeScript 类型报红怎么办?
A: 确保在 tsconfig.json 中启用 "esModuleInterop": true"resolveJsonModule": true

Q4: TX 一直 Pending?
A: Sepolia 偶尔拥堵,手动提升 Gas;将 maxPriorityFeePerGas 提高至 3 gwei 基本秒过。

Q5: 如何立刻拿到 5 个测试 ETH?
A: 去 OKX 领先的公共水龙头一次性可领 0.2 ETH,每隔 24h 刷新。


写在最后

一条链起码要转通一次,才算真正 闭环。用 TypeScript + Sepolia 先跑通,再到主网自然就心无旁骛。立即动手,把代码复制到本地,跑通它——Token 世界的大门从此打开。