(Staker only) Redelegate active stake on a validator, eventually moving
it to another
Internally, this instruction splits a validator stake account into its
corresponding transient stake account, redelegates it to an ephemeral
stake account, then merges that stake into the destination transient
stake account.
In order to rebalance the pool without taking custody, the staker needs
a way of reducing the stake on a stake account. This instruction splits
some amount of stake, up to the total activated stake, from the
canonical validator stake account, into its "transient" stake
account.
The instruction only succeeds if the source transient stake account and
ephemeral stake account do not exist.
The amount of lamports to move must be at least rent-exemption plus the
minimum delegation amount. Rent-exemption plus minimum delegation
is required for the destination ephemeral stake account.
The rent-exemption for the source transient account comes from the stake
pool reserve, if needed.
The amount that arrives at the destination validator in the end is
redelegate_lamports - rent_exemption if the destination transient
account does not exist, and redelegate_lamports if the destination
transient account already exists. The rent_exemption is not activated
when creating the destination transient stake account, but if it already
exists, then the full amount is delegated.
0. [] Stake pool
[s] Stake pool staker
[] Stake pool withdraw authority
[w] Validator list
[w] Reserve stake account, to withdraw rent exempt reserve
[w] Source canonical stake account to split from
[w] Source transient stake account to receive split and be
redelegated
[w] Uninitialized ephemeral stake account to receive redelegation
[w] Destination transient stake account to receive ephemeral stake
by merge
[] Destination stake account to receive transient stake after
activation
(Staker only) Redelegate active stake on a validator, eventually moving it to another Internally, this instruction splits a validator stake account into its corresponding transient stake account, redelegates it to an ephemeral stake account, then merges that stake into the destination transient stake account. In order to rebalance the pool without taking custody, the staker needs a way of reducing the stake on a stake account. This instruction splits some amount of stake, up to the total activated stake, from the canonical validator stake account, into its "transient" stake account. The instruction only succeeds if the source transient stake account and ephemeral stake account do not exist. The amount of lamports to move must be at least rent-exemption plus the minimum delegation amount. Rent-exemption plus minimum delegation is required for the destination ephemeral stake account. The rent-exemption for the source transient account comes from the stake pool reserve, if needed. The amount that arrives at the destination validator in the end is
redelegate_lamports - rent_exemptionif the destination transient account does not exist, andredelegate_lamportsif the destination transient account already exists. Therent_exemptionis not activated when creating the destination transient stake account, but if it already exists, then the full amount is delegated. 0.[]Stake pool[s]Stake pool staker[]Stake pool withdraw authority[w]Validator list[w]Reserve stake account, to withdraw rent exempt reserve[w]Source canonical stake account to split from[w]Source transient stake account to receive split and be redelegated[w]Uninitialized ephemeral stake account to receive redelegation[w]Destination transient stake account to receive ephemeral stake by merge[]Destination stake account to receive transient stake after activation[]Destination validator vote account[]Clock sysvar[]Stake History sysvar[]Stake Config sysvar[]System program[]Stake program