Author

Topic: Many tiny incoming transactions = bad/expensive to spend? (Read 2055 times)

legendary
Activity: 916
Merit: 1003
I'll have to look into it more deeply then.  I sense it's a hack that was added to the client to prevent spam transactions.

I find this annoying because sending my paltry 16 LTC costs 4 LTC in tx fees.  I admit it's probably that high because it's so many small transactions, but that's why I want to consolidate.
legendary
Activity: 3472
Merit: 4801
I don't know much about litecoin, but since it was based largely on Bitcoin, I'd guess that the litecoin client probably has an advanced interface that allows the building of raw transactions where you can choose the exact fee you want to force.
legendary
Activity: 916
Merit: 1003
I've discovered that this method is impossible with the Litecoin client.  Even if you set the TX fee to 0 LTC it still insists on a fee that it's calculated internally and won't let you send without it.
legendary
Activity: 916
Merit: 1003
Since I'm a small miner and have spent some time mining on p2pool I have lots of small transactions.  When I went to buy something for approx 10 BTC it took a loooooong time to send.  I had been thinking it would be a good idea to do this consolidation myself for next time.
The info in this thread has been helpful, thanks guys.
k
sr. member
Activity: 451
Merit: 250


And this will consolidate my BTC and turn my "dust" into good a single lump of BTC? What can go wrong if anything?


Maybe some loss of privacy if you are paranoid about that type of thing.
hero member
Activity: 740
Merit: 500
Hello world!
Just tried to consolidate my funds into one address with the satoshi client. But I wasn't able to set the fee to 0.

Would it be a good idea for clients to introduce a 'consolidate' button? It would perform the first four steps described by psy.

1- Set your bitcoin client fee to 0
2- Copy the amount of your entire balance
3- Try to send your entire balance to a newly created address on the same wallet
4- If the client asks for a fee: Cancel. If no fee: Send

This would allow responsible users the ability to tidy up, without needing any more tech know-how than the ability to push a shiny button.

Exactly. I want to tidy up, but I can't.

I guess if I could, then the blockchain would be better off as well.
newbie
Activity: 48
Merit: 0
Just tried to consolidate my funds into one address with the satoshi client. But I wasn't able to set the fee to 0.

Would it be a good idea for clients to introduce a 'consolidate' button? It would perform the first four steps described by psy.

1- Set your bitcoin client fee to 0
2- Copy the amount of your entire balance
3- Try to send your entire balance to a newly created address on the same wallet
4- If the client asks for a fee: Cancel. If no fee: Send

This would allow responsible users the ability to tidy up, without needing any more tech know-how than the ability to push a shiny button.
legendary
Activity: 3472
Merit: 4801
Here is a related question. How many inputs should trigger me to sweep a non-dust privkey?

I have a couple of privkeys with significant bitcoins in them (not dust), but their number of inputs is approaching 20 transactions each. At what point should I sweep them into new addresses, thereby consolidating their inputs back to 1 again? Does anyone have a rule of thumb?

That really is a personal decision.  In my opinion, the more often you sweep the balances, the less anonymity you have. Personally I sweep all outputs together at least once a week if I received any transactions that week at all.  If you are using a wallet that has coin control, you might consider just sweeping together the balances that are under 0.05 BTC whenever you have more than one that small.

I'm sure others will have other (better?) advice.  These are just my personal thoughts on the matter.
full member
Activity: 198
Merit: 100
Here is a related question. How many inputs should trigger me to sweep a non-dust privkey?

I have a couple of privkeys with significant bitcoins in them (not dust), but their number of inputs is approaching 20 transactions each. At what point should I sweep them into new addresses, thereby consolidating their inputs back to 1 again? Does anyone have a rule of thumb?
legendary
Activity: 1358
Merit: 1002
You can just send the money back to yourself and the transaction will aggregate. It might take a long time to confirm but eventually the age of the inputs will be high enough to give it priority (unless you have bajillions of them).

In future wallets will probably do this by themselves, but for now you have to help them a bit.

I have between six and seven hundred incoming transactions, they range in size from between 1.3 BTC to 0.00000001 BTC and everything in between. Dates from mid 2011 to today.

So will it be sufficient if I take all my BTC and send to 1 address I contol in the same wallet? What kind of fee should I set for it? What if it is never picked up due to it's size?

I have patience to wait for weeks if need be, but I am afraid I will mess this up and lose my coins, send them into limbo or just waste BTC trying in vain to fix the problem.

1- Set your bitcoin client fee to 0
2- Copy the amount of your entire balance
3- Try to send your entire balance to a newly created address on the same wallet
4- If the client asks for a fee: Cancel. If no fee: Send
5- ?? ??
6- Profit

And this will consolidate my BTC and turn my "dust" into good a single lump of BTC? What can go wrong if anything?

Nothing can go wrong. I do that at least every couple of days.
hero member
Activity: 740
Merit: 500
Hello world!
You can just send the money back to yourself and the transaction will aggregate. It might take a long time to confirm but eventually the age of the inputs will be high enough to give it priority (unless you have bajillions of them).

In future wallets will probably do this by themselves, but for now you have to help them a bit.

I have between six and seven hundred incoming transactions, they range in size from between 1.3 BTC to 0.00000001 BTC and everything in between. Dates from mid 2011 to today.

So will it be sufficient if I take all my BTC and send to 1 address I contol in the same wallet? What kind of fee should I set for it? What if it is never picked up due to it's size?

I have patience to wait for weeks if need be, but I am afraid I will mess this up and lose my coins, send them into limbo or just waste BTC trying in vain to fix the problem.

1- Set your bitcoin client fee to 0
2- Copy the amount of your entire balance
3- Try to send your entire balance to a newly created address on the same wallet
4- If the client asks for a fee: Cancel. If no fee: Send
5- ?? ??
6- Profit

And this will consolidate my BTC and turn my "dust" into good a single lump of BTC? What can go wrong if anything?
legendary
Activity: 1358
Merit: 1002
You can just send the money back to yourself and the transaction will aggregate. It might take a long time to confirm but eventually the age of the inputs will be high enough to give it priority (unless you have bajillions of them).

In future wallets will probably do this by themselves, but for now you have to help them a bit.

I have between six and seven hundred incoming transactions, they range in size from between 1.3 BTC to 0.00000001 BTC and everything in between. Dates from mid 2011 to today.

So will it be sufficient if I take all my BTC and send to 1 address I contol in the same wallet? What kind of fee should I set for it? What if it is never picked up due to it's size?

I have patience to wait for weeks if need be, but I am afraid I will mess this up and lose my coins, send them into limbo or just waste BTC trying in vain to fix the problem.

1- Set your bitcoin client fee to 0
2- Copy the amount of your entire balance
3- Try to send your entire balance to a newly created address on the same wallet
4- If the client asks for a fee: Cancel. If no fee: Send
5- ?? ??
6- Profit
hero member
Activity: 740
Merit: 500
Hello world!
You can just send the money back to yourself and the transaction will aggregate. It might take a long time to confirm but eventually the age of the inputs will be high enough to give it priority (unless you have bajillions of them).

In future wallets will probably do this by themselves, but for now you have to help them a bit.

I have between six and seven hundred incoming transactions, they range in size from between 1.3 BTC to 0.00000001 BTC and everything in between. Dates from mid 2011 to today.

So will it be sufficient if I take all my BTC and send to 1 address I contol in the same wallet? What kind of fee should I set for it? What if it is never picked up due to it's size?

I have patience to wait for weeks if need be, but I am afraid I will mess this up and lose my coins, send them into limbo or just waste BTC trying in vain to fix the problem.
legendary
Activity: 1526
Merit: 1134
You can just send the money back to yourself and the transaction will aggregate. It might take a long time to confirm but eventually the age of the inputs will be high enough to give it priority (unless you have bajillions of them).

In future wallets will probably do this by themselves, but for now you have to help them a bit.
legendary
Activity: 3472
Merit: 4801
Now, what if I send all my coins to a new address, won't this do the trick? Also, I have patience, so could I do this with a very small fee, if I am willing to wait for weeks for it to confirm?

Whether or not you can even try will depend on a few factors, some of the most important of which are probably:

  • What wallet are you using? (Electrum, MultiBit, Bitcoin-Qt, blockchain.info, etc)
  • Just how many of these tiny outputs do you have, and how small are they?
  • How big of a fee would you consider acceptable?

I haven't looked at the tipping bot on reddit, but there isn't any reason that reddit can't set up their own internal account for everyone and act as a clearing house.

When you send a tip, it could be sent to reddit's wallet and they can write up a up a sweeper that frequently combines the outputs.  Then when you've been tipped enough, you can "withdraw" your balance from reddit, and they just send a single transaction for your total balance to you.

There are multiple issues with large scale use of the bitcoin protocol for extremely small amounts.  In these early days of bitcoin it's possible since getting a free transaction into a block is still a likely event.  However, the protocol was specifically and intentionally designed to eventually make transaction fees a significant part of mining revenue.  This would seem to indicate that while free micro-transactions were possible during the "early-adoption" phase of bitcoin, it was never really intended to support such transactions.
hero member
Activity: 740
Merit: 500
Hello world!
I would love a program that could combine these coins into one transaction.

And I am looking for a fix to the coins I already have, not future coins (not going to use faucets any longer, due to this issue).

The sad thing is, that this does not bode well for bitcoins use for micro transactions, such as the tippingbot on reddit, or other flattr like services.

Now, what if I send all my coins to a new address, won't this do the trick? Also, I have patience, so could I do this with a very small fee, if I am willing to wait for weeks for it to confirm?
legendary
Activity: 3472
Merit: 4801
What I do is I send ALL the balance in my wallet to another of my addresses on the same wallet once or twice a week.
Usually I have enough coin in it that I can do that without paying a fee, and I end up with only one address containing 100BTC instead of having 56 addresses with 1 or 2 comprising 90% or more of the wallet balance and the rest of them with very low value inputs that will ask for outrageous fees if I wish to spend them.

Yes.  I do the same.  This is a great preventive measure for those who already have a large enough balance and a low transaction frequency.

I've felt for a while now, however, that the bitcoin clients could use a way to help those who have already gotten themselves into the situation and now are looking for a "fix".  Seems like I should be able to create a "wallet sweeper" that scans the wallet regularly to see how many inputs are less than 0.01 BTC and how old the largest outputs are.  If it finds that there are one or more sub 0.01 BTC outputs that could be combined with the largest/oldest output and still have a high enough priority to be sent without a fee, it could ask the user if they want to sweep the outputs together.  If the user answers yes, it would create a transaction that spends as many small outputs as possible with one or more large outputs and send to a new wallet address.  Perhaps include a setting for "auto-confirm", so that the wallet just continuously sweeps whenever possible until all outputs are greater than 0.01 BTC.
legendary
Activity: 1358
Merit: 1002
What I do is I send ALL the balance in my wallet to another of my addresses on the same wallet once or twice a week.
Usually I have enough coin in it that I can do that without paying a fee, and I end up with only one address containing 100BTC instead of having 56 addresses with 1 or 2 comprising 90% or more of the wallet balance and the rest of them with very low value inputs that will ask for outrageous fees if I wish to spend them.
legendary
Activity: 3472
Merit: 4801
And is there any way someone with no technical skills can do this?

I have been spending ages getting 0.000001 btc transactions from fountains for free, and now I begin to realize it was never worth the effort Sad

I'd hang on to a backup of that wallet.  There are enough people with the same issue as you that I suspect within a few years someone will create a wallet that can sweep these funds together for you.  At the moment, I'm not aware of any easy way for a person with no technical skills to sweep the outputs together.

I suppose you might be able to find a forum member with technical skills who would be willing to help you out and sweep the funds together for you, but you'd have to be really sure that you trust them not to simply take the funds.

Perhaps when I've got some free time in the next few years I'll try and put together a program that can handle it for you.  In the meantime, I'd suggest contacting anyone who is sending you these mostly useless tiny transactions and let them know that you'd prefer that they create a way for you to build up a balance with them over time and that they only send the balance to you via bitcoin when the value is larger than $0.01 (or better yet, provide you with a method to choose when you want to transfer the bitcoin balance to yourself).  Then let them know that you won't use their service any longer until they implement such an interface.  Perhaps if enough people do this, market pressures will provide an incentive for them to improve their process.
hero member
Activity: 740
Merit: 500
Hello world!
And is there any way someone with no technical skills can do this?

I have been spending ages getting 0.000001 btc transactions from fountains for free, and now I begin to realize it was never worth the effort Sad
sr. member
Activity: 374
Merit: 250
Tune in to Neocash Radio
You can also use the custom transaction interface with a blockchain.info wallet. 

Just put your inputs as

.92BTC +                                      .5BTC payment
dust transaction        ------>          .42 + dust payment

With blockchain.info this works best if there is only one dust transaction at that address. 
The raw transaction should do something similar and I believe it can resolve the issue of many dust payments to one address. 

legendary
Activity: 3472
Merit: 4801
Yes, there is truth to it.

Getting peers to relay a transaction that has many tiny value inputs, and getting a miner to include that transaction in a block can require a hefty transaction fee.  If you have a large enough quantity of small enough inputs, the fee needed can be substantially higher that the amount you are trying to send.

There isn't an easy way for the average user to make the "bad" bitcoins (often referred to as "dust") good.  If anyone sends you such transactions you should let them know that you would prefer that they wait until you've built up a value that is closer to $0.01 and then send it all at once in a single transaction.  Perhaps let them know that you will be refusing to use their service anymore until they put such a practice in place.

If you are technically inclined, you can use raw transactions to combine the dust with a single larger value input that you have the private key to.
hero member
Activity: 740
Merit: 500
Hello world!
I have received a number of tiny bitcoin transactions, as low as 1 satoshi.

Now from what I can gather, there seems to be some sort of issue spending the bitcoins that are made up of all these tiny incoming transactions?

Is there any truth to this, and how do I make my "bad" bitcoin good?
Jump to: