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

使用tronpy查询新钱包/Tronscan地址余额报错account not found on-chain

解决tronpy查询余额报错AddressNotFound的问题

问题原因

  1. 未激活的空地址:TRON链上的账户只有在发生过至少一笔交易(如转入TRX)后才会被创建记录。新生成的钱包地址或从未使用过的地址,链上没有对应账户数据,查询时就会抛出AddressNotFound异常。
  2. 网络节点不匹配:如果你的地址是测试网地址,但tronpy默认连接主网节点(或反过来),也会导致找不到地址。
  3. 节点同步延迟:部分Tronscan显示的地址可能因节点同步问题,暂时无法在当前连接的节点上查询到。

解决方案

1. 激活空地址

新生成的地址必须先进行激活操作:

  • 向该地址转入至少0.000001 TRX(即1个sun,TRX的最小单位),完成后链上就会创建该账户的记录,之后即可正常查询余额。

2. 确认并切换正确的网络节点

tronpy默认连接主网,若使用测试网地址,需手动指定测试网节点:

from tronpy import Tron
from tronpy.providers import HTTPProvider

# 连接Shasta测试网
tron = Tron(HTTPProvider("https://api.shasta.trongrid.io"))

# 若使用主网,可指定主网节点(或默认不指定)
# tron = Tron(HTTPProvider("https://api.trongrid.io"))

3. 优化查询代码,兼容未激活地址

修改查询函数,捕获异常并返回0余额(未激活地址实际余额为0):

def get_balance(address):
    try:
        # 获取账户信息并转换余额单位(sun转TRX)
        account = tron.get_account(address)
        return account["balance"] / 10**6
    except tronpy.exceptions.AddressNotFound:
        # 账户未激活,返回0余额
        return 0.0

# 调用示例
wallet = create_wallet()
balance = get_balance(wallet['base58check_address'])
print("Balance:", balance)

4. 验证Tronscan地址有效性

若Tronscan上的地址也报错,先确认该地址是否有过链上交易记录:

  • 在Tronscan上查看地址的交易历史,若没有任何交易,说明该地址未被激活,需先转入TRX激活后再查询。
  • 若有交易记录仍报错,尝试更换节点(比如换用https://api.trongrid.io或https://api.nileex.io)。

内容的提问来源于stack exchange,提问作者виталик панасюк

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:33:31