---
updatedAt: 2026-05-20T06:31:59.000Z
---

Fetch the complete documentation index at: https://docs.blockdaemon.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Post Withdrawal Intent

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

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Staking API",
    "description": "The Blockdaemon Staking API simplifies and streamlines institutional cryptocurrency staking. The API allows developers to interact with blockchain networks and perform various staking-related operations, such as delegating and undelegating tokens, in a single, unified interface.\n\nWith the Staking API, you can quickly and easily build and deploy applications that automate staking activities and increase efficiency in your blockchain operations.",
    "contact": {
      "name": "Blockdaemon",
      "email": "info@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "https://assets-global.website-files.com/633c5e06513fa35f3391a5f9/645d33beb6fa65f6cfb95eb8_BD%20Logo%20Stack%20-%20Purple.svg",
      "backgroundColor": "#fafafa",
      "altText": "Blockdaemon logo"
    }
  },
  "x-readme": {
    "explorer-enabled": false
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/boss"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "description": "When signing up for a staking account, you are provided with an API key.\n\nTo authenticate a Staking API request, pass your API key in the `X-API-Key` header.",
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      }
    },
    "parameters": {
      "PolkadotNetwork": {
        "name": "network",
        "in": "path",
        "description": "Polkadot network",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/PolkadotNetwork"
        }
      }
    },
    "responses": {
      "InternalServerError": {
        "description": "Internal server error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "InvalidRequest": {
        "description": "Invalid request.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "Error response envelope",
              "required": [
                "code",
                "message"
              ],
              "properties": {
                "code": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Error code",
                  "example": 400
                },
                "message": {
                  "type": "string",
                  "description": "Error Message",
                  "example": "Detailed human-readable diagnostic message regarding any invalid request parameters"
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Header 'X-API-Key' missing.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UnauthorizedError"
            }
          }
        }
      }
    },
    "schemas": {
      "CustomerId": {
        "type": "string",
        "description": "Unique identifier for a customer",
        "example": "SatoshiNakamoto-xUYJbPw9hw",
        "minimum": 1
      },
      "Error": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 500
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A descriptive error message"
          }
        }
      },
      "NewWithdrawIntentPolkadot": {
        "type": "object",
        "description": "Request object to create a new withdrawal intent for Polkadot.",
        "properties": {
          "customer_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account that will be affected by the withdrawal intent."
          },
          "controller_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account that will be affected by the withdrawal intent.\nSame as customer_address. Deprecated - will be removed in a later version."
          }
        }
      },
      "PolkadotAddress": {
        "type": "string",
        "description": "Polkadot account address in [SS58 format](https://wiki.polkadot.network/docs/learn-account-advanced#address-format).",
        "format": "base58",
        "pattern": "^[1-9A-HJ-NP-Za-km-z]{44}$",
        "example": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj"
      },
      "PolkadotNetwork": {
        "type": "string",
        "description": "Coin network",
        "enum": [
          "mainnet",
          "kusama",
          "westend"
        ]
      },
      "UnauthorizedError": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 401
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A human-readable diagnostic message detailing any authorization failure"
          }
        }
      },
      "UnsignedTransactionPolkadotWithdrawalIntent": {
        "type": "string",
        "format": "base64",
        "description": "Generated Polkadot unsigned transaction for the provided withdrawal intent details.",
        "example": "0x1c04060301000000"
      },
      "WithdrawalIntentPolkadot": {
        "type": "object",
        "description": "Polkadot withdrawal intent response",
        "required": [
          "unsigned_transaction"
        ],
        "properties": {
          "unsigned_transaction": {
            "$ref": "#/components/schemas/UnsignedTransactionPolkadotWithdrawalIntent",
            "description": "Unsigned withdraw intent transaction.\nOnce this transaction is signed, broadcasted to the network and included in the canonical history of the chain, the unbonded stake controlled by this customer account will be withdrawn from its stake pool."
          },
          "customer_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account whose unbonded stake will be withdrawn."
          },
          "controller_address": {
            "$ref": "#/components/schemas/PolkadotAddress",
            "description": "Address of the customer account whose unbonded stake will be withdrawn.\nSame as customer_address. Deprecated - will be removed in a later version."
          }
        }
      },
      "WithdrawIntentId": {
        "type": "string",
        "format": "uuid",
        "description": "Unique idenifier for a withdrawal intent.",
        "example": "4ba06e89-8c29-483e-ac36-318de5aa7364"
      },
      "PolkadotWithdrawIntent": {
        "type": "object",
        "description": "Result of a new withdrawal intent request.",
        "required": [
          "withdraw_intent_id"
        ],
        "properties": {
          "protocol": {
            "type": "string",
            "enum": [
              "polkadot"
            ]
          },
          "network": {
            "$ref": "#/components/schemas/PolkadotNetwork"
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "withdraw_intent_id": {
            "$ref": "#/components/schemas/WithdrawIntentId"
          },
          "polkadot": {
            "$ref": "#/components/schemas/WithdrawalIntentPolkadot"
          }
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/v1/polkadot/{network}/withdrawal-intents": {
      "parameters": [
        {
          "$ref": "#/components/parameters/PolkadotNetwork"
        }
      ],
      "post": {
        "summary": "Post Withdrawal Intent",
        "operationId": "postPolkadotWithdrawalIntent",
        "tags": [
          "Polkadot"
        ],
        "description": "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.\n\nThe withdrawal will take place as soon as the user signs and broadcasts the transaction to the Polkadot network.\n\nExplanation: 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.\n\nThe customer account used can be a stash account or a proxy (staking or non-transfer) for a stash account.\n\n**Example (for the Westend network):** - Submitted:\n    - customer_address: 5CF33r36TUbcSz4KxXo5ApzAW9Dtf8EkfvTQppiEEd9HfAZ6\n- Returned:\n    - customer_address: 5CF33r36TUbcSz4KxXo5ApzAW9Dtf8EkfvTQppiEEd9HfAZ6\n    - unsigned_transaction: 0x1c04060301000000",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewWithdrawIntentPolkadot"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolkadotWithdrawIntent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Polkadot",
      "description": "Polkadot endpoints"
    }
  ]
}
```