Account Migration Guide

This guide details the process of migrating your assets to an entirely new account. You may want to migrate your assets as a precautionary measure if you think your secrets may have been compromised, or you may want to migrate assets so that you can rotate your keys as a routine security measure.

To start, it is important that the new address is derived from a new secret recovery phrase, especially if you think your old one is compromised. It is also important that you generate this new secret recovery phrase on trusted software in a trusted environment (that is to say, not a shared machine or via a website).

A secret recovery phrase is a set of 12 or 24 words that you must keep secure and only known to you!

To migrate your assets from one account to another, you will need to pay some gas fees, as these transactions are occurring on-chain. Depending on the amount you own in assets and the contracts storing or managing those assets, this can become costly. You can use previous gas data to try to determine when is generally the best time to do these transactions so you are not overpaying, and you can broadcast the signed transactions with a lower gas price to see if they get included in a block sometime soon.

An important step you should take before you begin is to write down your assets in priority order so you are aware of what you are moving and can account for all variables (ie: token lockups, contract-backed taxes on transferring assets).

Some of the assets you may need to transfer ownership of are:

  • ERC-20 tokens
  • NFTs (ERC-721, ERC-1155)
  • Liquidity provider positions
  • Ownerships on smart contracts (ie: gnosis-safe)

As most assets on-chain make use of a standard interface for each type of asset (for the most part), it doesn’t need to be too complicated to move assets.

If your account has been compromised, it is possible that you have had a sweeper bot placed on your account. If this is the case, then as soon as you transfer tokens in, they may be transferred to the attacker's address. This can be a complex situation to remedy; for much more detailed information, see here.

If you do have a sweeper bot on your account, or think you may, keep an eye on the suspicious address using Blocknative's mempool explorer.

What assets do I have?

Over time you can come into ownership of various assets under your address and you might lose track of which assets you have. Below are some third-party tools you can use to get a list of assets you own.

MetaMask

You can make use of the MetaMask interface to see which assets you have, especially if you’ve imported custom tokens.

You can see an expanded view of your account by clicking the three dots ("⋮") in the top right and choosing the “Expand view” option.


mceclip0.png

From the new tab that will appear, you can select the “Assets” tab and see your assets in a larger view. From here, you can make a list of your priority assets to move.

Marketplaces

Various marketplaces such as OpenSea and LooksRare index your NFT assets on your profile page. You can see your assets on these marketplaces and evaluate which NFTs are a priority.

Indexers

You can make use of a blockchain indexer/block explorer to see your address and related transactions.

Aggregators

There are many different aggregators that index the blockchain to build a database of what assets an address holds - including assets in lockup and liquidity positions.

Contract Tools

Some tools are available to help you semi-automate the finding of what contracts you have created which could have the Ownable pattern (or another similar pattern) for you to transfer ownership, as well as tools to help to search known contract function signatures.

 

What tools can I use to move assets?

We have gathered a few third-party tools to help you complete this process. Please note that we are providing you links to these tools as a point of reference, and this is in no way endorsement from MetaMask or ConsenSys. Before using any of these tools, please familiarize yourself with their README files.

409H/eoa-migrator (https://github.com/409H/eoa-migrator)

This tool offers an interface to help you step through the process of migrating funds and discovering different asset types on your address. It is strict in that for you to access the tool, you will need to confirm ownership of the keys you are transferring the assets to.

 

Criteria

Support

Supports multiple EVM chains

Y

Supports secret recovery phrase

Y (if signer does)

Supports dry-runs/local environment

N

Supports ERC20 tokens

Y

Supports ERC721 tokens

N

Supports ERC1115 tokens

N

Supports EIP1559 transactions

Y (if signer does)

Supports resending dropped transactions

Y (if signer does)

Full stable release

N

Test suite on code

Y

 

mceclip0.png

svanas/migratooor (https://github.com/svanas/migratooor)

Written in Pascal, this tool offers a user interface to migrate funds from one address to another. It does provide compile instructions and offers you an executable to download in the releases.

 

Criteria

Support

Supports multiple EVM chains

Y

Supports secret recovery phrase

N

Supports dry-runs/local environment

N

Supports ERC20 tokens

Y

Supports ERC721 tokens

Y

Supports ERC1115 tokens

Y

Supports EIP1559 transactions

N

Supports resending dropped transactions

N

Full stable release

N

Test suite on code

N

mceclip1.png

Eth-sweep (https://github.com/James-Sangalli/eth-sweep)

Written in Javascript, eth-sweep allows you to sweep your tokens by transfer to a safe address, swap them for ETH, or migrate tokens to L2.

 

Criteria

Support

Supports multiple EVM chains

Y (if signer does)

Supports secret recovery phrase

Y (if signer does)

Supports dry-runs/local environment

N

Supports ERC20 tokens

Y

Supports ERC721 tokens

Y

Supports ERC1115 tokens

N

Supports EIP1559 transactions

Y (if signer does)

Supports resending dropped transactions

Y (if signer does)

Full stable release

N

Test suite on code

Y

mceclip2.png

Flashbots Whitehat (http://whitehat.flashbots.net)

If you believe your address is compromised and bad actors are watching the txpool to frontrun any transactions you may make with these tools, you can open a case with the Flashbots Whitehat team to help you create transaction bundles to skip the txpool.

 

Technical notes

We know that sweeping all of the assets from an account can be expensive, but Ethereum currently requires that all contract calls from an Externally Owned Account are individual transactions. To reduce these costs long term, we look forward to protocol changes like EIP-3074, which could allow batched transactions or even changing a controlling key with a single transaction. This could greatly reduce the cost of migrating to a new secret recovery phrase. You can get a sense of how much ether could be saved just by batching approvals on https://www.approvals.wtf/ 

 

Need help with any of this?

If you're looking to migrate your assets to a new account and need advice or assistance, we’re here to help. If you need help using one of the specific tools we’ve listed above, it is recommended that you reach out to the maintainers of that tool first, but you are still welcome to contact MetaMask Support.

 

As always, please keep your Secret Recovery Phrase safe. It is for your eyes and your eyes alone, and when you ask for help in various places there may be bad actors waiting to reach out to you and attempt to steal your funds.

Was this article helpful?
7 out of 14 found this helpful

Articles in this section

See more
MetaMask Support on Twitter
Beware of scam Twitter accounts. Never give anyone your Secret Recovery Phrase!
MetaMask YouTube
Fow how-to and support videos please visit our channel