> ## Documentation Index
> Fetch the complete documentation index at: https://docs.avnu.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Initiate Withdraw

> Start unstaking process (21-day unbonding)

## Overview

Initiates withdrawal of staked STRK. After execution, tokens enter a 21-day unbonding period. During unbonding, tokens don't earn rewards. After 21 days, use `/claim-withdraw` to retrieve tokens.

<Warning>
  Tokens don't earn rewards during the 21-day unbonding period.
</Warning>

## Path Parameters

<ParamField path="poolAddress" type="string" required>
  Pool contract address
</ParamField>

<ParamField path="userAddress" type="string" required>
  User's wallet address
</ParamField>

## Request

<ParamField body="userAddress" type="string" required>
  User's wallet address
</ParamField>

<ParamField body="amount" type="string" required>
  Amount to unstake (hex format)
</ParamField>

## Response

<ResponseField name="chainId" type="string" required>
  Network identifier
</ResponseField>

<ResponseField name="calls" type="array" required>
  Transaction calls to execute
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://starknet.api.avnu.fi/staking/v3/pools/0x123abc/members/0x0456def/initiate-withdraw" \
    -H "Content-Type: application/json" \
    -d '{
      "userAddress": "0x0456def...",
      "amount": "0xde0b6b3a7640000"
    }'
  ```

  ```typescript TypeScript theme={null}
  async function initiateWithdraw(
    poolAddress: string,
    amount: string,
    account: Account
  ) {
    const response = await fetch(
      `https://starknet.api.avnu.fi/staking/v3/pools/${poolAddress}/members/${account.address}/initiate-withdraw`,
      {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          userAddress: account.address,
          amount
        })
      }
    );

    const { calls } = await response.json();
    const tx = await account.execute(calls);

    return tx.transaction_hash;
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "chainId": "0x534e5f4d41494e",
    "calls": [
      {
        "contractAddress": "0x123abc",
        "entrypoint": "initiate_withdraw",
        "calldata": ["0xde0b6b3a7640000", "0"]
      }
    ]
  }
  ```
</ResponseExample>
