# 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.&#x20;

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

2. **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).

3. **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.

4. **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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stackingdao.com/stackingdao/core-contracts/ststx-stacking-dao-core-v6.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
