With bitcoin and others, you can use --datadir option to specific where blockchain, keystore, etc are saved. But doesn't work with Mist.

From the offical wiki:

To configure the location of the data directory, the --datadir parameter can be specified. See CLI Options for more details.

I start Mist like this, but doesn't work. Still writes everything into %APPDATA%\Ethereum

R:\Ethereum\bin\Ethereum-Wallet.exe --datadir "R:\Ethereum\data\"

Also what is this stuff under : %AppData%\Roaming\Mist? Does that have any sensitive information in it?

Why not keep everything in one place and make it configurable? It's been standard practice for all others coins for ages now (so that it's easy to put on removable or encrypted drives, ideally both).


6 Answers 6


Ethereum-Wallet comes packaged with geth.exe which is the Ethereum blockchain node software. Here is the listing from the Ethereum-Wallet-win64-0-5-2.zip file downloaded from https://github.com/ethereum/mist/releases :

$ unzip -tv Ethereum-Wallet-win64-0-5-2.zip  | grep geth
testing: Ethereum-Wallet-win64-0-5-2/resources/node/geth/   OK
testing: Ethereum-Wallet-win64-0-5-2/resources/node/geth/geth.exe   OK

When you start Ethereum-Wallet.exe, it will automatically runs geth.exe if it does not detect that it is already running.

If you manually start R:\Ethereum\bin\Ethereum-Wallet.exe\resources\node\geth\geth.exe with the --datadir "R:\Ethereum\data\" option, geth.exe will use your specified directory for the blockchain data and the keystore information.

After geth.exe has started, start Ethereum-Wallet.exe and it will communicate with geth.exe which is using your specified directory.

  • Just tried this and it didn't work, using linux64-0-8-1. Instead of connecting to the running geth, it simply compained that it couldn't start geth because another geth was already running. Commented Aug 7, 2016 at 15:42
  • The instructions above are for Windows. Try ethereum.stackexchange.com/a/5806/1268 for Linux. This issue is the IPC file that is used for Mist to communicate with geth. You have to set the IPC file to be in $HOME/.ethereum/geth.ipc . By default, the IPC file will be created in the {datadir}/geth.ipc . Commented Aug 7, 2016 at 15:49
  • Since Mist has a way to switch networks from under menu, it should really do that by itself - adding appropriate datadir that is.
    – jayarjo
    Commented Aug 27, 2017 at 7:00

I'm not familiar with that executable, and in fact I'm not even sure that's eth per say, so I think you think you use eth while you're not

eth -h will display at the end :

General Options:
    -d,--db-path,--datadir <path>  Load database from path (default: /home/YOURUSER/.ethereum).
  • 1
    This answer was provided when the question mistakenly/confusingly mentioned eth.
    – eth
    Commented Apr 6, 2016 at 1:33

Using geth and most other implementations you can point the application to the desired data location. In geth:

 geth --datadir "/home/youruser/.ethereum"

In your case point it to the mount point of your external drive.

See the geth command line options

  • 2
    Also, if you want Mist to work, you need to add the --ipcpath ~/.ethereum flag when using a non-default datadir. Commented May 2, 2016 at 21:48
  • not quite sure what it does.. when setting --ipcpath ~/.ethereum Mist reads keystore from PC. When i leave it default it is able to read keystore from the external drive. Although still can't find a way to move Mist appdata to the external drive.
    – Cymruminer
    Commented May 3, 2016 at 1:49

It is should I use a symbolic link?

Because you created in Vista and later in Windows if with administrator privileges.

With administrator privileges, start a cmd.exe

cd C:\Users\[User Name]\AppData\Roaming
mklink /D Ethereum "[Data Dir Absolute Path]"
mklink /D Mist "[Mist Data Dir Absolute Path]"
  • This works well even with just the chaindata subfolder under Ethereum, which contains by far the most data. In this way you can keep your keystore safely in the profile folder and store the blockchain data on e.g. an USB harddrive. Do do this you need to run the wallet once so that the directory under C:\Users\[User Name]\AppData\Roaming\Ethereum exists, then move the subdirectory chaindata to the desired place (for example R:\Ethereum\chaindata) and finally make the link: mklink /D C:\Users\[User Name]\AppData\Roaming\Ethereum\chaindata R:\Ethereum\chaindata. Commented Jul 13, 2016 at 8:37

Use geth --datadir or if you are using *nix system as Linux or osX, you can create a symbolinc link from your ~/ethereum to the one on your HDD.

  • That was the easiest solution for my (using linux). Just move data and symlink. Works like charm
    – PlagTag
    Commented Mar 11, 2017 at 11:42

moving %userprofile%\AppData\Roaming\Ethereum = geth.exe --datadir ".\MyEthDataFolder"

%userprofile%\AppData\Roaming\Mist = ???????

clarifying what I believe to be part of the original question

  • Please use the Post answer button only for actual answers. When you have more reputation you will be able to edit the question to add additional information. If instead you have a NEW question, please ask it by clicking the Ask Question button.
    – eth
    Commented Jun 4, 2016 at 21:27

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.