6

Suppose I have only a single 100 XMR output denomination for my address. How can I split this up, so that when I want to make a 5 XMR transfer, only a subset of my 100 XMR will be locked for about 20 minutes (10 confirmations)? On Reddit, JollyMort made a good analogy with actual cash, where $100 is split into 10 separate $10 bills.

  1. Could someone please post an example of the monero-wallet-cli command to use?
  2. Since transfer fees eat away from the original 100 XMR, I suppose you can't split 100 XMR into 10 times 10 XMR, right?

1 Answer 1

7

You can do this by using the transfer_original command. The default transfer command will not split, but seems to be aggregating all the amounts going to the same address in a single denomination. This is based on a few tests I did just now.

So, to split 100XMR to 10 denominations of 10XMR, you'd do:

transfer_original <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10 <youraddress> 10

Of course, you need to have a little more than 100XMR to be able to pay the fee.

One problem with this was pointed out, though. All of these 10 denominations would be in the same TX. If using more than one of them for some payment of >10XMR, it would stick out on the blockchain and these 2 (or more) outputs could be linked together because they come from the same TX. This is unlikely to happen by pure chance when picking decoy outputs to mix with so one could say there's a high likelihood that those 2 outputs belong to the same sender. Not only does this reveal that those 2 outputs were spent by the same person, but it could also reveal that they were likely spent. Then, any ring signature which uses one of those as decoy outputs would be weakened as well.

I'm not sure if it would have a significant impact to privacy if done once per wallet, but I'm inclined to think that it's not such a good idea, after all.

3
  • This needs to be performed proactively, right? In other words, one would have to anticipate having to send a smaller denomination, because transfer_original will have the same effect of effectively locking those funds for ~20 minutes. Commented Nov 16, 2016 at 16:11
  • Yes, you'd do this in advance, when waiting 20min is not a big deal. Later, your wallet would have to lock only 10XMR when sending 5XMR, because it would have a small amount available. One problem with this was pointed out, though. All these 10 denominations would be in the same TX. If using more than one for a payment, it would stick-out on the blockchain and the 2 (or more) outputs could be linked together because they come from the same TX, which is unlikely to happen by pure chance when picking decoy outputs to mix with. It would be a problem when making payments of >10XMR, for the above.
    – JollyMort
    Commented Nov 16, 2016 at 23:48
  • How is this done on current Monero version? Commented Jan 11, 2019 at 22:06

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.