Cross-chain Bridge vs Multi-Deploy

Hello, first post :sunglasses:

If I want to launch a token on both BSC and Ethereum, what are the differences / uses between deploying the same ERC20 token contract twice from the same wallet on both Eth and Bsc, versus deploying only on BSC and using a bridge for Ethereum?

How does this work with initial minted supply? Bit lost at what makes sense for token issueing contracts…

Thanks in advance :wink:

Writing this down makes me think perhaps a bridge is needed for token issueing contracts as tokens need to be destroyed on one bridge and created on the other, while non token-issuing smart contracts can just be multi-deployed as they work in isolation?

I think with a bridge you can have the supplied controlled, coz if you deploy them separately, each contract have no idea an existing supply in another blockchain. With bridge, you can control the supply such then when transferred, one is burnt or locked in one chain and one is minted on the other chain. That’s my 2 cents but of course there are more possibilities depending on your use case :raised_hands:

Cheers~

1 Like

Awesome that clarifies a lot! Makes sense, otherwise there is no control over supply.

So if I deploy main contract to BSC, should I make sure to deploy the bridge contract to Ethereum on the same address to prevent loss of tokens sending to the wrong chain? Or is there another best-practice / solution for that?

Well it wouldn’t need to be the same address and I don’t think you can control what address for thr deployed contract you get.

Usually to build a bridge just build a smart contract on BSC that will hold/burn the token when the cross chain transfer is called and emit an event at the function. Using Moralis you can capture that event real time with event sync feature and then using the .afterSave cloud function trigger a minting action on the blockchain with the bridge smart contract on ETH. To execute the minting, you might need additional backend or I recommend checkout Openzeppelin Defender where they give you relayer (like wallet but executed on the backend) to do so coz you can’t run state changing function in cloud function

1 Like

And I guess that’s the simplest implenentation of a bridge, it is quite centralized though but many use that way for sure coz it’s easiest to implement.

A more decentralized way might be using Connext which enables your smart contract to do cross chsin transaction, but it’s quite complicated and I am not entirely familiar with the protocol.

Hope this helps~

Helps alot, thanks for pointing me in the right direction, good one on using a Relayer! More work to do :grin:

1 Like