Bitcoin Forum
November 01, 2024, 09:06:57 PM *
News: Bitcoin Pumpkin Carving Contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How many comformations do I need to send without fees?  (Read 1128 times)
wachtwoord (OP)
Legendary
*
Offline Offline

Activity: 2338
Merit: 1136


View Profile
July 25, 2012, 04:33:56 PM
 #1

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?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 25, 2012, 04:39:24 PM
 #2

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.
Elwar
Legendary
*
Offline Offline

Activity: 3598
Merit: 2386


Viva Ut Vivas


View Profile WWW
July 25, 2012, 04:48:45 PM
 #3

So sending one Satoshi with no fees would take...

Huh

First seastead company actually selling sea homes: Ocean Builders https://ocean.builders  Of course we accept bitcoin.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 25, 2012, 04:59:05 PM
 #4

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.
unclemantis
Member
**
Offline Offline

Activity: 98
Merit: 10


(:firstbits => "1mantis")


View Profile
July 25, 2012, 05:16:44 PM
 #5

So the less satoshis the larger the block?

PHP, Ruby, Rails, ASP, JavaScript, SQL
20+ years experience w/ Internet Technologies
Bitcoin OTC | GPG Public Key                                                                               thoughts?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 25, 2012, 05:35:19 PM
Last edit: July 25, 2012, 05:45:32 PM by DeathAndTaxes
 #6

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
Elwar
Legendary
*
Offline Offline

Activity: 3598
Merit: 2386


Viva Ut Vivas


View Profile WWW
July 25, 2012, 05:39:36 PM
 #7

This is all about the 1% keeping the 99% down!


OCCUPY BITCOIN!!!

First seastead company actually selling sea homes: Ocean Builders https://ocean.builders  Of course we accept bitcoin.
wachtwoord (OP)
Legendary
*
Offline Offline

Activity: 2338
Merit: 1136


View Profile
July 25, 2012, 05:42:25 PM
 #8

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).
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!