4

I am using latest (v0.11.1.0) monerod.exe and monero-wallet-cli.exe to manage my wallet.

I'd like to transfer all my Monero coins in a wallet to a new wallet, but I receive a strange error message, so far couldn't find any solution for the issue.

Any ideas?

[wallet 4AL7WA]: sweep_all 5 4AL7WAeEmuSVYxScsZPpDKdpmGUC228nG529vhCAcGHNGwA8eMh6M6dSPsZzifftURDRCkYv96fkRYh9tx1ViiVpHAZddkG
Wallet password: **********
No payment id is included with this transaction. Is this okay?  (Y/Yes/N/No): Y
Error: not enough outputs for specified ring size = 5:
output amount = 0.000000289108, found outputs to use = 1
output amount = 0.000000078465, found outputs to use = 1
galoget
  • 161
  • 6
JackD
  • 43
  • 3

1 Answers1

4

This error message:

Error: not enough outputs for specified ring size = 5:

Is saying there aren't enough outputs of the matching denomination on the blockchain to make a ring signature of size 5, which means your ouput and 4 others. You have at least one output of a denomination that's rare.

To spend these, use the sweep_unmixable command. This will gather those outputs without enough "siblings" on the chain and spend them at ring size 1. Once that's done, you can sweep_all again at ring size 5.

This is mostly a legacy thing, since the currently used ringct encrypts amounts so you don't need matching denominations anymore, but for older, pre-ringct outputs, this can still happen, as it does here.

galoget
  • 161
  • 6
user36303
  • 34,858
  • 2
  • 57
  • 123
  • I've made a patch that suggests the use of sweep_unmixable: https://github.com/monero-project/monero/pull/3214 – stoffu Jan 31 '18 at 01:40
  • I've tried to use sweep_unmixable, but it also gives an error message: Error: internal error: Transaction cannot pay for itself – JackD Feb 01 '18 at 02:09
  • Then you have tiny outputs worth about nothing. – user36303 Feb 01 '18 at 09:34
  • 1
    Well, those outputs may be tiny ones but the sum is more than nothing: 1.87 XMR. It would be sad if there is no way to transfer this amount if outputs are tiny. If your outputs are tiny, they useless, WTF? Any ideas, please? – JackD Feb 01 '18 at 10:31
  • I think there does exist a limit to how small a dust output can be in order for it to be spendable, unfortunately. Here's my quick calculation: using the lowest fee level, the required fee is about 0.003 XMR / 13 kB = 0.0000002308 XMR/byte. Each input ring signature with the minimum ring size of 5 adds 433 bytes (https://github.com/monero-project/monero/blob/ed67e5c001d50a2eea5fa24dfc58eba0921d525b/src/wallet/wallet2.cpp#L479), so a dust output is spendable if the amount is more than 0.0000002308 XMR/byte * 433 byte = 0.0000999364 XMR. Are your dust outputs smaller than this amount? – stoffu Feb 05 '18 at 03:10
  • Note that the required fee per byte can decrease in the future due to increased demand and technical improvements, and your dusts that are currently unspendable can become spendable in the future. – stoffu Feb 05 '18 at 03:23
  • The above number 433 byte/input seems wrong since it assumes the ring size of 5 (which isn't the case for dust sweeping txes where ring size is 1) and applies to the RingCT case only; I think the correct number is somewhere around 100 byte/input, but I'm not exactly sure. – stoffu Feb 05 '18 at 04:12
  • 1
    @JackD - Try using the generic transfer command and working your way down until it does not throw an error, i.e., start with transfer <address> 1.87 -> transfer <address> 1.85 -> transfer <address> 1.80 -> transfer <address> 1.75 etc. This is a workaround until something like this is implemented. – dEBRUYNE Feb 05 '18 at 11:36
  • @dEBRUYNE - Seems my only option this time. I'd be happy to have a lower cost dust sweeping mechanism. – JackD Feb 06 '18 at 20:17