I am sharing pool mining with a friend with equal cards. We are splitting what we mine in half. I also have a couple extra cards of my own. I want to have one wallet for our shared stuff and one coming from my private mining stuff. In bitcoin-qt how do I setup a wallet for the group one and a wallet for just me on the same computer? Do I just copy in and move out wallet.dat files when I want to use one or the other?

Also what if I want to move money from one wallet to the other how would I do that? Both wallets are on the same computer?


  • Why not just use two different addresses from the same wallet.dat? It would require a little computation whenever you wanted to track payments to one of the two addresses, I guess, which could be annoying. You could use the debug window, though, and use 'getreceivedbyaddress' to make it a little more automated. You might also look into the watched addresses feature of Bitcoin core 0.10.
    – morsecoder
    Commented Feb 3, 2015 at 14:03

2 Answers 2


You can use a combination of command-line arguments in a shortcut, namely, the "-wallet=" and "-rescan" arguments, to run Bitcoin-qt using different wallets.

Say you want to work with 2 different wallets (one for your shared mining profits, and the other for personal mining profits)

Step 1:

Start up bitcoin-qt and set it up so that it doesn't start up automatically when windows starts up (Settings > Options > Main)

Bitcoin-qt Options >Settings > Main

Step 2

Visit your Bitcoin Data directory, located by default at:

C:\Documents and Settings\YourUserName\Application data\Bitcoin (XP)

C:\Users\YourUserName\Appdata\Roaming\Bitcoin (Vista and 7)

And rename your wallet file. In this example we will name it "Personal Profits.dat"

Start up Bitcoin-qt and let it generate a new wallet file (upon finding that there's no "wallet.dat file, the client creates a new one). Encrypt it (use a strong password) and close the client.

Step 3

Set up the short-cut.

If you already have a shortcut created to start up Bitcoin-qt you can make a copy (The original will keep on working with the newly generated wallet.dat, the new one will use a manually specified wallet file).

Otherwise create 2 differnt shortcuts for the client, leave one as is, and edit the other one as noted here.

Right-click on the shortcut you want to use with your shared profits wallet and go to properties, and on the "Shortcut" Tab, add this line a the end of the "Target" Field like so:

C:\Program Files\Bitcoin\bitcoin.exe -rescan

Now right-click on the shortcut you want to use with your personal profits wallet and edit again, like so:

C:\Program Files\Bitcoin\bitcoin.exe -walletfile=Personal_Profits.dat -rescan

Final Thoughts:

As noted on answer posted below, the "-rescan" argument is necessary to avoid issues with your balances (missing funds)

As for how to transfer money from one wallet to the other, while running the client using wallet A, take note of an address on the wallet. Close the program, and run the other shortcut. Now use the send option on the client and fill in with that address. (Method can be used both ways).

And yes both wallets are on the same computer and even the same directory (Bitcoin Data Dir as explained above)

  • 1
    I wonder if you could set up a directory alias to avoid duplicating the ~30GB block chain data.
    – morsecoder
    Commented Feb 3, 2015 at 14:06
  • 1
    Turns out it's way easier to just use the "-wallet=<file>" parameter than "-datadir" as I posted. I will be updating the answer in a few.
    – Dhuum
    Commented Feb 3, 2015 at 14:47
  • It's been updated to include the -walletfile approach.
    – Dhuum
    Commented Feb 3, 2015 at 20:15
  • As the below answer says, when you change wallets you will likely also need to do a -rescan, which is unfortunate. Also, IMO the -wallet= answer is better and would make your answer more concise if it didn't include the switching of the -datadir= method.
    – morsecoder
    Commented Feb 3, 2015 at 20:52
  • I didn't think of it, and yeah it turned out to be a long answer, a bit cluttered too. I will update once more. Thank you very much for your input.
    – Dhuum
    Commented Feb 3, 2015 at 21:24

you've guessed correctly, you can just move (REN for rename in Windows) the wallet to another filename with bitcoin-qt not running, start it back up and it will create a new wallet.dat. here's an example using americancoind on the Linux command line, hopefully you can extrapolate to using the Bitcoin GUI. note that you need to start the program with the -rescan option after each time you swap the wallet, or you will not see your funds, as described here: Import wallet.dat into a new Bitcoin-Qt client

it gets a little tricky sending funds from one account to another this way, though. note that I'm not showing the output, by the shell, of the jobs starting and stopping in the background, because it can be unnecessarily confusing.

jcomeau@aspire:~/.americancoin$ americancoind stop
Americancoin server has now stopped running!
jcomeau@aspire:~/.americancoin$ mv wallet.dat my_wallet.dat
jcomeau@aspire:~/.americancoin$ americancoind &

wait a minute or so here, for the last 2500 blocks to be verified, before the RPC server starts...

jcomeau@aspire:~/.americancoin$ americancoind getnewaddress ''
jcomeau@aspire:~/.americancoin$ americancoind stop
Americancoin server has now stopped running!
jcomeau@aspire:~/.americancoin$ mv wallet.dat group_wallet.dat
jcomeau@aspire:~/.americancoin$ mv my_wallet.dat wallet.dat
jcomeau@aspire:~/.americancoin$ americancoind -rescan &

wait another two minutes or so, there's more to do with -rescan.

jcomeau@aspire:~/.americancoin$  americancoind walletpassphrase MyPassFrazeYeahRight 60

that unlocks the wallet for 60 seconds, assuming you have set a passphrase for it... in Linux, precede the command with a space so that Bash doesn't store the passphrase in your .bash_history file.

jcomeau@aspire:~/.americancoin$ americancoind settxfee 0.0

the true above was the output of the command. you don't really want to lose any money shuffling funds between accounts, do you?

jcomeau@aspire:~/.americancoin$ americancoind sendtoaddress AzpvNNAUFYjW79uCS1Q9ALNSVhABqrUC1U 1.0

you probably ought to cut-and-paste the address to avoid mistakes! again, the 2nd line is the output of the command, the transaction number.

jcomeau@aspire:~/.americancoin$ americancoind stop
Americancoin server has now stopped running!
jcomeau@aspire:~/.americancoin$ mv wallet.dat my_wallet.dat
jcomeau@aspire:~/.americancoin$ mv group_wallet.dat wallet.dat
jcomeau@aspire:~/.americancoin$ americancoind -rescan &

now you wait about 20 minutes; enough time for the transaction to have been packaged into a block, then 6 confirmations at about 1.5 minutes each. finally:

jcomeau@aspire:~/.americancoin$ americancoind getbalance

just remember to shutdown the program before each change of wallet, and to startup with -rescan afterwards (or however it's done with bitcoin-qt).

if something doesn't work, there's more info on this process here: coin seems to have gone to a duplicate address

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.