解除质押与取消

如何解除质押 TRX、提取到期资金、取消待处理的解质押操作,以及解除质押对 TRON Power 和现有投票的影响。

📘

前置阅读

质押的 TRX 可随时解除。分两步:先发起解质押(进入 14 天等待期),再把它提取到可用余额。Stake 2.0 还可取消尚未到期的解质押并立即重新质押,无需等满 14 天。

解除质押 TRX

调用 wallet/unfreezebalancev2 发起:

BASE_URL=https://api.trongrid.io   # 示例 — 可替换为任意 TRON 节点(TronGrid、第三方或自托管)
curl -X POST ${BASE_URL}/wallet/unfreezebalancev2 \
  -d '{
    "owner_address": "TTGhREx2pDSxFX555NWz1YwGpiBVPvQA7e",
    "unfreeze_balance": 100000000,
    "resource": "ENERGY",
    "visible": true
  }'

解质押的 TRX 进入 14 天等待期,到期后才能提取。这 14 天由链参数 #70UNFREEZE_DELAY_DAYS)控制,可由 SR 投票修改,当前值可通过 wallet/getchainparameters 查询。

14 天后,使用 wallet/withdrawexpireunfreeze 提取解质押的 TRX:

BASE_URL=https://api.trongrid.io   # 示例 — 可替换为任意 TRON 节点(TronGrid、第三方或自托管)
curl -X POST ${BASE_URL}/wallet/withdrawexpireunfreeze \
  -d '{
    "owner_address": "TTGhREx2pDSxFX555NWz1YwGpiBVPvQA7e",
    "visible": true
  }'

这一步把所有已过 14 天等待期的解质押 TRX 转入账户的可用余额。

注意事项

  • 可部分解质押 — 无需一次全部解除。入金(质押、代理)有 ≥ 1 TRX 的门槛,解质押作为出金没有这个下限:金额只要大于 0 sun、且不超过已质押总量即可。
  • 未到期的解质押最多 32 笔。达到 32 笔上限后,须等部分记录到期提取,才能再发起新的解质押。剩余次数可通过 wallet/getavailableunfreezecount 查询。
  • 已代理的 TRX 不能直接解质押 — 须先撤销代理(见资源代理)。
  • 解质押会回收 TRON Power — 见下方 TRON Power 回收
  • 合并自动提取 — 发起新解质押时,若此前有解质押已过 14 天,网络会在同一笔交易中自动提取到期金额,无需再单独调用 withdrawexpireunfreeze。提取额记录在交易的 withdraw_expire_amount 字段(查 wallet/gettransactioninfobyid)。

TRON Power 回收

从 Stake 2.0 解质押时,等量 TRON Power(TP)会从账户回收,顺序如下:

  1. 优先回收闲置(未投票)的 TP。 若有未使用的 TP,优先从这部分回收。
  2. 若不足,再从每个已投票的 SR 按比例回收已投的 TP。

从某个 SR 撤销投票的计算公式:

从某 SR 撤销的投票数 =
  需回收的总投票数
  × (为该 SR 投出的票数 / 为所有 SR 投出的总票数)

示例

账户 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 票撤销

解质押后,账户 A 剩余 500 TP,全部处于已投票状态:SR 1 有 300 票,SR 2 有 200 票。

如何取消待处理的解质押操作

Stake 2.0 支持取消所有待处理解质押操作,立即重新质押,无需等待 14 天。使用 wallet/cancelallunfreezev2

BASE_URL=https://api.trongrid.io   # 示例 — 可替换为任意 TRON 节点(TronGrid、第三方或自托管)
curl -X POST ${BASE_URL}/wallet/cancelallunfreezev2 \
  -d '{
    "owner_address": "TTGhREx2pDSxFX555NWz1YwGpiBVPvQA7e",
    "visible": true
  }'

操作说明:

  • 仍在等待期内的所有解质押操作将被取消,其 TRX 立即重新质押,恢复解质押前相应的带宽 / 能量和 TP。
  • 已过 14 天等待期的解质押操作不会被取消——该部分 TRX 会在同一笔交易中自动提取到账户的可用余额。

交易信息中包含两个相关字段(可通过 wallet/gettransactioninfobyid 查询):

  • cancel_unfreezeV2_amount — 从取消的解质押操作中重新质押的 TRX
  • withdraw_expire_amount — 从已到期解质押操作中提取的 TRX

cancelallunfreezev2 API 受链参数 #77getAllowCancelAllUnfreezeV2)控制。主网已经处于激活状态。

关于 Stake 1.0 的解质押说明

仍在 Stake 1.0 下质押的 TRX,使用 Stake 1.0 API(而非 unfreezebalancev2)。注意:Stake 1.0 解质押会一次性清空所有投票,与 Stake 2.0 按比例回收 TP 的方式不同。


相关资源