Unbond Transaction

The Unbond transaction reduces a validator’s stake. It carries an optional Amount that selects between two behaviours (the former standalone PartialUnbond transaction was folded into Unbond in the tx-taxonomy consolidation):

  • Amount == 0 (full unbond): the validator’s power is zeroed; it becomes inactive and can no longer participate in the sortition algorithm. After 21 days the whole stake can be withdrawn.
  • Amount > 0 (partial unbond): the validator keeps validating; the live stake is reduced by Amount, which is parked in a per-validator pending bucket. The parked amount stays slashable for the full unbonding lag and can be withdrawn (via a Withdraw transaction) only after the release height. A partial unbond must leave the remaining stake at or above the minimum stake (and the genesis-lock floor while it is in force).

This 21-day period is called the “unbond interval” and is defined in the consensus parameter. Unbonding is free — there are no fees associated with the unbond transaction.

The Payload Type for Unbond is 4.

Payload Structure

The unbond transaction has a payload that consists of the following fields:

FieldSize
Validator address21 bytes
AmountVariant
Delegate owner21 bytes (optional)
  • Validator address is the address of the validator that is unbonded.
  • Amount is the portion of stake to unbond. 0 means a full unbond (zero the validator’s power); a value greater than 0 means a partial unbond of that amount into the pending bucket.
  • Delegate owner is a legacy field from the older single-owner delegation scheme, retained on the wire for backward compatibility only.
ℹ️
Unbond reduces a validator/operator’s own stake. If you are a delegator in a pool, you do not use Unbond — you release your principal with an Undelegate transaction (which parks it for the same 21-day unbond interval), then a Withdraw once it matures. See Unbonding.
Last updated on