Understanding Tokens and Native Coins on BitGo

Modified on Wed, 15 Jul at 3:52 PM

Understanding Tokens and Native Coins on BitGo



Tokens vs. Native Coins

Every blockchain has a native coin — the base currency used to pay transaction fees and transfer value. Examples include ETH on Ethereum, BTC on Bitcoin, SOL on Solana, and POL on Polygon.

Tokens are additional assets built on top of a blockchain using a token standard. They share the same network infrastructure as the native coin but represent separate assets. Common examples:

Blockchain
Native Coin
Token Standard
Example Tokens
EthereumETHERC-20USDC, USDT, LINK
SolanaSOLSPLUSDC, USDT
AlgorandALGOASA (Algorand Standard Assets)USDC, USDT
StellarXLMStellar TokensUSDC
TronTRXTRC-20USDT




How BitGo Handles Tokens

On BitGo, tokens are managed through the native coin's wallet. You do not need to create a separate wallet for each token. For example:

  • ERC-20 tokens (USDC, USDT, etc.) are stored and transacted through your Ethereum wallet.
  • SPL tokens on Solana are managed through your Solana wallet.
  • The same pattern applies across all supported blockchains.

Viewing token balances:

  • In the BitGo web UI, token balances appear alongside the native coin balance.
  • Via the API, token balances are returned in the tokens field of the wallet object.

Receiving tokens:

  • Tokens can be received at the same wallet address or receive addresses (forwarder addresses) that you use for the native coin.
  • On EVM chains, deposited tokens are automatically consolidated (flushed) from receive addresses to the wallet's base address.



Token Enablement

Some blockchains require you to explicitly enable a token before your wallet can receive it. This is a blockchain-level requirement, not a BitGo limitation.

  • Algorand (ASA) and Stellar (XLM) tokens require enablement. Enabling a token creates a trustline transaction on-chain, which signals to the network that your wallet accepts that token. A small fee in the native coin is charged for this transaction.
  • ERC-20 tokens (Ethereum, Polygon, Arbitrum, etc.) do not require enablement — any supported ERC-20 token can be received at your wallet address without prior setup.
  • Solana (SPL) tokens require Associated Token Accounts (ATAs) to be enabled on the wallet.


Note: If someone sends a token to your wallet before it has been enabled (on chains that require enablement), the transaction may fail.



Native Coin Required for Fees

Regardless of which token you are sending, transaction fees are always paid in the native coin. Your wallet must hold a sufficient balance of the native coin to cover gas or transaction fees. For example, sending USDC on Ethereum requires ETH for gas.


Deferred Deployment (Create2)

For smart contract wallets (V1, V2, V4), BitGo uses the CREATE2 mechanism to deterministically calculate the wallet's contract address without deploying the contract on-chain. The contract is deployed later, when the wallet first receives funds.

This means:

  • No transaction is submitted when you create a wallet — the address is calculated mathematically.
  • You can generate and share the wallet address immediately.
  • Unused wallets cost nothing in gas fees.
  • The contract is deployed automatically upon the first deposit.



Smart Contract Source Code

BitGo's EVM wallet smart contracts are open source:

Contract FamilyRepository
V0 wallets & forwarders
BitGo/eth-multisig-v2
V1, V2, V4 wallets & forwarders
BitGo/eth-multisig-v4



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article