As far as I can tell, the user currently has little to no control over how outputs are selected for building a new transaction. I have had instances of trying to send the exact amount of an output, and hoping the transaction building algorithm would realize that and not involve other outputs, but having either the opposite happen, or even at one time having all my outputs sent in the same transaction, many of which were created in the same transactions. That sounds like needless privacy destroying behavior, so I wonder what can be done about that. So, there are a few things I would like to suggest and ask:

(1) Please explain how the output selection works in each of the transfer building algorithms. I have seen some links to the comments in the code, but couldn't get the main points of those constructions and the differences between them.

(2) Could we have a function that allows the user to manually choose what outputs to send, and which ones to include?

(3) Could it be made so that, on using always-confirm-transfers 1, in addition to asking if the fees charged are okay, it would also print out the outputs and their transfers hashes and ask the user if using those together is okay too? Since the transfer building algorithm seems to be randomized in the user's outputs selection, hopefully after trying a few times the user would get a transaction that doesn't involve outputs that they don't want to see linked.

Edit: Thank you user36303 for addressing item (2). I am still very much interested in learning more about (1) and really would like to see (3) get implemented, so I am placing a bounty for anyone addressing those points! (Also, I meant the bounty to be for more details, but it turned out saying I wanted more authoritative answer, for some reason...)

1 Answer 1


If you have log level 2 IIRC, the whole transactions are dumped to the log.

Output selection is random, within "priority" levels. Priority levels are determined by which outputs are related to outputs already in a transaction that's being built. This means that if you have enough outputs, you'll end up with unrelated outputs as inputs. The usual disclaimers apply: use a recent version (see github), might be buggy (file on github), etc.

There's no manual way to select outputs, mostly because it'd be a pain, but there's nothing preventing you from adding it. Improvements would be welcome.

  • I don't have the technical know how to implement that or even what I suggested on item (3), but I was hoping that my suggestion would be simple enough that some devs could do that in a half hour :)
    – user141
    Nov 23, 2016 at 14:53

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.