Adding networks or custom RPCs to MetaMask lets the wallet interact with more blockchains than the default Ethereum mainnet. You can connect MetaMask to Binance Smart Chain, Polygon (Matic), Avalanche C-Chain, Cronos, Fantom, and other EVM-compatible blockchains. I’ve been adding and switching networks daily for months; it saves time when you use multiple DeFi apps. And it also increases your attack surface if you’re careless.
Why add a network? Short answer: to access tokens, staking, or dApps that run on that blockchain without leaving MetaMask.
This page focuses on these mainnets (examples used in forms and tests below):
If you want single-page instructions for a specific chain, see the related quick guides: add-bsc-to-metamask, add-polygon-to-metamask, and add-avalanche-to-metamask.
MetaMask asks the RPC for two key pieces of information: the chain ID (via eth_chainId) and block responses (to detect fee market behaviour). Based on those responses the wallet decides whether to show legacy gas-price fields or EIP-1559 fields (max fee / priority fee). It also uses the RPC to fetch balances, transaction receipts, token metadata, and block explorers links.
So the RPC you enter must return the correct chain ID and handle standard JSON-RPC methods. If the RPC is slow or rate-limited, MetaMask can appear broken (missing balances, slow transaction submission).
Tip: MetaMask expects the chain ID in decimal (e.g., 137 for Polygon). If you enter a hex value (0x89), it will be rejected.
If a dApp tries to call wallet_addEthereumChain (the RPC method for auto-adding networks), MetaMask will prompt you to accept — check the fields before approving.
The mobile UI is similar but located differently. custom rpc metamask mobile steps:
When I first set this up on mobile I missed the "Save" button because the keyboard covered it. If that happens, close the keyboard and scroll down. But be patient; mobile screens vary.
You can also accept a network add request from a dApp inside MetaMask's in-app browser or via WalletConnect from an external dApp.
| Chain | Network name (example) | RPC URL (public example) | Chain ID (decimal) | Currency symbol | Block explorer |
|---|---|---|---|---|---|
| BSC | Binance Smart Chain Mainnet | https://bsc-dataseed.binance.org/ | 56 | BNB | https://bscscan.com/ |
| Polygon | Polygon Mainnet (Matic) | https://polygon-rpc.com/ | 137 | MATIC | https://polygonscan.com/ |
| Avalanche | Avalanche C-Chain | https://api.avax.network/ext/bc/C/rpc | 43114 | AVAX | https://snowtrace.io/ |
| Cronos | Cronos Mainnet | https://rpc.cronos.org/ (or official RPC) | 25 | CRO | https://cronoscan.com/ |
| Fantom | Fantom Opera | https://rpc.ftm.tools/ | 250 | FTM | https://ftmscan.com/ |
(These RPC URLs are common public endpoints — confirm the current recommended RPC on the chain's official docs before using.)
Not all EVM-compatible chains implement the same fee market. MetaMask will detect the chain's fee model and show gas-price fields accordingly. If a network supports EIP-1559, you'll see "Max fee" and "Priority fee" fields. Otherwise you'll see a single "Gas Price" input.
Practical tip: when swapping on lower-cost chains (BSC, Polygon, Fantom), small priority fees are enough. On busier chains or during network spikes, increase your priority fee to reduce pending time. If you're doing frequent swaps, compare on-chain routing (in-wallet swap aggregator vs external DEX aggregators) for price slippage and gas overhead.
If a dApp wants you to switch networks, it can call the standard RPC methods to request a chain switch or add the chain. Always inspect the popup. If the dApp uses WalletConnect, your MetaMask mobile will confirm the network change with a separate screen. Want the details? See connect-to-dapps-walletconnect.
A custom RPC endpoint can observe your outbound requests (addresses, pending txs) and serve manipulated data. It cannot directly take your keys — but it can hide balances, show false confirmations, or delay/fail transactions to trick you into re-sending.
Best practices:
I once configured a sketchy RPC and missed a token balance; lesson learned: verify RPC health before large transfers.
Common causes and fixes:
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' https://polygon-rpc.com/ (result is hex, 0x89 for 137).If you still see an "error while connecting to the custom network MetaMask" message, copy the RPC URL and test it outside MetaMask. That isolates whether MetaMask or the endpoint is failing. For persistent issues, see transaction-errors-and-fixes.
Who this is for:
Who should look elsewhere:
Q: Is it safe to keep crypto in a hot wallet with custom networks? A: Hot wallets are convenient but inherently higher risk than cold storage. For large holdings use hardware wallets; for daily DeFi activity a hot wallet is pragmatic if you follow the security-checklist.
Q: How do I revoke token approvals on a custom chain? A: Use a revoke tool that supports the chain or interact directly with the token contract via a block explorer. See token-allowances-and-revoke for workflow and best practices.
Q: What happens if I lose my phone? A: Restore your MetaMask using your seed phrase on another device. If you use cloud backups or social recovery, understand the trade-offs. Review seed-phrase-backup-recovery.
Q: Why don't I see my token balance after adding a network? A: Common reasons: wrong network selected, token not added as a custom token, or the RPC is failing. Add the token contract under add-custom-token-to-metamask.
Adding BSC, Polygon, Avalanche, Cronos, and Fantom to MetaMask is a one-time setup per device and opens access to many DeFi apps. Follow the table above, verify RPC endpoints, and test with a small transfer first. In my experience small test transactions save headaches later. And yes, expect UI differences between desktop and mobile.
Next actions: add the network you need, then run a small receive/send or a low-value swap to confirm. For mobile-specific setup walkthroughs see metamask-mobile-ios-android and for more advanced custom RPC options check custom-rpc-network-settings.
If you hit errors, work through the troubleshooting steps above and consult transaction-errors-and-fixes.