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 |
| Ethereum | ETH | ERC-20 | USDC, USDT, LINK |
| Solana | SOL | SPL | USDC, USDT |
| Algorand | ALGO | ASA (Algorand Standard Assets) | USDC, USDT |
| Stellar | XLM | Stellar Tokens | USDC |
| Tron | TRX | TRC-20 | USDT |
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 Family | Repository |
| 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
Feedback sent
We appreciate your effort and will try to fix the article