在TRON网络上质押

TRON 网络使用三种系统资源:

如何质押获取系统资源

能量和带宽资源由帐户所有者通过质押来获取,请参考wallet/freezebalancev2了解如何通过HTTP API完成质押操作、参考Stake2.0 Solidity API了解如何通过合约完成质押操作。

TRON通过质押机制分配网络资源。质押TRX除了可以获取带宽或者能量资源外,还将同时获得与质押量等量的投票权(TRON Power,简称TP),质押1TRX,获得1TP。质押获取到的带宽或者能量资源用于支付交易费用,获取到的投票权用于给超级代表投票以获取投票奖励。

解质押操作会释放对应的资源。

如何代理资源

账户在通过质押获取到能量或者带宽资源后,可以通过代理操作将资源代理给其它地址,也可以通过取消代理操作收回分配出去的资源,代理资源需要注意以下情况:

  • 只有能量和带宽可以被代理给其他地址,投票权无法被代理
  • 只有Stake2.0 质押获取且未使用的资源可以代理给其它地址
  • 只能代理给一个已激活的外部账户地址,不能代理给合约地址

可以通过 wallet/getcandelegatedmaxsize 接口查询账户某种资源的可供代理份额。代理资源时可采用时间锁,如果采用了时间锁,完成资源代理后,需要等待3天后才能取消对该地址的资源代理, 锁定期间,如果用户对同一个地址再次进行了资源代理,将重置3天等待时间。如果不采用时间锁,资源代理后,可立刻取消代理。

如何解质押

完成TRX质押后可随时解质押,解质押后需要等待14天,才可以将解质押的本金提取到自己的账户中,14天是TRON网络第70号参数,可以被网络治理提议投票修改。请参考 unfreezebalancev2了解如何通过HTTP API完成解质押操作。

可多次分批解质押,但只允许最多同时进行32笔解质押操作,也就说当用户发起第一笔解质押,在这笔解质押的资金达到可提取状态之前,只能再发起31笔解质押操作。可通过getavailableunfreezecount接口查询剩余解质押次数。

已经代理出去的资源对应的TRX不可被解质押,解质押除了会失去等量的资源份额外,还将失去等量的TP资源。

在执行解质押时,如果存在未领取的投票奖励,会自动将投票奖励提取到账户内,如果存在已过锁定期的之前解质押的本金,那么本次解质押操作还将同时将已过锁定期的解质押本金提取到账户内,可通过gettransactioninfobyid API 查询一笔交易中提取到的投票奖励withdraw_amount 及提取到的已过锁定期的本金数量withdraw_expire_amount

投票权资源回收

解锁在Stake2.0阶段质押的TRX后,会失去等量的投票权,系统优先回收账户内空闲的投票权,只有空闲的投票权不够回收时, 才会根据需要撤销一部分账户投票,如果用户投票给了多个超级代表, 将按照比例从每个超级代表撤销一定数量的投票,并将对应的投票权回收。从每个SR撤销的投数的计算公式为:

从当前超级代表撤销的票数 = 总撤票数 * (给当前超级代表的投票数 / 该账户总投票数)

举个例子,假设A总共质押了2,000TRX,并获取到2,000 TRON Powner,其中的1000 TRON Power投票给了2个超级代表,分别为600票和400票,账户中剩余1000 TRON Power。此时,A解质押1,500TRX,这意味着需要从A账户中回收1,500 TRON Powner, 在这种情况下,会优先回收A账户中空闲的1000 TRON Power,另外会分别从2个超级代表撤销300票和200票,然后回收这500 TRON Powner。这里撤票的计算方式如下:

  • 超级代表1撤票数 = 500 * (600 / 1,000) = 300
  • 超级代表2撤票数 = 500 * (400 / 1,000) = 200

目前TRON网络使用的是Stake2.0质押机制,但Stake1.0 质押获得的资源和投票继续有效,在Stake 1.0质押的TRX,仍然可以通过Stake1.0 API赎回,但需要注意的是,如果解质押Stake 1.0质押的TRX,会撤销账户所有的投票。

API

下表为质押模型相关接口及其说明:

API描述
freezebalancev2质押
unfreezebalancev2解质押
unfreezebalance解锁在Stake 1.0阶段质押的TRX
delegateresource资源代理
undelegateresource取消资源代理
withdrawexpireunfreeze提取已过锁定期的解质押本金
getavailableunfreezecount查看剩余解质押次数
getcanwithdrawunfreezeamount查看可提取的已过锁定期的解质押本金
getcandelegatedmaxsize查看可代理的资源份额数量
getdelegatedresourcev2查看某地址代理给目标地址的资源情况
getdelegatedresourceaccountindexv2查看某地址资源代理情况与资源被代理情况
getaccount查看账户质押情况、资源份额、解质押情况、投票情况
getaccountresource查看资源总量、已使用量、可用数量