Solo Stacking
This guide covers everything you need to stack independently as a solo stacker: starting, extending, increasing, and stopping your stacking position.
This guide assumes you are familiar with stacking at a conceptual level. If not, read the Stacking concept guide first.
Solo stacking requires meeting the minimum STX threshold and either running a signer or collaborating with one. The minimum amount is dynamic and can be found at the pox endpoint under min_threshold_ustx (1 STX = 1,000,000 uSTX).
Degen Lab provides a solo stacking dapp that lets you stack without running your own signer, as they operate one on your behalf. This is likely the easiest option for solo stacking.
If you don't meet the stacking minimum, see the Stack with a Pool guide instead.
Prerequisites
Before you begin, make sure you have:
A running signer or a signer you are collaborating with. See the Run a Signer guide.
A signer key signature for the stacking transaction you want to make. See Generate a Signer Signature.
Sufficient STX: at or above the minimum stacking threshold.
There are several ways to make stacking transactions. This guide covers using Leather Earn, which is the simplest option. You can also call the stacking functions directly from the deployed contract in the explorer, or use the @stacks/stacking NPM package.
The functions and parameters are the same regardless of method.
Start Stacking
Call stack-stx
stack-stxThe arguments are:
Amount: Denoted in uSTX (1 STX = 1,000,000 uSTX)
PoX Address: the BTC wallet address where you will receive stacking rewards
Start burn height: the current BTC block height
Lock period: the number of cycles to lock for (between 1 and 12)
Signer key: the public key that your signer is using
Signer signature: a signature that proves control of this signer key (see Generate a Signer Signature)
Max Amount: used to validate the signer signature; represents the maximum number of uSTX that can be stacked in this transaction
Auth Id: used to validate the signer signature; a random integer that prevents re-use of this particular signature
Using Leather Earn
Visit Leather Earn and click the "Stack independently" button on the home page. You will be prompted to enter:
The amount of STX to lock
The duration (number of cycles) to lock for
Your BTC address for stacking rewards
Your signer public key
Your signer key signature
Auth ID
Max amount
When using Leather Earn, you can paste the JSON output from the signature generation step directly into the form.
Acting as a signer vs. working with one
Option 1: Act as a signer. If you run your own signer, ensure it is running during the prepare phase (last 100 blocks before the next cycle). This is when distributed key generation (DKG) occurs. You don't need to do anything actively during this period other than monitoring your signer.
Option 2: Work with a signer. If you don't want to run a signer yourself, you can collaborate with an existing one. You'll need their signer key and a signer signature generated for your stacking transaction. Degen Lab's solo stacking dapp simplifies this process by providing their signer for you to use.
Extend Your Lock Period
You can extend your lock period while actively stacking by calling stack-extend. You can also rotate your signer key and change your Bitcoin reward address as part of this call.
The arguments are:
Extend count: the number of cycles to add to your lock period. The resulting total lock period cannot exceed 12. For example, if you have 6 cycles remaining, the maximum you can extend is 6.
Pox Address: the BTC address to receive rewards. This can be changed from your original address.
Signer public key: the public key used for signing. This can stay the same, or you can rotate to a new key. See Key and Address Rotation.
Signer signature: a signature proving control of your signing key (see Generate a Signer Signature)
Max Amount: used to validate the signer signature
Auth Id: used to validate the signer signature
Using Leather Earn
If you're already stacking, the Leather Earn home page will show a link to "view stacking details". From there, you can choose to extend. The form asks for:
The number of cycles to extend for
Your BTC address for rewards
Signer public key
Signer key signature
Auth ID
Max amount
Increase Your Stacked Amount
You can increase the amount of STX locked while actively stacking. The increased position takes effect starting with the next stacking cycle. Call the stack-increase function.
The arguments are:
Increase by: the amount of uSTX to add to your locked 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 (see Generate a Signer Signature)
Max Amount: used to validate the signer signature; represents the maximum number of uSTX (1 STX = 1,000,000 uSTX) that can be stacked in this transaction
Auth Id: used to validate the signer signature
Using Leather Earn
If you're already stacking, the home page will show a link to "view stacking details". From there, choose to increase. The form asks for:
The amount of STX to increase by
Signer public key
Signer key signature
Auth ID
Max amount
Stop Stacking
When stacking solo, your STX is locked for a fixed period defined when you initiated stacking or extended the lock period. No additional action is required to stop stacking. Your tokens unlock automatically when the lock period expires.
Both the stack-stx and stack-extend functions emit an event that includes the unlock-burn-height field. This is the burn block height at which your tokens will be automatically unlocked.
To avoid your position being extended, simply do not call stack-extend before the current lock period ends. Once the lock period expires, your STX will be returned to your account.
Monitoring your unlock
Use your wallet's interface or the Hiro Explorer to track the status of your lock period.
Hiro's API offers an endpoint to Get account STX balance, which includes the
burnchain_unlock_heightrepresenting when your STX unlock.
How Signer Registration Works
In the prepare phase before the next stacking cycle (last 100 blocks), the signer set is selected based on the amount of STX stacked. For solo stackers, the only transaction needed is stack-stx. Once it is confirmed during the first 2000 blocks of the current reward cycle, your signer will be registered in the next cycle's signer set.
It is critical that your signer is running during the prepare phase. This is when DKG occurs, and the signer automatically participates. No manual action is required beyond monitoring.
Last updated
Was this helpful?