Confirmed vs Spendable vs Locked balances
When you query a BitGo wallet via the API or view it in the UI, you'll see several different balance values. These aren't bugs — they represent different views of your funds based on confirmation status, spending eligibility, and protocol constraints. Understanding the differences is essential for building reliable integrations and accurately reporting available funds.
Balance Types at a Glance
| API Field | UI Label | What It Represents |
|---|---|---|
| balanceString | Total Balance | Everything in the wallet, including unconfirmed incoming transactions |
| confirmedBalanceString | Confirmed Balance | Only funds with at least 1 blockchain confirmation |
| spendableBalanceString | Available to Spend | Funds you can actually send right now |
| lockedBalanceString | Locked Balance | Funds that are restricted and cannot be spent |
Total Balance (balanceString)
The sum of all funds across all wallet addresses (base address and receive addresses), including unconfirmed transactions. This is the broadest view of your wallet's holdings.
Includes:
- Confirmed funds (1+ blockchain confirmations)
- Unconfirmed incoming deposits (0 confirmations)
- Unconfirmed change outputs from your own transactions
Excludes:
- Staked amounts (for coins that support staking)
Confirmed Balance (confirmedBalanceString)
The subset of your total balance that has at least one blockchain confirmation. This is the most reliable measure of funds that have been validated by the network.
- For UTXO coins (BTC, LTC, etc.): Includes all unspent transaction outputs (UTXOs) with 1 or more confirmations.
- For account-based coins (ETH, SOL, XRP, etc.): Reflects the on-chain balance across all wallet addresses after at least one confirmation.
Note: For UTXO coins, the confirmed balance also accounts for outgoing spends — even before the spending transaction has a confirmation
Spendable Balance (spendableBalanceString)
The amount you can actually send from the wallet right now. This is the balance you should check before initiating a transaction.
All coins:
- Excludes pending approvals (multi-sig wallets), pending transaction requests (MPC wallets), Send queue items (transactions in progress)
UTXO coins (BTC, LTC, BCH, etc.):
- Includes confirmed UTXOs plus unconfirmed change outputs from your own transactions
- Excludes reserved UTXOs (locked for pending transactions), frozen UTXOs, and inscribed UTXOs (Ordinals/BRC-20)
Account-based coins (ETH, SOL, DOT, XRP, etc.):
- Reflects the balance on the base address only (not receive addresses — those funds must be consolidated first)
- Subtracts any protocol-enforced minimum balance (see below)
- Subtracts any locked or reserved amounts
Important: spendableBalanceString does not account for transaction fees. For the maximum amount you can send in a single transaction (after fees), use the Maximum Spendable endpoint.
Locked Balance (lockedBalanceString)
Funds that exist in your wallet but are restricted from spending. There are several reasons funds may be locked:
| Lock Type | Affected Coins | Description |
|---|---|---|
| Protocol Reserve | XRP, XLM, DOT, ALGO, SOL, NEAR, etc. | A minimum balance that must remain in the wallet, enforced by the blockchain protocol. |
| Platform Lock | ETH, Cosmos-based, SUI | Funds locked for vesting schedules, staking operations, or other platform-level restrictions. |
| Pending Transaction | All coins | UTXOs or funds reserved as inputs for transactions that are pending approval or awaiting broadcast. |
Note: Locked balances are usually indicative of a Vesting Distribution. Locked reserves for coins are not reflected in this amount. The vesting distribution is timed based on a schedule determined by the specific coin foundation (for example SUI, Zeta, SEI, etc.)
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article