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

Python+web3如何获取当前连接区块链网络的原生代币符号

解决方案

EVM 兼容链没有统一的 RPC 接口可以直接返回原生代币符号,最稳妥的实现方式是通过链ID做预映射匹配,步骤如下:

  • 调用 web3.eth.chain_id 获取当前连接网络的全局唯一链ID
  • 维护链ID与对应原生代币符号的映射表
  • 用匹配到的符号替换输出内容即可

完整代码示例

首先定义通用映射表:

# 常用EVM链 链ID-原生代币符号映射,可根据你接入的网络自行扩展
CHAIN_NATIVE_TOKEN_MAPPING = {
    1: "ETH",      # 以太坊主网
    5: "ETH",      # Goerli测试网
    56: "BNB",     # BSC主网
    97: "BNB",     # BSC测试网
    137: "MATIC",  # Polygon主网
    80001: "MATIC",# Polygon Mumbai测试网
    42161: "ETH",  # Arbitrum主网
    10: "ETH",     # Optimism主网
    43114: "AVAX"  # Avalanche主网
}

修改你的业务逻辑代码:

web3 = Web3(Web3.HTTPProvider(init.differentNetwork))
# 获取当前网络链ID
current_chain_id = web3.eth.chain_id
# 匹配原生代币符号,未匹配到的场景保留默认占位符
native_symbol = CHAIN_NATIVE_TOKEN_MAPPING.get(current_chain_id, "network token")

walletBalanceTmp = web3.eth.getBalance(init.walletAddress)
# 所有EVM兼容链原生代币默认都是18位小数,使用ether单位转换无需调整
walletBalance = web3.fromWei(walletBalanceTmp, 'ether')
print(f"Current wallet balance: {walletBalance} {native_symbol}")

不推荐通过解析节点URL判断网络的方案,节点域名可能调整,链ID是EVM网络的全局唯一标识,匹配准确率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:15:03