How to Move Your Ethereum Project to Other EVM
The notion that we are tolerating Ethereum’s exorbitant gas fees because this second most popular blockchain in the world is more decentralized is baseless. If so, why centralized projects like OpenSea, Binance, Coinbase, Crypto.com, etc still rule.
As the world argues about whether the future is going to be centralized or decentralized or both, what is evident now is we are paying too much for gas.
Gas fee is akin to shipping fee and no one likes it. Period.
Till this day, there’s no guarantee that gas fee will drop significantly once Ethereum deploys version 2.0. And the deployment will be in phases where the sharding feature which is used to expand the block capacity and ultimately reduce gas fees won’t be happening until 2023. This means we can’t expect a sudden drop from $7 to $0.70 anytime soon.
So, here we discuss the alternatives beyond Ethereum.
Should You Move Your Dapps To Other EVM-Compatible Blockchains?
One should not forsake Ethereum altogether and port your entire dapp to alternative EVM chains. You could instead consider using two chains instead of one, just like OpenSea. This way, you’re offering your users more options to use your platform. It’s like having an e-commerce site that accepts USD and other currencies. Obviously one comes with a higher cost in gas while the other has lower fees.
But supporting a new chain means accepting different cryptocurrencies instead of ETH and ERC-20 tokens while it also means more integration work for your developers.
But what if we can simplify the entire porting operation.
What EVM-Compatibility Means to Your Dapp
From a developer’s perspective, it means these.
- Your current Solidity smart contract will work in the EVM chain without any change in the code.
- You will be using the same development tools — Hardhat, Truffle, OpenZeppelin, Remix, VSCode, etc.
- You need to edit your dapp to talk to the new chain by reusing web3.js or ethers.js library but your HTTP provider needs to be one that could support the EVM. Or you can just rely on MetaMask.
- You will use the EVM testnets similar to Ropsten, Rinkeby, Kovan, etc.
- You need to get new test tokens from the respective EVM faucet.
On the other hand, from a user’s point of view,
- You will have to add the new EVM chain to your MetaMask. You may easily do this using ChainList (read step 1 of this guide).
- You will pay much lesser gas fees.
- But, you will have to buy or swap for new crypto for the new chain.
The “but” above will create some migration friction. Perhaps that is why the majority of transactions on OpenSea are still on Ethereum instead of Polygon although the share is decreasing.
One may argue that it’s like going to Paris, you have to change to Euro dollars. There’s nothing to it. Well, unless you have to fly to a different country every week or so and keep needing to change to a new fiat currency. In a dapp user’s case, this would be changing to a new token each time you wish to use a new dapp. That is a big hassle!
Moving Your Dapp to an EVM Without ERC-20 Token
If you don’t issue any ERC-20 tokens, the deployment is a lot easier because you can use the EVM’s native token as the currency. It’s like OpenSea using MATIC token as currency when they deployed to Polygon network. You can actually use ETH on Polygon because there’s such thing as an ETH version on Polygon network. But that is a different topic to be discussed.
So, in this case, you’d be using the native token of the EVM.
Let’s assume you run an NFT marketplace on Ethereum and your users use ETH to buy each NFT. You’d like to include a port to an EVM, say Binance Smart Chain (BSC).
You’d deploy your Solidity smart contract on BSC and integrate your dapp to talk to the chain.
Since you’re accepting ETH as the currency of payment, you should be using the native cryptocurrency of Binance Smart Chain which is BNB aka Binance Coin.
But if you’re concerned with the price stability of the EVM’s native token, you could instead choose to accept a wrapped ETH that sits inside their chain. The price of wrapped ETH on the EVM should be pegged to ETH.
Some existing NFT marketplaces actually prefer to use a wrapped ETH as their currency of payment.
Moving Your Dapp to an EVM With Your ERC-20 Token
If you mint your own ERC-20 token on Ethereum, you’d need to create a wrapped version of your token on the new EVM chain. Some offer bridging dapps that act like “money exchangers” to convert your existing ERC-20 tokens to a “wrapped” version of your token in their particular EVM.
For example, if you issued an ERC-20 token called ABC on Ethereum, your wrapped token will be called xABC on the new EVM chain, where “x” represents the code that this token is a version of the actual ABC token.
This so-called hybrid crypto has a 1:1 quantity and value exchange with your ERC-20 token. This means every one of your ERC tokens shall be exchanged for one equivalent token. If one single ERC-20 token is bridged, there will be one less token on Ethereum while one more will emerge on the EVM chain, and vice versa. Do note that we’re not creating a brand new token on the EVM chain thus the value of your token will not be diluted. Here’re some examples of wrapped tokens, also known as pegged tokens on Binance Smart Chain.
Using our previous example, let’s say you issued your own token called GWOW. At this moment, your users already have ETH and GWOW in their wallets. You’d like to include a port to Binance Smart Chain EVM.
But you need the ability to create new wrapped tokens on BSC. Some chains have bridging dapps to help you bring your ERC-20 token to their side. Here’s a list of wrapped tokens on Binance Smart Chain, also known as pegged tokens. But some don’t open their bridge to any sort of tokens, such as Avalanche.
Assuming the chain allows you to create your wrapped token, you’d now have wGWOW tokens (“w” for wrapped) on the EVM. For your users to start using the new EVM, they need to first convert their GWOW to wGWOW tokens. They can do this at the bridge app but they need to have some of the EVM’s native tokens. In this case, it’s the BNB token that they should be able to swap their ETH with at Binance DEX.
Gosh, all the above sounds too overwhelming for any mortal users – techie or otherwise.
Removing The Crypto Buying-Swapping Barrier
But what if we can remove this crypto buying and swapping barrier altogether.
Instead of having to procure a new token to use on the new EVM-compatible chain, your users could just sign-up for a CryptCard crypto credit card that enables them to use your dapp without having to start with crypto buying/swapping and paying for gas.
Unlike the other so-called crypto cards that only offer rewards in cryptos, this true cryptocurrency credit card offers a line of credit to your users allowing them to spend with your token or the EVM native token.
Each transaction on this crypto credit card is a signed transaction. No transfer of tokens actually takes place on the blockchain. It’s like minting an NFT on OpenSea where you only use MetaMask to sign a message. This also means we are eliminating gas fee for each transaction.
Using our analogy of traveling to a new country, you just bring along your Visa or Mastercard and swipe in that country. No fuss over going to a money exchange. The same applies to using our crypto card and “swiping” it to use your dapp on the new blockchain.
Which EVM Chain To Choose
ChainList offers a nice list of active EVM-compatible blockchains. While most are more or less identical to Ethereum, their purpose is mainly to reduce the user and developer adoption friction, just like us.
The burning question is will it all be worth it? It depends on the ultimate goal of your project. One of the main purposes of the dozens of EVMs out there is to ease your migration from Ethereum to a more gas-friendly ecosystem. Imagine them as highways with a special lane for EV cars. Since you already have a driver’s license, you could just get in and slam on the accelerator.