Author

Topic: How many comformations do I need to send without fees? (Read 1128 times)

legendary
Activity: 2324
Merit: 1125
Thanks a lot for the explanation, I thought all inputs >0.01 BTC were treated the same. This beats the hell out of trying it until my client stops complaining (would have taken 20 days lol).
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas
This is all about the 1% keeping the 99% down!


OCCUPY BITCOIN!!!
donator
Activity: 1218
Merit: 1079
Gerald Davis
So the less satoshis the larger the block?

The smaller the input (in satoshis) the longer the time (measured in blocks) required to get to the high priority threshold of 57,600,000.

All tx have a priority.  If the priority is <57,600,000 compliant nodes will require them tx to include a fee in order to be relayed or included in a block.  If the priority is 57,600,000+ the tx is not required to pay a fee (unless it violates the anti-spam rules).   High priority tx can still pay an optional fee to get priority processing by miners.  Since priority is a product of (value) * (age) the lower the value the higher the age needs to be in order to have the same priority.

Maybe some examples would help.
For simplicity all of the examples involve a single input.  If a tx has multiple inputs then priority is based on the sum product of inputs.

priority = sum(input_value_in_base_units * input_age)/size_in_bytes

0.01 BTC input, 200 blocks old
Code:
priority = (0.01 *1E8 * 200) / 250
priority = 800,000 LOW PRIORITY - FEE REQUIRED

0.01 BTC input, 1000 blocks old
Code:
priority = (0.01 *1E8 * 1,000) / 250
priority = 4,000,000 LOW PRIORITY -  FEE REQUIRED

1 BTC input, 144 blocks old  (the "1 bitcoin day" threshold)
Code:
priority = (1 *1E8 * 144) / 250
priority = 57,600,000 HIGH PRIORITY - NO FEE REQUIRED

100 BTC input, 5 blocks old
Code:
priority = (100 *1E8 * 5) / 250
priority = 200,000,000 HIGH PRIORITY - NO FEE REQUIRED
member
Activity: 98
Merit: 10
(:firstbits => "1mantis")
So the less satoshis the larger the block?
donator
Activity: 1218
Merit: 1079
Gerald Davis
If the tx consisted of a single 1 satoshi input and we assume it was 250 bytes in size.

https://en.bitcoin.it/wiki/Transaction_fees

Quote
priority = sum(input_value_in_base_units * input_age)/size_in_bytes

A tx must have a priority of 57,600,000 in order to be considered "high priority" and avoid fees.

priority = sum(input_value_in_base_units * input_age)/size_in_bytes
57,600,000 = 1 * input_age / 250
230,400 = input_age

The single satoshi input would need to be 230,400 blocks old (~4.3 years)*.

Remember priority is based on the INPUT not the desired send amount.  If you are sending someone 1 satoshi from an input of 100 BTC it would require much less time (because input: 100 BTC and output: 1 satoshi + 99.99999999999 BTC "change).


* Note: this was an academic exercise because there are hard coded rules which require a fee on tx with value of less than 0.01 BTC regardless of priority/age.  This is done to protect the network from spam.
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas
So sending one Satoshi with no fees would take...

Huh
donator
Activity: 1218
Merit: 1079
Gerald Davis
The exact rules are complex but a rule of thumb is 1 bitcoin day (144 confirms).

So if your input is 1 BTC you would need to wait for 1 day to have sufficient priority to avoid fees.  
If your only input is 0.05 BTC you would need to wait for 20 days. Sad

The sum of the inputs is used to calculate priority so you can for example send 10 BTC to the wallet and then wait a couple hours and send the entire 10.5 BTC without fee.  The outgoing tx (with both 10 BTC and 0.5 BTC inputs) will have a combined priority that is higher than the fee threshold.
legendary
Activity: 2324
Merit: 1125
I have created a new Wallet in Armory and send 0.05 BTC (without fees) to the wallet to test it out and would now like to return the amount to complete the test round. The client however keeps complaining I need to include a fee. The 0.05 BTC original transaction has 142 confirmations, how many do I need to be able to return the 0.05 BTC without paying any fees?
Jump to: