Withdrawal

The withdrawal process in the Polkadot network using the Staking API can be done following these steps:

  1. Create Unbond Request: unbond tokens within the Polkadot network that were previously staked or bonded.

It takes 7 days (28 eras) to unbond on Kusama, 28 days (28 eras) on Polkadot, and 12 hours (2 eras) on Westend.

  1. Withdraw Unbonded Request: withdraw tokens within the Polkadot network that were previously unbonded. Note that this request is available after the unbond period.

1. Create Unbond Request

  1. Send a POST request to /api/v1/polkadot/{network}/staking/unbond.

Example request (for westend):

curl --request POST \
     --url https://api.p2p.org/api/v1/polkadot/westend/staking/unbond \
     --header 'accept: application/json' \
     --header 'authorization: Bearer <token>' \
     --header 'content-type: application/json' \
     --data '
{
  "stashAccountAddress": "5H6ryBWChC5w7eaQ4GZjo329sEnhvjetSr6MBEt42mZ5tPw5",
  "amount": 3
}'
  • stashAccountAddress — main stash account address which keeps tokens for bonding.
  • amount — amount of tokens to unbond. DOT is used for the main network, KSM for Kusama, and WND for Westend.

Example response:

{
  "result": {
    "unsignedTransaction": "0xac0406000b00487835a302032c6eca5cdaa3e87d7f8e06d10015bf0508b52d301c8991af113d5cf49a53553f",
    "stashAccountAddress": "5H6ryBWChC5w7eaQ4GZjo329sEnhvjetSr6MBEt42mZ5tPw5",
    "amount": 3,
    "createdAt": "2023-08-15T15:07:54.795Z"
  }
}
  • unsignedTransactionunsigned transaction in hex format. Sign the transaction and submit it to the blockchain to perform the called action.
  • stashAccountAddress — main stash account address which keeps tokens for bonding.
  • amount — amount of tokens for bond operations. DOT is used for the main network, KSM for Kusama, and WND for Westend.
  • createdAt — timestamp of the transaction in the ISO 8601 format.
  1. Sign and broadcast the unsignedTransaction to the Polkadot network.

2. Withdraw Unbonded Request

  1. Send a POST request to /api/v1/polkadot/{network}/staking/withdrawal-unbonded.

Example request (for westend):

curl --request POST \
     --url https://api.p2p.org/api/v1/polkadot/westend/staking/withdrawal-unbonded \
     --header 'accept: application/json' \
     --header 'authorization: Bearer <token>' \
     --header 'content-type: application/json' \
     --data '
{
  "stashAccountAddress": "5H6ryBWChC5w7eaQ4GZjo329sEnhvjetSr6MBEt42mZ5tPw5"
}'
  • stashAccountAddress — main stash account address which keeps tokens for bonding.

Example response:

{
  "result": {
    "unsignedTransaction": "0xac0406000b00487835a302032c6eca5cdaa3e87d7f8e06d10015bf0508b52d301c8991af113d5cf49a53553f",
    "stashAccountAddress": "5H6ryBWChC5w7eaQ4GZjo329sEnhvjetSr6MBEt42mZ5tPw5",
    "createdAt": "2023-08-15T15:07:54.795Z"
  }
}
  • unsignedTransaction — unsigned transaction in hex format. Sign the transaction and submit it to the blockchain to perform the called action.
  • stashAccountAddress — main stash account address which keeps tokens for bonding.
  • createdAt — timestamp of the transaction in the ISO 8601 format.
  1. Sign and broadcast the unsignedTransaction to the Polkadot network.

What's Next?