为什么 TRON 需要“投票权、带宽、能量”三大资源
在 TRON 主网上,每一笔交易都必须消耗网络资源,这就是全网公认的“资源模型”。无论是给超级代表投票,还是发起一次智能合约交互,背后都绕不开投票权(TRON Power, 简称 TP)、带宽(Bandwidth Points, 简称 BP)与能量(Energy, 简称 EN)。
掌握它们的来源、消耗及恢复规则,是避免“莫名扣费”或“交易失败”的关键。
投票权:每质押 1 TRX 就获得 1 TP
投票权仅限质押 TRX 获取,质押使用的 API 为 wallet/freezebalancev2,锁定 TRX 的同时,你会收到:
- 对应数量的 投票权 TP(1:1 对应)
- 可选带宽 BP 或能量 EN 额度(只能二选一)
质押后,重复质押会累加 TP,但不会产生新的锁定周期。投票使用 wallet/votewitnessaccount,支持一键查看剩余票数:wallet/getaccountresource 解析字段 tronPowerLimit 及 tronPowerUsed。
带宽:每日 600 点免费 + 全网约 432 亿点总量
带宽决定“交易的字节”能否上链的门槛。
获取与计算
| 来源 | 规则 |
|---|---|
| 每日免费 | 600 BP,按 UTC+0 重置 |
| 质押奖励 | 你质押 TRX 占全网质押带宽的比例 × 上限(43,200,000,000) |
消耗优先级
- 自建账户 / Token 发行者私有的质押带宽;
- Token 合约的私设带宽池;
- 免费 600 点;
- 最终燃烧 TRX(每字节 1000 SUN,≈ 0.001 TRX)。
24 小时自动回充
无论免费还是质押带宽,当天消耗后将在 24 小时间隔内线性恢复。因此短炒高频交易务必提前规划,避免“空档期”无法发交易。
能量:智能合约的“汽油费”
能量仅用于虚拟机执行,与普通转账无关。
获取方式
- 与带宽完全平行:质押 TRX 时选择“能量”即可获取,额度 =(个人质押 / 全网质押)× 能量上限(1800 亿)。
- 变量随质押总额实时变化,查询同一时间其他人质押比例,避免“抢跑”。
消耗顺序
- 先扣质押能量;
- 再燃烧 TRX,单价 0.00021 TRX/EN。
feeLimit 必填字段
调用合约时需在 Transaction.raw.feeLimit 填入愿意预付的 TRX(单位 SUN,0~15×10⁹)。
👉 详细示例脚本:15 秒复制粘贴即可安心调用热门合约。
动态能量:热门合约“单价”上调机制
为防止少数合约耗尽全网资源,TRON 引入网络级参数 energy_factor:
- 基础阈值 5,000,000,000 EN
- 超阈值时,下一周期费率×1.2;最大倍数 3.4
- 恢复时使用×0.75 规格退化
检查当前合约放大系数:getcontractinfo,API 返回值中的 energy_factor 即实时比率。
质押 → 代理 → 解质押一站说明
| 步骤 | 指令 | 说明 |
|---|---|---|
| 质押 | wallet/freezebalancev2 | 锁定 TRX,获得带宽/能量+投票权 TP |
| 代理资源 | wallet/delegateresource | 把未使用的带宽/能量转给小伙伴(3天锁) |
| 取消代理 | wallet/undelegateresource | 解除代理,需等待 3 天 |
| 解质押 | wallet/unfreezebalancev2 | 申请赎回,14 天后到账;最多 32 笔并行 |
| 取消全部申请 | cancelallunfreezev2 | 即时重置,资金重回质押状态 |
常见问题 FAQ
Q1:质押换取的资源是否会永久失效?
不会。24 小时后自动回满,随时可以再次使用。
Q2:为何我拥有 2000 TP,投票却提示“票数不足”?
先确认是否已把 TP 投给了候选人,剩余票数查看 tronPowerLimit - tronPowerUsed 即可。
Q3: EA Sports DAO 合约消耗暴涨,如何测算能量?
直接用 getcontractinfo 拿到 energy_factor,再用公式:
“预估能量 = 基础能量 × (1+ energy_factor)”。记得同步提高 feeLimit。
Q4:多笔解质押同时发起,最长须等多久?
最多排队 32 笔,每笔 14 天解锁,同批次统一到期可提取。
Q5:解质押生效后还能重新质押吗?
可以。14 天冷却期内只需执行 cancelallunfreezev2 即可一键复位。
API 速查备忘录
// 质押 TRX -> 资源
POST wallet/freezebalancev2
{
"owner_address" : "...", // 十六进制
"frozen_balance" : 1_000_000, // 最小单位 SUN
"resource" : 0/1 // 0=带宽 1=能量
}
// 查看资源余额
GET wallet/getaccountresource?address=...
// 查看可代理余额
GET wallet/getcandelegatedmaxsize?owner_address=...&type=0/1所有上述参数请替换为个人地址,并严格走离线签名流程以确保私钥安全。
掌握以上规则后,无论是日常转账还是部署复杂 DeFi 合约,都能根据能量、带宽与投票权的实时波动,用最经济的方式完成每一次链上操作。祝你玩转 TRON!