跳转至

质押与资源

TRON 账户质押(冻结)TRX 以获取带宽能量,并获得投票权。共有两套质押机制:

  • Stake 1.0 —— freeze-balance / unfreeze-balance。质押的 TRX 会被锁定固定时长。
  • Stake 2.0 —— freeze-balance-v2 / unfreeze-balance-v2 以及资源代理。这是当前机制; 解除质押需要经过一段可提取的等待期。

全文使用的资源码:

资源
0 BANDWIDTH(带宽)
1 ENERGY(能量)
2 TRON_POWER(投票权;仅 REPL 的 freeze/unfreeze,且受网络开关限制)

2(TRON_POWER)只被 REPL 的 freeze/unfreeze 命令接受 —— FreezeBalance/UnfreezeBalance(Stake 1.0)与 FreezeBalanceV2/UnfreezeBalanceV2(Stake 2.0)。 即便如此也受网络开关限制:只有当链参数 getAllowNewResourceModel 启用时,节点才允许用码 2 冻结, 而主网并未启用——因此实际上只有 0/1 可用。标准 CLI 中每条带 --resource 的命令都会在本地 前置拒绝 0(BANDWIDTH)/1(ENERGY)以外的值并报用法错误。代理命令(两种模式)同样只接受 01

金额以 SUN 为单位(1 TRX = 1,000,000 SUN)。

与别处一样,REPL 用可选的首参 [OwnerAddress] 支持多签;标准 CLI 用 --owner + --multi。本页所有 改变状态的质押/代理命令都需要鉴权;页尾的资源查询则不需要。

Stake 1.0

冻结余额 —— freeze-balance / FreezeBalance

已废弃

freeze-balance废弃 —— 新的质押请使用 freeze-balance-v2(Stake 2.0)。它仅为兼容性 保留。(unfreeze-balance 仍然可用,用于释放已有的 Stake 1.0 仓位。)

java -jar build/libs/wallet-cli.jar --network nile freeze-balance \
  --amount 1000000 --duration 3 --resource 1
  • --amount(必填,SUN)、--duration(必填,天)。
  • --resource(可选,0/1,默认 0)。标准 CLI 只接受 0/1;若要为 TRON_POWER (投票权,码 2)冻结,请使用 REPL 的 FreezeBalance
  • --receiver(可选)—— 把获得的资源代理给另一个地址。
  • --owner--multi(可选)。
FreezeBalance [OwnerAddress] frozen_balance frozen_duration [ResourceCode] [receiverAddress]

ResourceCode0 BANDWIDTH,1 ENERGY,2 TRON_POWER。

解冻余额 —— unfreeze-balance / UnfreezeBalance

java -jar build/libs/wallet-cli.jar --network nile unfreeze-balance --resource 1
  • --resource(可选,默认 0)。
  • --receiver(可选)—— 若该资源曾被代理则必填。
  • --owner--multi(可选)。
UnfreezeBalance [OwnerAddress] ResourceCode [receiverAddress]

Stake 2.0

冻结余额 v2 —— freeze-balance-v2 / FreezeBalanceV2

无时长:质押的 TRX 一直保持质押,直到你显式解除。

java -jar build/libs/wallet-cli.jar --network nile freeze-balance-v2 \
  --amount 1000000 --resource 1
  • --amount(必填,SUN)、--resource(可选,默认 0)。
  • --owner--permission-id--multi(可选)。
FreezeBalanceV2 [OwnerAddress] frozen_balance [ResourceCode]

解冻余额 v2 —— unfreeze-balance-v2 / UnfreezeBalanceV2

开始解除指定数量的质押。该 TRX 在网络的解冻等待期过后变为可提取(见 withdraw-expire-unfreeze)。

java -jar build/libs/wallet-cli.jar --network nile unfreeze-balance-v2 \
  --amount 1000000 --resource 1
  • --amount(必填,SUN)、--resource(可选,默认 0)。
  • --owner--permission-id--multi(可选)。
UnfreezeBalanceV2 [OwnerAddress] unfreezeBalance ResourceCode

提取已到期的解冻 —— withdraw-expire-unfreeze / WithdrawExpireUnfreeze

提取解冻等待期已过的 TRX,将其返还到可花费余额。

java -jar build/libs/wallet-cli.jar --network nile withdraw-expire-unfreeze
  • --owner--multi(可选)。
WithdrawExpireUnfreeze [OwnerAddress]

取消所有解冻 —— cancel-all-unfreeze-v2 / CancelAllUnfreezeV2

取消所有待处理的 v2 解除质押请求,将这些 TRX 返还到质押状态。

java -jar build/libs/wallet-cli.jar --network nile cancel-all-unfreeze-v2
  • --owner--multi(可选)。
CancelAllUnfreezeV2 [owner_address]

资源代理

代理资源 —— delegate-resource / DelegateResource

把质押得到的带宽/能量出借给另一个账户。

java -jar build/libs/wallet-cli.jar --network nile delegate-resource \
  --amount 1000000 --resource 1 --receiver TXyz... --lock --lock-period 86400
  • --amount(必填,SUN)、--resource(必填,0/1)、--receiver(必填)。
  • --lock(可选标志)—— 锁定该代理;--lock-period(可选)以区块数设置锁定时长。
  • --owner--multi(可选)。
DelegateResource [OwnerAddress] balance ResourceCode ReceiverAddress [lock] [lockPeriod]

ResourceCode0 BANDWIDTH,1 ENERGY。locktrue/false

取消代理资源 —— undelegate-resource / UnDelegateResource

收回先前代理出去的资源。

java -jar build/libs/wallet-cli.jar --network nile undelegate-resource \
  --amount 1000000 --resource 1 --receiver TXyz...
  • --amount(必填)、--resource(必填)、--receiver(必填)。
  • --owner--multi(可选)。
UnDelegateResource [OwnerAddress] balance ResourceCode ReceiverAddress

资源查询(无需鉴权)

账户带宽 —— get-account-net / GetAccountNet

java -jar build/libs/wallet-cli.jar --network nile get-account-net --address TXyz...
  • --address(必填)。
GetAccountNet Address

账户资源 —— get-account-resource / GetAccountResource

java -jar build/libs/wallet-cli.jar --network nile get-account-resource --address TXyz...
  • --address(必填)。
GetAccountResource Address

已代理资源 —— get-delegated-resource(-v2) / GetDelegatedResource(V2)

java -jar build/libs/wallet-cli.jar --network nile get-delegated-resource \
  --from TFrom... --to TTo...
java -jar build/libs/wallet-cli.jar --network nile get-delegated-resource-v2 \
  --from TFrom... --to TTo...
  • --from(必填)、--to(必填)。
GetDelegatedResource   FromAddress ToAddress
GetDelegatedResourceV2 FromAddress ToAddress

代理资源账户索引 —— get-delegated-resource-account-index(-v2)

java -jar build/libs/wallet-cli.jar --network nile \
  get-delegated-resource-account-index --address TXyz...
java -jar build/libs/wallet-cli.jar --network nile \
  get-delegated-resource-account-index-v2 --address TXyz...
  • --address(必填)。
GetDelegatedResourceAccountIndex   Address
GetDelegatedResourceAccountIndexV2 Address

最大可代理额度 —— get-can-delegated-max-size / GetCanDelegatedMaxSize

java -jar build/libs/wallet-cli.jar --network nile get-can-delegated-max-size \
  --owner TXyz... --type 1
  • --owner(必填)、--type(必填,0 BANDWIDTH / 1 ENERGY)。
GetCanDelegatedMaxSize [OwnerAddress] type

type0 BANDWIDTH,1 ENERGY。只给 type 时,使用已登录地址。

可用解冻次数 —— get-available-unfreeze-count / GetAvailableUnfreezeCount

java -jar build/libs/wallet-cli.jar --network nile get-available-unfreeze-count --address TXyz...
  • --address(必填)。
GetAvailableUnfreezeCount [OwnerAddress]

可提取的解冻金额 —— get-can-withdraw-unfreeze-amount / GetCanWithdrawUnfreezeAmount

java -jar build/libs/wallet-cli.jar --network nile get-can-withdraw-unfreeze-amount \
  --address TXyz... --timestamp 1700000000000
  • --address(必填)、--timestamp(可选,毫秒;默认为当前时间)。
GetCanWithdrawUnfreezeAmount [OwnerAddress] timestamp

timestamp(毫秒)为必填。只给 timestamp 时,使用已登录地址。