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

使用Python版TronAPI在Shasta网络创建TRX交易遇SIGERROR签名错误

签名权限错误排查方案

核心问题定位

错误信息明确说明:签名地址TNBWAv3eDZ3W9c61etU34DEy2X1kx5v6m5不在发送地址的权限配置中。以下是针对性排查步骤:

1. 验证私钥与地址的对应关系

确保你传入的private_key确实对应TNBWAv3eDZ3W9c61etU34DEy2X1kx5v6m5,而非sender_address。可以用以下代码验证:

# 从私钥推导对应地址
derived_address = tron.address.from_private_key(private_key)
print(f"私钥对应地址: {derived_address}")
print(f"设置的sender_address: {sender_address}")

如果两者不匹配,说明存在私钥或发送地址配置错误。

2. 检查发送地址的权限配置

Tron账户支持多权限配置(owner/active权限),若sender_address的权限列表未包含签名地址TNBWAv3eDZ3W9c61etU34DEy2X1kx5v6m5,会触发该错误:

  • 直接在Shasta测试网区块浏览器查询sender_address的权限信息,确认是否添加了该签名地址的权限;
  • 若为首次操作,大概率是误将其他地址的私钥用于sender_address的交易,直接更换为sender_address对应的私钥即可。

3. 简化代码配置,避免参数冲突

你的代码中同时设置了tron.default_address和options['from'],可能导致参数冲突。建议简化代码:

from tronapi import Tron

full_node = 'https://api.shasta.trongrid.io'
solidity_node = 'https://api.shasta.trongrid.io'
event_server = 'https://api.shasta.trongrid.io'

tron = Tron(full_node=full_node, solidity_node=solidity_node, event_server=event_server)
# 用私钥初始化后会自动推导对应地址,无需手动设置default_address和from参数
tron.private_key = private_key

txn = tron.trx.send_transaction(to=receiver_address, amount=amount, message=memo_text)

4. 确认测试网环境一致性

确保查询地址信息时使用的是Shasta测试网,主网与测试网账户数据完全隔离,不要混淆环境。


内容的提问来源于stack exchange,提问作者chandra prakash meghwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:24:27