This error occurs when you have multiple wallet browser extensions installed (e.g., MetaMask, Phantom, Coinbase Wallet, etc.) that are competing to inject the window.ethereum object into the page.
Example error:
Runtime TypeError
Cannot redefine property: ethereum
-
Open your browser's extension manager:
- Chrome/Brave:
chrome://extensions/ - Firefox:
about:addons - Edge:
edge://extensions/
- Chrome/Brave:
-
Disable all wallet extensions except the one you want to use
- For Moonbeam, we recommend MetaMask or Talisman
-
Reload the page
-
Create separate browser profiles for different wallets:
- Chrome: Settings → Users → Add person
- Firefox: about:profiles
- Brave: Settings → Create profile
-
Install only one wallet per profile
Some browsers allow you to change the order extensions load:
- Disable all wallet extensions
- Enable only your preferred wallet first
- Reload the page before enabling other extensions
Primary wallet: MetaMask or Talisman
- Both have excellent Moonbeam support
- Moonbeam is EVM-compatible, so MetaMask works natively
Network Configuration:
- Network Name: Moonbeam
- RPC URL:
https://rpc.api.moonbeam.network - Chain ID:
1284 - Currency Symbol: GLMR
- Block Explorer:
https://moonscan.io
If you encounter this error during development:
- Check your extensions - Disable unnecessary wallet extensions
- Use a clean profile - Test in a browser profile with only one wallet
- Clear browser cache - Sometimes cached scripts cause conflicts
- Check console errors - Look for which extension is causing the conflict
If you continue to experience problems:
- Try using a private/incognito window with extensions disabled
- Check if your wallet extension is up to date
- Verify your wallet supports the Moonbeam network (Chain ID: 1284)
- Contact support with your browser version and installed extensions list
The error occurs because:
- Each wallet extension tries to define
window.ethereumusingObject.defineProperty() - The property is marked as non-configurable
- When a second extension tries to redefine it, JavaScript throws a TypeError
This is a known limitation of the wallet injection pattern and affects all dapps, not just this one.