stSTX: Stacking DAO Core V6

Stacking DAO Core V6 is the main entry point for all user-related actions such as depositing and withdrawing STX, looking up the stSTX/STX ratio or a withdrawal NFT position of a user.

The contract can be found here: https://explorer.hiro.so/txid/SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.stacking-dao-core-v6?chain=mainnet

Integrations

For wallets, CEXes and other protocols who want to integrate the Stacking DAO deposit/withdrawal logic, there are three important methods to take into account:

  1. Deposit

The deposit method can be initiated using the deposit method on the SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.stacking-dao-core-v6 contract.

This contract expects the following parameters

  • reserve - this is the Stacking DAO reserve contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.reserve-v1

  • commission-contract - this is the Stacking DAO commission contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.commission-v2

  • staking-contract - this is the Stacking DAO staking contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.staking-v0

  • direct-helpers - this is the Stacking DAO direct helpers contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.direct-helpers-v4

  • stx-amount - a positive integer value for the uSTX (micro-STX, 10^6) amount you want to stack and get stSTX in return for. For example, passing 1000000 will stack 1 STX.

  • referrer - an optional Stacks address, this accumulates referral points on the leaderboard

  • pool - should be set to none for now

  1. Initiate Withdrawal

When withdrawing, users can follow a two-step process, see https://docs.stackingdao.com/stackingdao/the-stacking-dao-app/withdrawing-stx for more information.

The initialisation of a withdrawal can be called using init-withdraw and expects the following parameters:

  • reserve - this is the Stacking DAO reserve contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.reserve-v1

  • direct-helpers - this is the Stacking DAO direct helpers contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.direct-helpers-v4

  • ststx-amount - a positive integer value for the ustSTX (micro-stSTX, 10^6) amount you want to unstack and get STX in return for. For example, passing 1000000 will unstack 1 stSTX.

When this call succeeds, the user will receive an NFT that represents their unstacking position and indicates the amount of STX they should receive after a given PoX cycle ends (this is always principal + yield).

  1. Withdrawal

Finally, once the PoX cycle ends after a given init-withdrawal call (but always before the last 288 blocks of a given cycle), the STX principal + yield can be withdrawn from Stacking DAO.

The withdrawal can be called using withdraw and expects the following parameters:

  • reserve - this is the Stacking DAO reserve contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.reserve-v1

  • commission-contract - this is the Stacking DAO commission contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.commission-v2

  • staking-contract - this is the Stacking DAO staking contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.staking-v0

  • nft-id - the ID of the NFT that was minted in the init-withdraw method previously.

After the withdrawal succeeds, the STX principal and yield amounts will be returned to the transaction sender's wallet.

  1. Instant Withdrawal

Instant withdrawal lets you withdraw your STX immediately using idle liquidity from the protocol, if idle liquidity is available. A 1% fee applies to Instant Unstack.

The instant withdrawal can be called using withdraw-idle and expects the following parameters:

  • reserve - this is the Stacking DAO reserve contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.reserve-v1

  • direct-helpers - this is the Stacking DAO direct helpers contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.direct-helpers-v4

  • commission-contract - this is the Stacking DAO commission contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.commission-v2

  • staking-contract - this is the Stacking DAO staking contract, and should always be set to `SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.staking-v0

  • ststx-amount - a positive integer value for the ustSTX (micro-stSTX, 10^6) amount you want to unstack and get STX in return for. For example, passing 1000000 will unstack 1 stSTX.

Last updated