Forwarder Addresses
Overview
BitGo wallets utilize forwarder smart contracts to enable multiple receive addresses for ETH-like assets.
By default, forwarders automatically consolidate native coins and tokens deposited into your receive addresses to your base address. If you set the flushForwardersManually
parameter to true, you must initiate a consolidation transaction for tokens to the base address yourself. However, even if this parameter is enabled, native coins continue to automatically consolidate.
BitGo enables automatic consolidation transactions by using your Gas Tanks - fee addresses controlled by the BitGo key. Despite being single signature, forwarder addresses are secure, because their smart contracts only enable sending assets to the base address of the wallet.
Compatibility
Forwarder | Wallet v0 | Wallet v1 | Wallet v2 | Wallet v3 | Wallet v4 | Wallet v5 |
---|---|---|---|---|---|---|
v0 | ✅ | |||||
v1 | ✅ | ✅ | ||||
v2 | ✅ | |||||
v3 | ✅ | |||||
v4 | ✅ | ✅ |
Differences
Your asset determines your wallet version, which determines your forwarder version. The following outlines the differences between each version:
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.
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 flushing from the fee address, you can manually flush tokens from 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 Fees
Gas fees related to forwarders include the following:
- Creating a forwarder address - free
- Deploying a v0 forwarder address - 102,000 gas limit
- Receiving assets to a v1 or v2 forwarder address for the first time and thus deploying the address - 154,000 gas limit
- Transferring assets from a forwarder to the base address - 63,662 gas limit