Home指南API 参考手册
指南API 参考手册社区Discord博客FAQ漏洞赏金公告中心English(英文版)Log In
指南

支持的交易类型详解

TRON 支持多种类型的交易,这些交易在结构上大体一致(详见交易章节),但其 raw_data.contract 字段中的具体内容会因交易类型而有所不同。本文将针对各交易类型,分别介绍 raw_data.contract 字段的结构及各字段的含义,帮助开发者更高效地构建和解析交易数据。

1. AccountCreateContract

功能说明

创建新的 TRON 基础账户,需支付 1 TRX 的激活费用

字段说明

字段名称数据类型描述
owner_addressbytes创建者地址
account_addressbytes新生成的地址
typeenum账户类型 (0 = 普通账户,1 = 资产账户,2 = 合约账户)


2. TransferContract

功能说明

执行 TRX 转账操作

字段说明

字段名称数据类型描述
owner_addressbytes发送方地址
to_addressbytes接收方地址
amountint64转账金额 (单位:SUN)

3. TransferAssetContract

功能说明

执行 TRC-10 代币转账

字段说明

字段名称数据类型描述
asset_namebytes代币唯一标识符
owner_addressbytes代币发送方地址
to_addressbytes接收方地址
amountint64转账数量(需乘以精度)

规则

  1. 精度计算公式:实际数量 = amount / 10^precision
    (precision 在代币发行时定义)

4. VoteWitnessContract

功能说明

对超级代表(SR)进行投票

字段说明

字段名称数据类型描述
owner_addressbytes投票者地址
votesVote[]投票列表(最多 30 项)

投票子结构

字段名称数据类型描述
vote_addressbytes超级代表地址
vote_countint64票数(1 票 = 1 质押 TRX)


5. WitnessCreateContract

功能说明

注册成为超级代表候选人

字段说明

字段名称数据类型描述
owner_addressbytes申请人地址
urlbytes官网 URL(UTF-8编码)


6. WitnessUpdateContract

功能说明

更新超级代表的公开信息

字段说明

字段名称数据类型描述
owner_addressbytes超级代表地址
update_urlbytes新官网 URL(可为空)

7. AssetIssueContract

功能说明

创建并配置 TRC-10 标准代币

字段说明

字段名称类型描述
idstring代币唯一标识符
owner_addressbytes代币发行方地址
namebytes代币全称(UTF-8,最长 32 字节)
abbrbytes代币缩写(UTF-8,最长 16 字节)
total_supplyint64代币总供应量(≥ 1)
frozen_supplyFrozenSupply[]代币冻结计划列表
trx_numint32兑换 1 个代币需要的 TRX 数量
precisionint32小数位精度(0-8)
numint32代币发行批次编号
start_timeint64众筹开始时间(UNIX 毫秒)
end_timeint64众筹结束时间(UNIX 毫秒)
orderint64预留字段(当前无实际用途)
vote_scoreint32投票权重系数
descriptionbytes代币描述文本(UTF-8)
urlbytes代币官网链接(UTF-8)

FrozenSupply 结构

子字段类型描述
frozen_amountint64冻结的代币数量
frozen_daysint64冻结天数(≥ 3 天)

规则

  1. 发行条件
  • 总供应量必须满足:total_supply ≥ 1
  • 代币名称需全网唯一

8. ParticipateAssetIssueContract

功能说明

参与 TRC-10 代币众筹

字段说明

字段名称数据类型描述
owner_addressbytes参与者地址
to_addressbytes发送地址
asset_namebytes目标代币 ID
amountint64用于购买已发行代币的 TRX 金额(单位:SUN)

规则

  1. 兑换逻辑​:
获得代币量 = (投入TRX数 × 代币单价分母) / (代币单价分子 × 10^精度)
  1. 时间限制​:
    必须在代币众筹期内操作(start_time ≤ 当前时间 ≤ end_time)
  2. 失败场景​
  • 众筹额度已满
  • 参与者 TRX 余额不足

9. AccountUpdateContract

功能说明

更新账户基础信息

字段说明

字段名称数据类型描述
owner_addressbytes操作者地址
account_namebytes新账户名称(UTF-8)

10. FreezeBalanceContract

功能说明

质押 TRX 以获取带宽/能量资源。

请注意,这个接口在 Stake 2.0 开启后已不再可用。

字段说明

字段名称类型描述
owner_addressbytes质押操作者地址
frozen_balanceint64质押的TRX数量(单位:SUN)
frozen_durationint64质押天数
resourceenum资源类型:
0=带宽(BANDWIDTH)
1=能量(ENERGY)
receiver_addressbytes资源接收地址(可代理给其他地址)

规则

  • 接收地址必须已激活
  • 若未指定接收地址,默认资源归属owner_address

11. UnfreezeBalanceContract

功能说明

解冻已质押的 TRX(Stake1.0)

字段说明

字段名称类型描述
owner_addressbytes解冻操作者地址
resourceenum资源类型:
0=带宽(BANDWIDTH)
1=能量(ENERGY)
receiver_addressbytes原质押资源的接收地址


12. WithdrawBalanceContract

功能说明

提取超级代表(SR)的区块奖励,或用户提取投票奖励。
超级代表可以从账户余额中提取;用户可以从超级代表处领取投票奖励,并将其存入账户余额。

字段说明

字段名称数据类型描述
owner_addressbytes超级代表或用户地址

规则

  1. 奖励计算​:
  • 区块奖励 = 出块数 × 当前区块奖励
  • 投票奖励 = 得票数 × 投票奖励系数
  1. 提取限制​:
  • 最低提取金额:​1 TRX
  • 每 24 小时限提1次

13. UnfreezeAssetContract

功能说明

解冻已冻结的 TRC-10 代币(需发行方授权)

字段说明

字段名称数据类型描述
owner_addressbytes操作者地址

14. UpdateAssetContract

功能说明

修改已发行的 TRC-10 代币基础参数

字段说明

字段名称类型描述
owner_addressbytes代币发行方地址
descriptionbytes新的代币描述(UTF-8 编码)
urlbytes新的代币官网链接(UTF-8 编码)
new_limitint64新持币地址数量上限
new_public_limitint64新公募限额

15. ProposalCreateContract

功能说明

创建新的网络参数修改提案

字段说明

字段名称数据类型描述
owner_addressbytes提案创建者地址
parametersmap<int64, int64>参数修改列表(键值对)

规则

  1. 提案内容​:
  • 可修改参数包括:区块奖励、交易手续费率等
  • 单次提案最多包含 ​20​ 项修改
  1. 生效条件​:
  • 需获得 ​2/3+1​ 位超级代表批准
  • 批准后在下个维护周期生效

16. ProposalApproveContract

功能说明

超级代表对提案进行投票表决

字段说明

字段名称数据类型描述
owner_addressbytes投票代表地址
proposal_idint64目标提案 ID
is_add_approvebool是否批准提案(true 为批准)

规则

  1. 投票权限​:
  • 仅当前周期的活跃超级代表可投票
  • 每个提案每位代表只能投票 ​1次
  1. 表决时效​:
  • 超时未达票数自动废弃

17. ProposalDeleteContract

功能说明

删除已存在的网络参数修改提案

字段说明

字段名称数据类型描述
owner_addressbytes提案删除操作者地址
proposal_idint64目标提案 ID

规则

  1. 删除权限​:
  • 仅提案创建者或超级代表委员会可操作
  • 已生效的提案不可删除
  1. 时效限制​:
  • 提案创建后需超过 ​24小时​ 才允许删除

18. SetAccountIdContract

功能说明

为账户设置自定义唯一标识符(账户 ID)

字段说明

字段名称数据类型描述
owner_addressbytes账户地址
account_idbytes自定义 ID(ASCII 字符串)

19. CustomContract

功能说明

执行旧版自定义合约逻辑(已弃用)

字段说明

字段名称数据类型描述
owner_addressbytes操作者地址(必须为 SR 节点)
contract_databytes自定义数据(最大 256 KB)

规则

  1. 兼容性限制
  • 仅支持版本 ≤ v4.1.2
  • 新合约必须使用TriggerSmartContract

20. CreateSmartContract

功能说明

部署智能合约

字段说明

字段名称类型描述
owner_addressbytes合约部署者地址
new_contractSmartContract智能合约
call_token_valueint64初始资金注入量(TRC-10)
token_idint64TRC-10 代币 ID

SmartContract结构

字段名称类型必填描述
origin_addressbytes合约创建者地址
contract_addressbytes合约链上地址
abiABI合约接口定义(包含方法/事件等元数据)
bytecodebytesEVM 字节码
call_valueint64调用时转账金额(单位:SUN,1 TRX = 1,000,000 SUN)
consume_user_resource_percentint64用户资源消耗比例(范围 0-100,默认 100)
namestring合约名称
origin_energy_limitint64创建者预分配能量(最小值:1_000_000
code_hashbytes字节码哈希
trx_hashbytes部署交易哈希
versionint32协议版本

ABI 嵌套结构

Entry 结构字段
字段类型必填描述
anonymousbool事件匿名标识(仅对Event类型有效)
constantbool⚠️已废弃(由stateMutability替代)
namestring方法/事件名称(构造函数为空)
inputsrepeated Param输入参数列表(最少 1 个)
outputsrepeated Param输出参数(仅Function有效)
typeEntryType条目类型(见下方枚举表)
payablebool⚠️已废弃(由stateMutability替代)
stateMutabilityStateMutabilityType状态可变性(见下方枚举表)

枚举类型表

EntryType 枚举
枚举名对应场景Solidity 示例
0UnknownEntryType未知类型(协议保留值)-
1Constructor合约构造函数constructor() payable {}
2Function普通函数function transfer() external {}
3Event链上事件event Transfer(address indexed)
4Fallback备用函数fallback() external {}
5Receive接收TRX函数receive() external payable {}
6Error自定义错误error InsufficientBalance();
StateMutabilityType 枚举
枚举名状态影响修饰符示例
0UnknownMutabilityType未知状态(协议保留值)-
1Pure不读/不写状态pure
2View只读状态view
3Nonpayable可修改状态(不可接收TRX)无修饰符
4Payable可修改状态(可接收TRX)payable

21. TriggerSmartContract

功能说明

与智能合约交互

字段说明

字段类型说明
owner_addressbytes调用者的区块链地址
contract_addressbytes被调用的合约地址
call_valueint64转账的 TRX 数量(单位:SUN,1 TRX = 1,000,000 SUN)
databytesABI 编码数据(包含4字节函数选择器 + 32 字节对齐的参数编码)
call_token_valueint64TRC-10 代币转账数量(需乘以代币精度,如精度 6 则 1 代币 = 1,000,000)
token_idint64TRC-10 代币 ID

22. GetContract

功能说明

查询智能合约的详细信息

参数解析 (BytesMessage)

数据结构

message BytesMessage {
bytes value = 1;
}

输入要求

字段格式
value合约地址

返回值解析 (SmartContract)

关键字段说明

字段类型说明
origin_addressbytes合约创建者的地址
contract_addressbytes合约的链上地址
abi.entrysrepeated Entry合约接口定义列表
bytecodebytesTVM 字节码

23. UpdateSettingContract

功能说明

用于修改智能合约的用户资源消耗比例(开发者与用户之间的资源分摊比例)

字段说明

字段名称类型描述
owner_addressbytes合约拥有者地址
contract_addressbytes目标合约地址
consume_user_resource_percentint64用户承担的资源消耗百分比(有效范围:0-100,默认值:100)


24. UpdateEnergyLimitContract

功能说明

修改智能合约的能源消耗上限

字段说明

字段名称类型描述
owner_addressbytes合约拥有者地址
contract_addressbytes目标合约地址
origin_energy_limitint64能源限制值

25. AccountPermissionUpdateContract

功能说明

管理账户的多重签名权限配置

字段说明

字段名称类型描述
owner_addressbytes账户地址
ownerPermissionowner 权限配置
witnessPermissionwitness 权限配置(可以为空)
activesPermission[]active 权限配置

26. ClearABIContract

功能说明

清除智能合约的 ABI 定义

字段说明

字段名称类型描述
owner_addressbytes合约拥有者地址
contract_addressbytes目标合约地址

规则

清除影响

  • 外部无法通过 ABI 解析合约方法
  • 已部署的合约仍可执行

27. UpdateBrokerageContract

功能说明

调整超级代表的佣金比例

字段说明

字段名称类型描述
owner_addressbytes超级代表地址
brokerageint32新佣金比例

规则

  1. 比例范围
  • 最小值:​0%​​(全部分配给投票者)
  • 最大值:​100%​​(不分配奖励)

28. DelegateResourceContract

功能说明

实现资源委托操作(带宽/能量等资源)


字段说明

字段名称类型描述
owner_addressbytes资源所有者地址
resourceResourceCode资源类型(0 = 带宽,1 = 能量)
balanceint64委托的资源数量(单位:SUN,1 TRX = 1,000,000 SUN)
receiver_addressbytes资源接收方地址
lockbool是否锁定委托(true = 锁定,false = 不锁定)
lock_periodint64锁定周期(单位:区块数,1 区块 ≈ 3 秒,仅当 lock = true 时有效)

29. UnDelegateResourceContract

功能说明

实现资源取消委托操作

字段说明

字段名称类型描述
owner_addressbytes资源所有者地址(同委托操作地址)
resourceResourceCode资源类型(必须与委托时的类型一致)
balanceint64取消委托的资源数量(单位:SUN,需 ≤ 已委托数量)
receiver_addressbytes资源接收方地址(须与委托时的地址一致)


30. FreezeBalanceV2Contract

功能说明

用于在 TRON 网络中质押 TRX 以获取带宽或能量资源(Stake 2.0,原 1.0 的质押方法已废弃)

字段说明

字段名称类型描述
owner_addressbytes质押操作发起者地址
frozen_balanceint64质押的 TRX 数量(单位:SUN,1 TRX = 1,000,000 SUN)
resourceResourceCode目标资源类型(0 = 带宽,1 = 能量,2 = 投票权)

附加说明

  1. 资源获取规则
  • 每质押 1 TRX 可获得的资源量由全网动态计算决定
  • 质押操作即时生效,资源可立即使用
  1. 解质押机制
  • 需通过UnfreezeBalanceV2Contract解除质押
  1. 资源类型对照
ResourceCode 值资源类型用途场景
0带宽所有交易消耗
1能量智能合约执行消耗

31. UnfreezeBalanceV2Contract

功能说明

用于解除 TRX 质押(与FreezeBalanceV2Contract配对使用)

字段说明

字段名称类型描述
owner_addressbytes解质押操作发起者地址
unfreeze_balanceint64解质押的 TRX 数量(单位:SUN,必须 ≤ 已质押金额)
resourceResourceCode目标资源类型(0 = 带宽,1 = 能量,2 = 投票权)

核心规则

  1. 解质押延迟机制
  • 发起解质押后需等待 14 天​(链上时间)才可提取TRX

32. WithdrawExpireUnfreezeContract

功能说明

用于提取已过解质押等待期的 TRX 资金(需在发起UnfreezeBalanceV2Contract操作后执行)

字段说明

字段名称类型描述
owner_addressbytes提取操作发起者地址

33. CancelAllUnfreezeV2Contract

功能说明

用于取消所有未完成解质押操作​(在解质押等待期内撤销已发起的解质押请求)

字段说明

字段名称类型描述
owner_addressbytes操作发起者地址

核心机制

  1. 操作影响
  • 撤销所有通过UnfreezeBalanceV2Contract发起但未过 14 天等待期的解质押请求
  • 恢复对应 TRX 的质押状态,维持原有的资源(带宽/能量)配额
  1. 限制条件
  • 仅对未到期的解质押记录生效(已过 14 天等待期的解质押无法取消)
  • 操作不可逆,取消后需重新发起解质押流程