Increase Stacked Position
This guide explains how to increase your stacked STX position. The process depends on your role:
Solo Stackers use the
stack-increase
function.Delegators must first revoke their current delegation using
revoke-delegate-stx
and then re-delegate with a higher amount to the same pool operator usingdelegate-stx
.Pool Operators increase their delegators' locked amount by calling
delegate-stack-increase
and then stacking the increased amount with eitherstack-aggregation-commit-indexed
(if not already committed) orstack-aggregation-increase
(if the commit has already been made).
Solo Stackers
Solo stackers can add more STX to their active stacking position by calling the stack-increase
function. The new amount takes effect from the next stacking cycle.
The stack-increase
function locks an additional amount of STX from your account. Your account must be actively stacking and not delegating, and you must have enough unlocked STX to cover the increase.
The arguments are:
Increase by: the amount of uSTX to add to your lock amount.
Signer public key: the public key used for signing. This can stay the same, or you can use a new key.
Signer signature: a signature proving control of your signing key
Max Amount: This parameter is used to validate the signer signature provided. It represents the maximum number of uSTX (1 STX = 1,000,000 uSTX) that can be stacked in this transaction.
Auth Id: This parameter is used to validate the signer signature provided. It is a random integer that prevents the re-use of this particular signer signature.
Delegators
Delegators have to increase their delegated amount in two steps.
Step 1: Revoke Your Current Delegation
Before increasing your delegation, cancel your current delegation through the revoke-delegate-stx
function, so that you can delegate an increased amount of STX afterwards.
Step 2: Delegate with a Higher Amount
After revoking, call the delegate-stx
function with your new, higher amount. This function does not directly delegate the STX, but rather allows the pool operator to issue the stacking lock on behalf of the user calling this function.
The arguments here are unchanged from previous versions of PoX:
Amount: Denoted in uSTX (1 STX = 1,000,000 uSTX)
Delegate to: the STX address of the pool operator they're delegating to. Note that this is different from the “signer key” used. Instead, this is the STX address that is used to make PoX transactions.
Until burn height: an optional argument representing the BTC block height when the delegation expires. If none is used, the delegation permission expires only when explicitly revoked.
Pox Address: an optional BTC address that, if specified, the signer must use to accept this delegation
Pool Operators
Pool operators can increase the total stacking amount through a two-step process. First, you have to update the delegation's locked amount with delegate-stack-increase
. Then, you can stack the increased amount by committing it in a future cycle, or increasing an already committed position.
Step 1: Increase the Locked Amount
The delegate-stack-increase
function allows a pool operator to add more STX to the existing locked position for a given delegator. It performs necessary checks and updates the delegation state with the increased amount.
The arguments are:
Stacker: the STX address of the delegator
Pox Address: The BTC address of the pool operator where they will receive the BTC rewards. If the delegator has set his own BTC address in the
delegate-stx
call, this address will have to be the same one, otherwise the contract call will fail.Increase by: the amount of uSTX to add to the delegator's locked amount.
Step 2: Stack the Increased Amount
Once the locked amount is updated, the operator must commit the change. There are two functions that can be used to stack the increased amount:
A. If the Commit Has Not Yet Been Made: stack-aggregation-commit-indexed
stack-aggregation-commit-indexed
This function stacks the total locked amount for an upcoming reward cycle. Note that the stack-aggregation-commit-indexed
function wraps the inner-stack-aggregation-commit
function. The wrapped inner function is included here.
The arguments are:
Pox Address: the BTC address to receive rewards
Reward-cycle: a reward cycle in the future (see the note above on passing the correct reward cycle)
Signer public key: the public key of your signer
Signer signature: A signature proving control of your signing key
Max Amount: This parameter is used to validate the signer signature provided. It represents the maximum number of uSTX (1 stx = 1,000,000 uSTX) that can be stacked in this transaction.
Auth Id: This parameter is used to validate the signer signature provided. It is a random integer that prevents the re-use of this particular signer signature.
B. If the Commit Has Already Been Made: stack-aggregation-increase
stack-aggregation-increase
If you have previously committed an amount, you can further increase the stacked position by calling stack-aggregation-increase
. This function adds an additional amount of STX to the already committed delegation.
The arguments are:
Pox Address: the BTC address to receive rewards
Reward Cycle: a reward cycle in the future (see the note above on passing the correct reward cycle)
Reward Cycle Index: the index returned by the successful
stack-aggregation-commit-indexed
function for the given cycleSigner signature: A signature proving control of your signing key
Signer public key: the public key of your signer
Max Amount: This parameter is used to validate the signer signature provided. It represents the maximum number of uSTX (1 stx = 1,000,000 uSTX) that can be stacked in this transaction.
Auth Id: This parameter is used to validate the signer signature provided. It is a random integer that prevents the re-use of this particular signer signature.
Sequential Process: First call
delegate-stack-increase
to update the locked amount of a delegation. Then, commit the change:Using
stack-aggregation-commit-indexed
if this is the first commit in the given cycle.Using
stack-aggregation-increase
if you have already committed in the cycle you want to increase.
Failing to commit (or properly increase after a commit) will result in the increased delegation not taking effect in upcoming stacking cycles.
Last updated
Was this helpful?