1

Can bitcoin-core wallet be configured to not use change addresses, but just one address?

If yes, how? Thanks

(PS: I know most people will try to convince me that this is not a good thing, but I have perfect valid reasons. I know the privacy implications of this, ok? :)

  • 1
    Address reuse is not just bad for you, but for everyone. Don't do it. And if you do anyway, smart potential users of your product will simply not use it for precisely that reason. – Jannes May 31 '16 at 12:03
  • Could you elaborate on your reasons? I feel that your reasons probably aren't as good as you think they are, and better solutions are likely available to you. – Jestin May 31 '16 at 13:36
  • 2 reasons: a) with confidential transactions coming to bitcoin-core soon, need for privacy via change addresses is not so important, b) transactions without change addresses are smaller, thus cheaper – knocte May 31 '16 at 14:35
  • 1
    @cowboy4life: I didn't say it's not important, I said it would be not so important – knocte Jun 1 '16 at 3:57
  • 1
    Transactions without change are smaller. But a transaction with change but no separate change address is not smaller. Also, confidential transactions are unlikely to come to Bitcoin any time soon. – Pieter Wuille Jun 5 '16 at 15:45
2

It's unclear what you want.

Do you want no change addresses, but still have change that goes back to one of the addresses from which coins were taken? That does not have any size/fee benefit. This is possible by using the coin control feature (in the Bitcoin-Core GUI) or the createrawtransaction RPC interface.

Do you want no change at all? That means the amount you are sending must exactly match the sum of the sizes of some of the unspent outputs you have in your wallet. It does result is slightly smaller transactions and thus lower fees, but it is highly constraining. You'll have to construct transactions manually if you need this.

  • Of course I don't refer to no change at all, that would be dumb. In regards to not having fee/size benefit, you're right, I just realized that if I want to send n bitcoins and all of my previous outpoints are lower than n, then I need many inputs regardless if I used change addresses or not. Thanks for making me think through it. (And thanks for telling me about coin-control and createRawTransaction, but I was looking for a bitcoin-core setting that would make the behaviour of createTransaction be different without recurring to different API or to UI.) – knocte Jun 5 '16 at 16:06
  • 1
    Such a setting doesn't exist. – Pieter Wuille Jun 5 '16 at 16:19
0

You can just send all the money leaving no change. This way there would be no money to send to a change address. Then if you need to take part of the money back, you can send the transaction with two outputs: 1. the address you are paying to; and 2. your original address.

By the way there is by design no way to just leave coins on an address. A transaction could be either spent or unspent with no partial spend. But you can send (in a new transaction) coins back to previously used address. Nevertheless it's often bad idea.

Edit: You may also want to enable Coin Control Features, which result in UI extended like below: Coin Control Features
(source: cryptocoinsnews.com)
This way you can just specify the old address as a change address.

  • you're just saying how one would do it sending transactions manually, but I asked how to do with BitcoinCore – knocte Jun 5 '16 at 15:28
  • how to enable Control Coin features? – knocte Jun 5 '16 at 15:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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