I've read on certain occasions that some crypto currencies first started off on top of one blockchain and then at some point were migrated to a different or own ecosystem.

How does this process work, and if I write a dApp on ethereum that features an erc20 compatible coin, do I have to make some preparations before deploying the contract to make such a migration possible at a later stage?

1 Answer 1


Usually, you hold some form of a coin swap.

A rough way to go about this is as follows.

  1. Build a pause functionality into your ERC20 contract, and pause the contract on the swap date
  2. Have some method for users to register a public key for your chain against their ETH address. For users with an outgoing tx from their ETH address, you can calculate the pub key. For users that don't, you will have to ask them to make an outgoing tx.
  3. Collect all the public keys, and assign them a balance equal to their ERC20 token balance on your network
  4. Provide users with a wallet to use their eth private keys to access their new address on your network.

Of course, this has some security implications, and people may be hesitant to reuse a private key. To get around that, you can either provide a way to register a new, unrelated public key.

  • Well, the largest issue I see with this is that it fully centralizes the dApp - why make it dApp then in the first place? Is there no way to do this in a trustless form? Commented Sep 2, 2018 at 4:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.