解质押与取消
如何解质押 TRX、提取到期资金、取消待处理的解质押操作,以及解质押对 TRON Power 和现有投票的影响。
前置阅读
质押的 TRX 可随时解除。分两步:先发起解质押并等待当前网络规定的时间,再把到期金额提取到可用余额。Stake 2.0 还可取消尚未到期的解质押并立即重新质押,无需等到等待期结束。
解质押 TRX
调用 wallet/unfreezebalancev2 发起:
BASE_URL=https://nile.trongrid.io # Nile 测试网;示例账户位于该网络
curl -X POST ${BASE_URL}/wallet/unfreezebalancev2 \
-d '{
"owner_address": "TTGhREx2pDSxFX555NWz1YwGpiBVPvQA7e",
"unfreeze_balance": 100000000,
"resource": "ENERGY",
"visible": true
}'解质押的 TRX 进入等待期,到期后才能提取。等待天数由链参数 #70 控制,可由 SR 投票修改;调用 wallet/getchainparameters 并读取 getUnfreezeDelayDays 可查询当前网络的值。目前,Nile 的等待期为 1 天,Shasta 和主网为 14 天。
等待期结束后,使用 wallet/withdrawexpireunfreeze 提取解质押的 TRX:
BASE_URL=https://nile.trongrid.io # Nile 测试网;示例账户位于该网络
curl -X POST ${BASE_URL}/wallet/withdrawexpireunfreeze \
-d '{
"owner_address": "TTGhREx2pDSxFX555NWz1YwGpiBVPvQA7e",
"visible": true
}'这一步把所有已过等待期的解质押 TRX 转入账户的可用余额。
解质押限制与自动提取
- 可部分解质押 — 无需一次全部解除。入金(质押、代理)有 ≥ 1 TRX 的门槛,解质押作为出金没有这个下限:金额只要大于 0 sun、且不超过已质押总量即可。
- 未到期的解质押最多 32 笔。达到上限后,须等至少一笔记录到期,之后即可再次发起解质押,无需先单独提取到期资金。剩余次数可通过
wallet/getavailableunfreezecount查询。32是 java-tron 协议实现中的固定上限(UNFREEZE_MAX_TIMES),不是链参数,不能通过提案查询或调整。 - 已代理的 TRX 不能直接解质押 — 须先撤销代理(见资源代理)。
- 解质押会回收 TRON Power — 见下方 TRON Power 回收。
- 合并自动提取 — 发起新解质押时,若此前有解质押已过当前网络的等待期,网络会在同一笔交易中自动提取到期金额,无需再单独调用
withdrawexpireunfreeze。提取额记录在交易的withdraw_expire_amount字段(查wallet/gettransactioninfobyid)。
TRON Power 回收
从 Stake 2.0 解质押时,等量 TRON Power(TP)会从账户回收,顺序如下:
- 优先回收闲置(未投票)的 TP。 若有未使用的 TP,优先从这部分回收。
- 若不足,再从每个已投票的 SR 按比例回收已投的 TP。
从某个 SR 撤销投票的计算公式:
从某 SR 撤销的投票数 =
需回收的总投票数
× (为该 SR 投出的票数 / 为所有 SR 投出的总票数)TRON Power 按比例回收示例
账户 A 已质押 2,000 TRX,持有 2,000 TP,其中:
- 已投票的 1,000 TP(600 票投给 SR 1,400 票投给 SR 2)
- 闲置的 1,000 TP
账户 A 解质押 1,500 TRX → 需回收 1,500 TP:
- 前 1,000 TP 从闲置 TP 中回收(耗尽闲置池)。
- 剩余 500 TP 按比例从已投票的 TP 中回收:
- 从 SR 1:
500 × (600 / 1,000) = 300 票撤销 - 从 SR 2:
500 × (400 / 1,000) = 200 票撤销
- 从 SR 1:
解质押后,账户 A 剩余 500 TP,全部处于已投票状态:SR 1 有 300 票,SR 2 有 200 票。
如何取消待处理的解质押操作
Stake 2.0 支持取消所有待处理解质押操作,立即重新质押,无需等到等待期结束。使用 wallet/cancelallunfreezev2:
BASE_URL=https://nile.trongrid.io # Nile 测试网;示例账户位于该网络
curl -X POST ${BASE_URL}/wallet/cancelallunfreezev2 \
-d '{
"owner_address": "TTGhREx2pDSxFX555NWz1YwGpiBVPvQA7e",
"visible": true
}'操作说明:
- 仍在等待期内的所有解质押操作将被取消,其 TRX 立即重新质押,恢复解质押前相应的带宽 / 能量和 TP。
- 已过等待期的解质押操作不会被取消——该部分 TRX 会在同一笔交易中自动提取到账户的可用余额。
交易信息中包含两个相关字段(可通过 wallet/gettransactioninfobyid 查询):
cancel_unfreezeV2_amount— 按资源类型统计重新质押金额的对象,键为BANDWIDTH、ENERGY和TRON_POWER,值以 sun 为单位withdraw_expire_amount— 从已到期解质押操作中提取的 TRX 金额,以 sun 为单位
cancelallunfreezev2 API 受链参数 #77(getAllowCancelAllUnfreezeV2)控制。主网已经处于激活状态。
关于 Stake 1.0 的解质押说明
仍在 Stake 1.0 下质押的 TRX,使用 Stake 1.0 API(而非 unfreezebalancev2)。注意:Stake 1.0 解质押会一次性清空所有投票,与 Stake 2.0 按比例回收 TP 的方式不同。
相关资源
- Stake 2.0 概览 — 质押 TRX(本页操作的逆操作)
- 资源代理 — 解质押已代理的 TRX 前,须先撤销代理
- 为超级代表投票 — 了解撤销投票对奖励的影响
- 质押与奖励 API — 完整 API 参考表
- HTTP API — unfreezebalancev2
- HTTP API — withdrawexpireunfreeze
- HTTP API — cancelallunfreezev2
Updated 2 days ago
