Author

Topic: Is it possible to send one Satoshi? (Read 2549 times)

donator
Activity: 1218
Merit: 1079
Gerald Davis
March 16, 2014, 11:26:57 AM
#17
Sending coins roughly involves three steps:

1) Constructing a transaction;
2) Broadcasting the transaction to the network (other nodes);
3) Having the transaction included into the blockchain by a miner;

We can use "Bitcoin-Qt > Help > Debug window > Console" to complete step 1) and 2) of sending one Satoshi. But whether step 3) can be completed is up to the miners.

That isn't exactly true.

Most clients (QT client included) will prevent you from creating a tx that the client itself will not relay.  This is done to protect users from having "stuck txs".  So by default the QT client will not allow you to do #1.  Now #1 isn't part of the protocol.  It is just a client side check to prevent you from doing something stupid.   It can be easily removed from the source code and recompiled.

However #2 isn't as easy.  All nodes have rules on which tx they will relay.  This is a anti DOS mechanism.  Low priority tx w/o fee will be dropped not relayed by any QT client.  Most other clients follow the same (or similar) rules.  So while you can get past #1 by modifying your client you can't control what other nodes do.   It is very likely that all of your peers will simply drop your non-standard tx.  #2 can be bypassed if you can connect to a miner directly of course as you point out nobody can force a miner to include a tx and there is no reason for a miner to include a non-standard no fee tx when there are waiting paying (and high priority no-fee) txs.
newbie
Activity: 14
Merit: 0
March 16, 2014, 11:21:37 AM
#16
There is no point sending so small amount, i think that all new versions of software will not allow you to send or even receive so small amount , so do not even try to send it, because if the user you are sending to have newer version he/she will not receive anything.
legendary
Activity: 3472
Merit: 4801
March 16, 2014, 11:10:13 AM
#15
Regarding this 5300 Satoshi limit, where is the official Bitcoin "bible" where rules like that are kept, in moments when you need to check the official protocol to understand some of the finer points of how Bitcoin works?

Here:
https://github.com/bitcoin/bitcoin

For amounts under 5300 Satoshis, if you want to transmit them (perhaps to convey data, as opposed to monetary value), you'll need "carrier Bitcoin" for them to ride along with, and then the recipient would send the "carrier Bitcoin" back.

So, you could do something like: A sends .001 000 01 to B, and then B sends .001 back to A, which would effectively transmit one satoshi to B.

BUT, during the process, person A and B have also lost 10,000 satoshis due to the fee, which is 20,000x the amount transmitted obviously, but since it was more of a "data transaction" than a "value transaction," they don't mind.

Depending on how much each wallet has to start with, this process might not work.

As an example, if wallet B is empty to start with, they will receive a single unspent output valued at 0.00100001 BTC (so far so good).

Then B will attempt to send 0.001 BTC back to A.  Unfortunately, B will run into 2 problems:

  • B doesn't have enough bitcoins to pay the 0.0001 BTC transaction fee
  • B will have to generate a transaction that has a single input of 0.00100001 BTC, the transaction will have to have 2 outputs.  One output sending 0.001 BTC to A, and a second output sending the 0.00000001 BTC change back to his own wallet.  Unfortunately the 0.00000001 BTC output is non-standard, so the transaction won't be relayed by any peers
full member
Activity: 173
Merit: 100
March 16, 2014, 05:54:51 AM
#14
Sending coins roughly involves three steps:

1) Constructing a transaction;
2) Broadcasting the transaction to the network (other nodes);
3) Having the transaction included into the blockchain by a miner;

We can use "Bitcoin-Qt > Help > Debug window > Console" to complete step 1) and 2) of sending one Satoshi. But whether step 3) can be completed is up to the miners.
hero member
Activity: 490
Merit: 500
March 15, 2014, 01:06:42 AM
#13
Net of Tx fees, yes
full member
Activity: 154
Merit: 100
March 15, 2014, 12:30:16 AM
#12
Apologies for the 5430 vs 5300 error. You get the idea however.

Regarding this 5300 Satoshi limit, where is the official Bitcoin "bible" where rules like that are kept, in moments when you need to check the official protocol to understand some of the finer points of how Bitcoin works?
I believe it is at the moment just consensus, the 5430 driven by decisions made in the reference client bitcoin-qt, and the 0.0001 based on what most miners will accept. These values are not part of the protocol.
hero member
Activity: 714
Merit: 500
NEED CRYPTO CODER? COIN DEVELOPER? PM US FOR HELP!
March 15, 2014, 12:26:52 AM
#11
I hope that you got your answers and suggest you to lock this thread now and always prefer to google and search  the forum before making a new thread !!! Good luck Smiley
donator
Activity: 1218
Merit: 1079
Gerald Davis
March 15, 2014, 12:25:29 AM
#10
It is 5430 satoshis not 5300.  Also tx with outputs less than that are allowed they are just non-standard.  If you can find a miner (or yourself) willing to include it in the next block you could send 1 satoshi with no fee.
newbie
Activity: 28
Merit: 0
March 15, 2014, 12:22:01 AM
#9
Ok, I'm understanding better now. Thanks guys.

For amounts under 5300 Satoshis, if you want to transmit them (perhaps to convey data, as opposed to monetary value), you'll need "carrier Bitcoin" for them to ride along with, and then the recipient would send the "carrier Bitcoin" back.

So, you could do something like: A sends .001 000 01 to B, and then B sends .001 back to A, which would effectively transmit one satoshi to B.

BUT, during the process, person A and B have also lost 10,000 satoshis due to the fee, which is 20,000x the amount transmitted obviously, but since it was more of a "data transaction" than a "value transaction," they don't mind.

A lot of thinking just to find a way to do my exponential coin experiment, but it's helping me understand Bitcoin better, so I've got that going for me...

Regarding this 5300 Satoshi limit, where is the official Bitcoin "bible" where rules like that are kept, in moments when you need to check the official protocol to understand some of the finer points of how Bitcoin works?
full member
Activity: 154
Merit: 100
March 15, 2014, 12:07:54 AM
#8
So, if I have 10,000 satoshis and I send 9,001, my balance = 10,000 - 9,001 - the fee, and the recipient gets the full 9,001?
Since the minimum txfee is 10k satoshis, this example doesn't work.

If you instead had 20k satoshis and sent 9k of them, the actual transaction would cost you 19k satoshis, leaving you with 1k satoshis and the recipient receiving the 9k satoshis.
full member
Activity: 154
Merit: 100
March 15, 2014, 12:02:21 AM
#7
Say hypothetically, as a workaround, someone sends me 10,001 Satoshis, and I send them 10,000 Satoshis back. Would that work on all wallets, and be processed properly by the miners?
You will both need to spend at least 0.0001 per transaction in order to get these transactions processed, otherwise they are likely to take days or maybe forever.

So the end result would be:

Code:
them: -0.00010001 - 0.0001 + 0.0001 = -0.00010001
you:  +0.00010001 - 0.0001 - 0.0001 = -0.00009999

You both lose out.
newbie
Activity: 28
Merit: 0
March 14, 2014, 11:58:04 PM
#6
Thanks, cAPSLOCK.

And the wallets pull the transaction fees from the wallet in addition to the sum being sent, not from the actual sum, right?

So, if I have 10,000 satoshis and I send 9,001, my balance = 10,000 - 9,001 - the fee, and the recipient gets the full 9,001?
legendary
Activity: 3766
Merit: 5146
Note the unconventional cAPITALIZATION!
March 14, 2014, 11:53:56 PM
#5
Got it, thanks very much to both of you.

That's a bummer.

So, if I understand correctly, you can go to the 8th decimal point if you need to, on a transaction larger than around 5300 Satoshis, but transactions lower than that limit will not be processed.

Say hypothetically, as a workaround, someone sends me 10,001 Satoshis, and I send them 10,000 Satoshis back. Would that work on all wallets, and be processed properly by the miners?

Once you account for transaction fees... Yes.
newbie
Activity: 28
Merit: 0
March 14, 2014, 11:50:41 PM
#4
Got it, thanks very much to both of you.

That's a bummer.

So, if I understand correctly, you can go to the 8th decimal point if you need to, on a transaction larger than around 5300 Satoshis, but transactions lower than that limit will not be processed.

Say hypothetically, as a workaround, someone sends me 10,001 Satoshis, and I send them 10,000 Satoshis back. Would that work on all wallets, and be processed properly by the miners?
full member
Activity: 154
Merit: 100
March 14, 2014, 11:46:48 PM
#3
Transactions below 5300 satoshis are considered non-standard and will not be relayed by any node I am aware of. So while such a transaction is possible, your wallet software is saving you from making an error.
sr. member
Activity: 299
Merit: 253
March 14, 2014, 11:43:42 PM
#2
There is a minimum, 6800 Satoshis or so.

Here you go:
Quote
Any transaction with any of its outputs less than 5430 satoshis (0.00005430 BTC) would be classified as non-standard, and will not be included or further propagated across the network by default miners.

You can still send raw transactions or use a wallet which supports them, but they might not make it anywhere.
newbie
Activity: 28
Merit: 0
March 14, 2014, 11:41:30 PM
#1

When I try to send .00000001 Bitcoins from the Hive app on Mac, it changes the number to zero.

Does this happen on all the wallet apps?

I'm working on a small experiment... an exponential digital coin - where coin #1 costs .00000001 BTC, coin #2 costs .00000002 BTC, and it keeps doubling, all the way to coin #50, which costs over 5 million Bitcoins. (The ownership of each coin is tracked manually... Hehe, it's awkward and silly, I know, but I'm curious to see what happens: http://exponentialsatoshis.wordpress.com)

But, the whole thing won't really work if it isn't possible to actually send 1 Satoshi, and all the wallet apps are rounding to 3 or 4 decimals.

Thanks very much for any help you guys can provide on this topic.

(Any comments on the experiment are welcome too, but I'm not sure if that discussion belongs on another forum topic.)
Jump to: