Unstake from Go Account

Overview

To transact using your staked assets, including the rewards you earned, you must first unstake them. Unstaked assets stop receiving rewards. When unstaking, some assets have a defined cooldown period during which the asset can't be used. Once the delegated amount is unlocked, you can transfer the assets out of your Go Account.

When you submit an unstaking request for your Go Account, BitGo makes a series transfers. However, you only need to create the initial unstaking request - no signatures are required.

Prerequisites

1. Create Unstaking Request

Create a unstaking request by specifying the unstaking details and sending them to BitGo.

Endpoint: Finalize staking request for Go Account

export COIN="<ASSET_ID>"
export GO_ACCOUNT_ID="<YOUR_GO_ACCOUNT_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export AMOUNT="<AMOUNT_IN_BASE_UNITS>"

curl -X GET \
  https://app.bitgo-test.com/api/go-staking/v1/$COIN/accounts/$GO_ACCOUNT_ID/requests/finalize \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "type": "UNSTAKE",
    "amount": "'"$AMOUNT"'"
  }'
const goStakingWallet = wallet.toGoStakingWallet();
const goStakingRequest = await goStakingWallet.unstake({
  amount: '<AMOUNT_IN_BASE_UNITS>',
});

Step Result

BitGo generates an unstaking request.

{
  "id": "487fb12a-e11e-4c3d-9f6c-4c85214af88d",
  "type": "UNSTAKE",
  "coin": "tsol",
  "status": "NEW",
  "goSpecificStatus": "NEW",
  "statusModifiedDate": "2025-08-15T19:36:15.560401474Z",
  "createdDate": "2025-08-15T19:36:15.560363Z",
  "amount": 3000000
}

Next

You can view the completed unstaking transaction in BitGo. Depending on the blockchain, it may have a cooldown period before you can create further transactions with the asset.

See Also