Consolidations

Overview

For account-based assets, the spendable balance of a wallet is the balance of the assets in the base address. The spendable balance is the total amount available for withdrawal. The confirmed balance is the balance of the base address plus all the receive addresses. If a wallet has multiple receive addresses, you can obtain the maximum withdrawal amount by consolidating the balances from the receive addresses to the base address.

For Ethereum Virtual Machine (EVM) wallets, BitGo can enable automatic consolidations. For non-EVM wallets, you must manually consolidate balances. Consolidations aren't required for UTXO assets. You can determine if a wallet requires consolidations by calling the Get Wallet by ID endpoint and referencing the needsConsolidation field.

How it Works

Most EVM blockchains don't natively support multiple receive addresses. BitGo uses a forwarder smart contract to enable multiple receive addresses for such wallets. These receive addresses are controlled by the BitGo key. Despite being single signature, these addresses are secure, because their smart contracts only enable sending assets to the base address of the associated wallet. Being single signature also enables the consolidations to be automatic.

If you want to disable automatic consolidation of tokens, you can set the flushForwardersManually parameter to true. If true, you must manually consolidate tokens. However, even if enabled, native coins continue to automatically consolidate.

Exemptions

Some EVM blockchains don't require manual or forwarder-based consolidations. Instead, these networks utilize memo IDs or destination tags in conjunction with the base address. For these wallets, all deposited assets are immediately available in the spendable balance.

BlockchainIdentifierFee SourceFee Asset
AgoricMemo IDReceive AddressBLD
BabylonMemo IDReceive AddressAAA
CoreumMemo IDReceive AddressCORE
CosmosMemo IDReceive AddressATOM
Cronos POSMemo IDReceive AddressCRO
EOSMemo IDReceive AddressEOS
Fetch NativeMemo IDReceive AddressFET
HederaMemo IDReceive AddressHBAR
InitiaMemo IDReceive AddressINIT
InjectiveMemo IDReceive AddressINJ
Internet ComputerMemo IDReceive AddressICP
OsmosisMemo IDReceive AddressOSMO
PolymeshMemo IDReceive AddressPOLYX
ProvenanceMemo IDReceive AddressHASH
RuneMemo IDReceive AddressRUNE
SEIMemo IDReceive AddressSEI
StacksMemo IDReceive AddressSTX
StellarMemo IDReceive AddressXLM
ToncoinMemo IDReceive AddressTON
VaultaMemo IDReceive AddressVAULT
XRPDestination TagReceive AddressXRP
ZetachainMemo IDReceive AddressZETA

Wallet & Forwarder Versions

When creating wallets, the default wallet version differs depending on your asset and wallet type. If you want to use a specific wallet version, you can use the walletVersion parameter. Once you create a wallet, you can't change the version number. The wallet type is important, as it determines the forwarder version. There are functional differences in the forwarder versions, including v5 that doesn't automatically consolidate.

ForwarderWallet v0Wallet v1Wallet v2Wallet v3Wallet v4Wallet v5Wallet v6
v0
v1
v2
v3
v4
v5

Wallet Versions

  • v0 - Smart-contract wallet that deploys as soon as you create it.
  • v1 - Smart-contract wallet that deploys upon receiving assets, enabling you to save on fees for wallets that aren't yet in use. BitGo uses the CREATE2 opcode to create the address, but doesn't broadcast the creation transaction until an indexer detects the address received assets.
  • v2 - Same as v1, but with support for NFTs.
  • v3 - MPCv1 wallets with support for NFTs.
  • v4 - Same as v2, but optimized for EVM chains.
  • v5 - MPCv2 wallets with support for NFTs.
  • v6 - Same as v5, but with support for native MPC addresses.

Forwarder Versions

  • v0 - Deploys as soon as you create the address.
  • v1 - Deploys upon receiving assets, enabling you to save on fees for addresses that aren't yet in use. BitGo uses the CREATE2 opcode to create the address, but doesn't broadcast the creation transaction until an indexer detects the address received assets.
  • v2 - Same as v1, but with support for NFTs.
  • v3 - MPCv1 receive addresses.
  • v4 - Same as v2, but in addition to automatic consolidating from the fee address, you can manually transfer tokens from the base address.
  • v5 - A native MPC receive address that requires manual consolidations to the base address.

Note: Don't send CryptoPunks to forwarder addresses. CryptoPunks are nonstandard NFTs that must be sent to base addresses. In addition, CryptoPunks aren't compatible with MPC wallets.

To learn more about assets and wallet types, see the Coins and Tokens table.

Gas Tanks

Gas fees associated with forwarder consolidation are paid by your Gas Tanks. Gas tanks, like EVM receive addresses, are also smart contract addresses controlled by the BitGo key.

Gas fees for consolidation transactions are paid by the native assets held in your gas tanks. For example, to consolidate native Polygon or Polygon tokens on the Polygon network, your gas tank must have a sufficient balance of Polygon (POLYGON). However, there are a few protocols that use ETH to pay gas fees instead of the native assets.

Gas fees vary by asset and are impacted by the wallet and forwarder versions. The following are example gas fees for Ethereum v5 wallets with v4 forwarders:

  • Address Creation - Free.
  • Contract Deployment - ~250,000 gas units, paid by your gas tank upon receiving the first deposit.
  • Consolidating Coins - ~75,000 gas units, paid by the sender within the same transaction.
  • Consolidating Tokens - ~40,000 gas units, paid by your gas tank in a subsequent transaction.

Manual Consolidations

The following assets require you to manually consolidate wallet balances. Assets deposited to the receive addresses remain unavailable for withdrawal until you transfer them to the base address.

BlockchainNetwork TypeConsolidation TypeConsolidation MethodFee SourceFee Asset
AlgorandL1ManualConsolidation RequestReceive AddressALGO
AptosL1ManualConsolidation RequestGas TankAPT
BittensorL1ManualConsolidation RequestReceive AddressTAO
Canton CoinL1ManualConsolidation RequestGas TankSUI
CardanoHybridManualConsolidation RequestReceive AddressADA
CelestiaL1ManualConsolidation RequestReceive AddressTRX
Near ProtocolL1ManualConsolidation RequestReceive AddressNEAR
PolkadotL1ManualConsolidation RequestGas TankDOT
SolanaL1ManualConsolidation RequestGas TankSOL
SuiL1ManualConsolidation RequestReceive AddressSUI
TezosL1ManualConsolidation RequestGas TankXTZ
TronL1ManualConsolidation RequestReceive AddressTRX
VeChainL1ManualConsolidation RequestGas TankVET:VTHO

Automatic Consolidations

The following assets enable automatic consolidations. Upon deposit, the receive addresses uses smart contract forwarders to automatically transfer the assets to the base address.

Note: All v6 wallets require manual consolidations, even if the table below states that the blockchain has automatic consolidations. The v6 wallet uses a v5 forwarder, which is a native MPC address that doesn't automatically consolidate. To learn more, see Consolidations.

BlockchainNetwork TypeConsolidation TypeConsolidation MethodFee SourceFee Asset
ArbitrumEVMAutomaticSmart Contract ForwarderGas TankETH (on Arbitrum Network)
Avalanche-CEVMAutomaticSmart Contract ForwarderGas TankAVAXC
BaseEVMAutomaticSmart Contract ForwarderGas TankETH (on Base Network)
BerachainEVMAutomaticSmart Contract ForwarderGas TankBERA
BNBEVMAutomaticSmart Contract ForwarderGas TankBSC
CoreDAOEVMAutomaticSmart Contract ForwarderGas TankCOREDAO
EthereumEVMAutomaticSmart Contract ForwarderGas TankETH
Ethereum ClassicEVMAutomaticSmart Contract ForwarderGas TankETC
FlareEVMAutomaticSmart Contract ForwarderGas TankFLR
FlowEVMAutomaticSmart Contract ForwarderGas TankFLOW
Hyperliquid EVMEVMAutomaticSmart Contract ForwarderGas TankHYPEEVM
Kava EVMEVMAutomaticSmart Contract ForwarderGas TankKAVAEVM
MonadEVMAutomaticSmart Contract ForwarderGas TankMON
OasysEVMAutomaticSmart Contract ForwarderGas TankOAS
OptimismEVMAutomaticSmart Contract ForwarderGas TankETH (on Optimism Network)
PlasmaEVMAutomaticSmart Contract ForwarderGas TankXPL
PolygonEVMAutomaticSmart Contract ForwarderGas TankPOLYGON
SEI EVMEVMAutomaticSmart Contract ForwarderGas TankSEIEVM
SomniaEVMAutomaticSmart Contract ForwarderGas TankSOMI
SoneiumEVMAutomaticSmart Contract ForwarderGas TankETH (on Soneium Network)
SongbirdEVMAutomaticSmart Contract ForwarderGas TankSGB
SonicEVMAutomaticSmart Contract ForwarderGas TankSONIC
WeMixEVMAutomaticSmart Contract ForwarderGas TankWEMIX
WorldChainEVMAutomaticSmart Contract ForwarderGas TankETH (on Worldchain Network)
XDCEVMAutomaticSmart Contract ForwarderGas TankXDC
Zero GravityEVMAutomaticSmart Contract ForwarderGas Tank0G

See Also