获取能量
在 TRON 上部署或调用合约之前获取所需的带宽和能量——通过质押 TRX、代理,或直接燃烧 TRX。
前置阅读
在 TRON 网络上部署智能合约需要消耗两类基础网络资源:能量(Energy)与带宽(Bandwidth)。部署账户的能量和带宽充足时,部署不燃烧 TRX。获取这两种资源有以下途径:
- 质押(Staking) —— 质押 TRX,按质押比例获取每日循环恢复的能量或带宽配额。
- 代理资源(Delegation) —— 接收其他账户代理来的资源,也可以通过去中心化的资源租赁服务租用。
如果发起交易的账户缺少必要的能量与带宽, TRON 网络会从账户余额中燃烧 TRX,用于支付资源成本。这套资源模型既支持提前准备资源,也支持按需燃烧 TRX 完成智能合约交互。
交易执行需要消耗多少能量?
部署或调用智能合约时所消耗的能量,取决于合约编译生成的字节码大小及其执行路径。例如,部署一个标准的 TRC-20 Token 合约通常需要消耗大约 200,000 到 500,000 Energy,具体能耗会随合约逻辑复杂度变化。广播到主网前,先做能耗预估。
有关如何预估部署或调用交易的具体能量消耗,请参阅如何估算合约部署交易的能量消耗。
方式一:质押 TRX 获取资源(推荐)
通过质押 TRX,账户可以根据质押份额占全网总质押量的比例,分得对应的每日能量额度。已消耗的能量会在 24 小时内逐步自动恢复。
// 使用 TronWeb 质押 5,000 TRX 以获取能量
const tx = await tronWeb.transactionBuilder.freezeBalanceV2(
tronWeb.toSun(5000), // 金额,单位为 sun
'ENERGY' // 资源类型
);
const signed = await tronWeb.trx.sign(tx);
const result = await tronWeb.trx.sendRawTransaction(signed);关于包括资源代理、撤销质押及投票收益领取在内的完整质押生命周期,请参阅 Stake 2.0 质押指南。
方式二:接受资源代理与租赁
如果不希望长期锁定自己的 TRX,也可以接收其他账户代理来的资源。这在 TRON 网络的能量租赁市场中很常见,例如使用 JustLend DAO 等平台提供的能量租赁服务,无需自行质押即可获得所需能量。
如果需要在智能合约内部以代码方式动态处理资源质押和代理划拨,请参阅 Stake 2.0 Solidity SDK 参考。
方式三:通过燃烧 TRX 直接支付费用
如果账户内既无预先质押的资源也无外部代理额度, TRON 系统会从账户余额中燃烧 TRX 支付能量成本。主网当前每 Energy 燃烧 0.0001 TRX;这一单价由链参数 getEnergyFee 控制,并可通过超级代表(SR)委员会提案调整。可通过 wallet/getchainparameters 接口或 TRONSCAN 浏览器查看网络最新费率。
对偶尔交互的轻度用户,直接燃烧 TRX 最简单;对高频部署的开发者或生产环境的 DApp,质押 TRX 能明显降低长期运营成本。
精准设置交易燃烧上限 fee_limit
fee_limit发起智能合约部署或调用时,交易必须附带 fee_limit 参数,用于设定此笔交易允许燃烧 TRX 的上限额度。它能防止合约因执行异常(如死循环)或意外进入高耗能逻辑而过度燃烧账户余额。
目前主网允许设置的 fee_limit 最大上限值为 15,000 TRX,该上限受链参数 getMaxFeeLimit(提案 ID 为 #47)控制。开发部署脚本时,应通过 wallet/getchainparameters 动态获取最新值,不要硬编码。通常,部署一个标准的 TRC-20 Token 合约设定 1,000 TRX 额度已足够;对于逻辑极其复杂的合约或在动态能耗惩罚下的 DApp 交互,请使用能量估算工具进行校准。
关于如何进行能耗成本控制的完整指南(如动态能量模型下的 max_factor 惩罚机制、如何计算高成功率的 fee_limit 等),请参阅 FeeLimit 与能量成本管理。
相关资源
- FeeLimit 与能量成本管理 —— 智能合约能耗控制与成本预算管理指南
- 部署上链 —— 学习如何使用 TronIDE 或 TronBox 部署智能合约
- Stake 2.0 质押指南 —— 了解 TRON 资源质押、Token 代理与锁定的完整生命周期
- 资源模型 —— 掌握带宽、能量及质押机制的底层协议逻辑
- 底层智能合约部署与调用 —— 查阅全节点底层 HTTP 接口的调用说明
Updated 26 days ago