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

React集成Ethers.js与Infura:Signer及私钥使用疑问

关于Ethers.js中Signer及Infura配置的疑问解答

1. Signer到底是什么?

Signer是Ethers.js里负责签名交易、消息的核心对象,它对应一个持有以太坊账户私钥的实体。任何要上链的交易都必须经过Signer签名,才能被区块链网络认可为合法操作——这相当于给交易盖了个“本人授权”的章,证明交易是账户所有者发起的,防止伪造。

2. 应该用谁的私钥?

这里的SIGNER_PRIVATE_KEY需要填的是你用来发起交易的以太坊账户私钥:比如你自己的Sepolia测试网账户私钥,或者是你业务中专门用于执行特定链上操作的账户私钥。

⚠️ 重点提醒:绝对不能在React前端项目里直接配置这个私钥!前端代码最终会打包成静态文件,私钥会完全暴露给所有访问你网站的人,一旦泄露,账户里的资产会立刻被盗。这种直接配置私钥的方式只适合后端服务场景。

3. 和早期provider.getSigner()的区别

早期Ethers.js里的provider.getSigner(),一般是在用户连接了MetaMask这类钱包后,获取钱包注入的Signer对象——这个Signer的私钥由用户钱包本地管理,不会传递给你的应用,安全性极高。而Infura文档里的这种方式,是把私钥直接写在配置里,相当于让你的应用完全掌控这个账户,只适合后端环境,前端用这种方式等于裸奔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:24:57