Token Standards: ERC20, BEP20, SPL, TRC20
What’s the practical difference between these standards? And why should you care before you hit send? Short answer: the blockchain and the way tokens are implemented determine compatibility, fees, and recovery options. In my experience, that small step of checking the network saves headaches (and sometimes money).
What are token standards and why they matter
Token standards are contract interfaces or program conventions that tell wallets and dApps how to read balances, transfer tokens, and interact with smart contracts. Think of them as a lingua franca for tokens on a specific blockchain: ERC20 speaks to Ethereum and other EVM-compatible chains; SPL is Solana’s format; TRC20 is Tron’s; BEP20 is Binance Smart Chain’s EVM-compatible version.
Why care? Because an address can look valid on multiple chains (0x addresses for ERC20 and BEP20, for example) but the networks are different. Send the wrong standard and you can lose access to funds unless you have the private keys and technical know-how to recover them. I once sent tokens to the wrong network; it was a painful learning moment.
Quick reference: ERC20, BEP20, SPL, TRC20 (table)
| Standard |
Blockchain |
Address format (typical) |
Contract vs native |
Gas token required |
Typical use cases |
| ERC20 |
Ethereum (and EVM-compatible) |
0x... (42 hex chars) |
Smart-contract token |
ETH |
Most DeFi tokens, stablecoins on Ethereum |
| BEP20 |
BNB Smart Chain |
0x... (same format as ERC20) |
Smart-contract token |
BNB |
Low-fee versions of tokens (bridgeable) |
| SPL |
Solana |
base58 public key (~43–44 chars) |
Program-managed token |
SOL |
High-throughput tokens, NFTs on Solana |
| TRC20 |
Tron |
starts with T... (base58, ~34 chars) |
Smart-contract token |
TRX |
USDT TRC20 and other Tron tokens |

How this software wallet (Trust Wallet) handles each standard
Below I explain how the wallet displays and manages these token types, with practical tips.
ERC20 (Ethereum)
- The wallet reads ERC20 tokens via the Ethereum network (or connected Layer 2s if supported).
- You need ETH for gas. If you try to send an ERC20 token without enough ETH, the transaction will fail.
- ERC20 tokens will appear under your Ethereum account. If they don't, use the custom token flow (see below).
What I've found: ERC20 token metadata usually auto-populates when the wallet can reach the token registry, but sometimes the token is new and must be added manually.
BEP20 (BNB Smart Chain)
- BEP20 tokens are EVM-compatible so addresses look like ERC20, but gas is paid in BNB.
- The wallet treats BEP20 balances under the BNB Smart Chain account. Switch networks before sending.
And yes, a 0x address can be correct on both networks — so double-check the network label before pasting.
SPL (Solana)
- SPL tokens use Solana's program model and base58 addresses.
- You need a small amount of SOL to cover gas (network fees) for transfers and account creations (associated token accounts).
In my experience, SPL tokens sometimes require account creation (a tiny SOL fee). The wallet usually prompts for that.
TRC20 (Tron)
- TRC20 tokens live on the Tron network and use TRX for gas.
- Commonly used for USDT TRC20 (popular for low-fee transfers).
Does trust wallet support usdt trc20? Yes — the wallet supports TRC20 tokens (including USDT on TRC20). But you must select the Tron receive address and confirm the sender uses TRC20.
Step-by-step: Receiving and sending the right standard
Step-by-step: receive USDT on TRC20 (example)
- Open the wallet and tap Receive.
- Search for Tron or USDT (make sure the network label is TRON / TRC20).
- Copy the address or scan the QR code (addresses starting with T... are TRON addresses).
- Ask the sender to send via TRC20. Confirm network in the sending wallet or exchange.
Step-by-step: add an ERC20/BEP20 token manually
- Find the token contract address from a reliable source (official website or block explorer).
- In-app, choose Add Custom Token (choose the network: Ethereum for ERC20, BNB Smart Chain for BEP20).
- Paste the contract address — symbol and decimals often auto-fill. Save.
If the token still doesn't appear, see troubleshooting-token-not-showing.
Adding custom tokens & troubleshooting missing tokens
Common reasons a token doesn't show:
- Wrong network selected (ERC20 vs BEP20). This is the number-one mistake.
- Token is very new and not in the token registry.
- Spam or duplicate tokens (hide these).
But what if you sent an ERC20 token to a BEP20 address? Recovery is possible only if you control the receiving private key and the receiving chain supports that token or the exchange offers manual recovery. That's messy. So check the network label first.
For a how-to on adding custom tokens, follow the step-by-step above and read the extended guide: add-custom-token and add-custom-tokens.
Security notes: approvals, gas, and recovery
- Token allowance risk: when you approve a dApp to move your tokens, approvals can be unlimited. I once approved a malicious contract (yes — I paid gas for a revoke later). Learn to check and revoke approvals regularly (see revoke-approvals-and-allowances).
- Gas fees: ERC20 requires ETH, BEP20 requires BNB, SPL uses SOL, TRC20 uses TRX. Keep a small native balance for fees. See gas-fees-and-optimization.
- Backups: keep your seed phrase offline and in multiple safe locations (seed-phrase-backup). If you lose your phone, recovery flows are covered in lost-phone-recovery.
Security trade-offs: a hot wallet is convenient for DeFi and swaps. But convenience means exposure. I believe combining a hardware wallet for large holdings and a hot wallet for daily DeFi activity is a balanced approach.
Cross-chain transfers and bridges (short practical guide)
Cross-chain transfers move a token representation from one chain to another (ERC20 ⇄ BEP20 bridge, for example). Bridges can be helpful but add trust and smart-contract risk.
And always check whether the receiving wallet supports the wrapped token standard.
FAQ
Q: Is it safe to keep crypto in a hot wallet?
A: Hot wallets offer convenience for DeFi and swaps. They are non-custodial (you control private keys) but are exposed to phishing, malicious dApps, and device compromise. Store large amounts in a hardware wallet if safety is your priority.
Q: Does Trust Wallet support USDT TRC20?
A: Yes — the wallet supports TRC20 tokens, including USDT on TRC20. Make sure you use the Tron receive address and that the sender selects TRC20.
Q: How do I revoke a token approval?
A: Use a token-approval scanner or the dApp that requested the approval, then revoke the allowance. See revoke-approvals-and-allowances for step-by-step guidance.
Q: What happens if I send a BEP20 token to an ERC20 address?
A: If both addresses are controlled by you (same private keys), you may recover tokens by accessing the account on the correct chain. If you sent to an exchange or someone else, recovery is unlikely without the recipient’s cooperation.
Q: How do I add an SPL token?
A: Use the Add Custom Token flow and choose Solana as the network; you’ll need a small SOL balance to create associated token accounts.
Conclusion and next steps
Token standards are mechanical rules, but they have real impacts on fees, compatibility, and safety. Check the network label before every send. I’ve lost sleep (and a small amount of crypto) over mistaking BEP20 for ERC20 — learn from that.
For step-by-step help: see add-custom-token, read about bridges at token-standards-and-bridges, and review gas tips at gas-fees-and-optimization. If you want practice, try a tiny test transfer first.
If you have a specific token or transfer problem, check our troubleshooting page (troubleshooting-token-not-showing) or ask a targeted question in the FAQ section. Happy transacting — and keep that seed phrase safe.