I have not yet sent money to anyone. I was wondering if there is any way to control which address shows up in the block chain as the sending address.

Say I receive money on addresses A, B, C. I want to send money to someone from a totally unrelated address D. How to do this using the bitcoin client.

EDIT: I want to unlink addresses (A, B, C) from D

So when I send money, the sender should be D, and there should be no transactions from any of (A, B, C) to D, directly or in a chain. I guess this is not possible without 3rd party help.

I fear that the ability to follow transactions in a chain will eventually reveal enough information about identity of users. So there should be a way to send/receive from two complietely unlinked addresses. (linked = connected via a transaction chain).

  • 1
    Are you specifically concerned only with the sending address? Or are you trying to prevent the coins from being traced back to addresses A, B, and/or C. For example, would transferring from A to D and then from D to the recipient accomplish your objective? D would be the sending address, but D would have received the coins from A. Oct 17, 2012 at 17:11
  • 1
    It's also worth considering what the "change" address will be in the transaction. The asker of this question may be unaware of that address existing. Oct 17, 2012 at 18:49
  • Actually I am not aware of 'change' address, as I have never spent any BTC yet. Can you please elaborate?
    – Jus12
    Oct 18, 2012 at 6:53
  • @Jus12: See en.bitcoin.it/wiki/Change. Oct 18, 2012 at 10:00
  • @DavidSchwartz: I want to prevent the coins from being traced to A, B or C. I have updated my question with this information.
    – Jus12
    Oct 18, 2012 at 17:28

3 Answers 3


Bitcoin doesn't really have sender addresses.

Every transaction consumes some of your coins, and creates one or more new coins, potentially assigned to a different address. What the receiver can see is the transaction, and he can trace which coins it spent, and which addresses those coins were previously assigned to. Some programs/sites use the first such address as sender, but this is not recommended. It doesn't say who sent the money - only who previously controlled it (which may for example be a shared webwallet).

The reference client always considers its entire pool of (confirmed) coins as source for creating transactions. The recently (0.7.0) introduced raw transaction API allows fine-grained control over which coins are used as input, but does not have a GUI (yet).


In every client that I know of today, the sending account is selected automatically for you based on a defined set of rules.

If you need to control the sending address, you could do so using a client like Multibit, though the process would not exactly be straightforward. Assuming that you have a Multibit wallet with bitcoins, you would have to:

  1. export your private keys.
  2. edit the export file in a text editor to remove all keys except the one that you wish to spend.
  3. create a second wallet file in Multibit.
  4. import your edited private key file.
  5. spend your coins from the new wallet.
  6. export the keys from the new wallet file.
  7. import the keys from the new wallet file into your old wallet file.
  8. delete the new wallet file.

Note, steps 6 and 7 are necessary to capture the change addresses if you did not spend the entire amount in the new wallet.

It may also be possible to take that exported private key and import it into an online wallet like BlockChain.info's My Wallet or Mt Gox and spend it from there.


You can use Raw transactions to create a spend transaction from A, B, and C to the address D and then spend from D.

This obviously links D to A, B and C.

The only option to de-link these is to use other coins, similar to what mixing services provide.

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.