ERC-20 vs BEP20 – Can a Token Have the Same Contract Address on Both?

bridgebsccontract-designerc-20

I'm getting into a bit of web3 dev, and I'm having trouble getting a handle on how contracts can be interchangeable between networks.

Some tokens create a 'wrapped' version, that is tethered in price to the original, in order to operate on bep20. This makes sense to me.

However, you have other tokens that exist on erc20 and bsc. I'm guessing they are using some type of bridging mechanism in the contract.

As an example, take UNO RE (0x474021845c4643113458ea4414bdb7fb74a01a77).

You can look this address up on etherscan or bscscan and see the contract. However, on bscscan it looks slightly different… Like a typical wallet address or something.

Apparently, one could move a coin like uno freely between networks. I thought this would require some type of bridge or wrapped version?

An explanation of this duel existence would be greatly appreciated.

Best Answer

Contracts cannot interact across networks. Contracts can interact with other contracts, but only at the same network. The example you gave, 0x474021845c4643113458ea4414bdb7fb74a01a77, is a contract in both Ethereum and BsC because the address of a contract is deterministic and based on the account that creates the transaction and some other info, so in principle you indeed can deploy the "same" contract on both networks (the same code at the same address), but they can't communicate between, at least not directly. In principle, this can be done by some dApp, that makes some kind of bridge. But keep in mind that they can't interact directly.

Related Topic