---
title: "Post Withdrawal Intent"
method: POST
path: "/v1/polkadot/{network}/withdrawal-intents"
tags: ["Polkadot"]
---

# Post Withdrawal Intent

`POST /v1/polkadot/{network}/withdrawal-intents`

Returns an unsigned transaction to move the free (currently not staked) amount of DOT in the "staking" section of this account to its "general" section.

The withdrawal will take place as soon as the user signs and broadcasts the transaction to the Polkadot network.

Explanation: Some or all of the stake in the "staking" section might not be nominated (likely was deactivated through a Deactivation Intent). This amount can be nominated to some validator(s), but cannot be transferred to another account (spent). To be free for that, this amount must be moved to the "general" section of the account.

The customer account used can be a stash account or a proxy (staking or non-transfer) for a stash account.

**Example (for the Westend network):** - Submitted:
    - customer_address: 5CF33r36TUbcSz4KxXo5ApzAW9Dtf8EkfvTQppiEEd9HfAZ6
- Returned:
    - customer_address: 5CF33r36TUbcSz4KxXo5ApzAW9Dtf8EkfvTQppiEEd9HfAZ6
    - unsigned_transaction: 0x1c04060301000000

## Request body

- NewWithdrawIntentPolkadot — Request object to create a new withdrawal intent for Polkadot.
  - `customer_address` string, base58 — Polkadot account address in [SS58 format](https://wiki.polkadot.network/docs/learn-account-advanced#address-format).
  - `controller_address` string, base58 — Polkadot account address in [SS58 format](https://wiki.polkadot.network/docs/learn-account-advanced#address-format).

## Response `200`

Created

- PolkadotWithdrawIntent — Result of a new withdrawal intent request.
  - `protocol` 'polkadot'
  - `network` 'mainnet' | 'kusama' | 'westend' — Coin network
  - `customer_id` string — Unique identifier for a customer
  - `withdraw_intent_id` string, uuid, required — Unique idenifier for a withdrawal intent.
  - `polkadot` WithdrawalIntentPolkadot — Polkadot withdrawal intent response
    - `unsigned_transaction` string, base64, required — Generated Polkadot unsigned transaction for the provided withdrawal intent details.
    - `customer_address` string, base58 — Polkadot account address in [SS58 format](https://wiki.polkadot.network/docs/learn-account-advanced#address-format).
    - `controller_address` string, base58 — Polkadot account address in [SS58 format](https://wiki.polkadot.network/docs/learn-account-advanced#address-format).

## Other responses

- `400` — Invalid request.
- `401` — Unauthorized
- `500` — Internal server error

---

[API](https://skmtc.dev/blockdaemon/apis/staking-api.md) · [All operations](https://skmtc.dev/blockdaemon/apis/staking-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/blockdaemon/staking-api/revisions/f94e296a08a3/schema)
