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

能否使用Infura为以太坊地址配置可读ENS域名?

实现方案

setup_address本质是发送ENS注册/配置的链上交易,Infura作为RPC节点仅负责广播交易和读取链上数据,不涉及私钥托管,所以原有逻辑90%可复用,仅需调整签名相关配置即可。

具体修改步骤

  • 第一步:替换节点地址为Infura的对应网络HTTP链接,同时修正原代码的变量名笔误
from web3 import Web3
from ens import ENS
from eth_account import Account

# 替换为你的Infura对应网络节点链接
INFURA_URL = "https://mainnet.infura.io/v3/你的Infura项目ID"
WEB3 = Web3(Web3.HTTPProvider(INFURA_URL))
NS = ENS.fromWeb3(WEB3)
  • 第二步:配置本地签名逻辑,替换原自有节点的托管账户配置
    原有自有节点可能默认使用节点端解锁的账户签名交易,Infura不持有用户私钥,需要在本地完成签名后再通过节点广播:
# 生产环境不要硬编码私钥,建议通过环境变量、密钥管理服务加载
OPERATOR_PRIVATE_KEY = "你的操作账户私钥"
operator_account = Account.from_key(OPERATOR_PRIVATE_KEY)

# 调用setup_address生成待签名交易
unsigned_tx = NS.setup_address(
    name="你的ENS域名.eth",
    address="要绑定的目标ETH地址",
    transact={
        "from": operator_account.address,
        "gas": 200000, # 可根据实际链上情况调整
        "gasPrice": WEB3.eth.gas_price
    }
)

# 本地签名交易
signed_tx = WEB3.eth.account.sign_transaction(unsigned_tx, OPERATOR_PRIVATE_KEY)

# 通过Infura节点广播签名后的交易
sent_tx = WEB3.eth.send_raw_transaction(signed_tx.rawTransaction)

# 可选:等待交易上链确认
receipt = WEB3.eth.wait_for_transaction_receipt(sent_tx)

注意事项

  • 仅支持已完成注册的ENS域名操作,未注册的域名需要先走官方注册流程再调用setup_address
  • 确保操作账户持有足够的ETH支付链上gas费用
  • 禁止在生产代码中明文存储私钥,避免资产被盗风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:07