Pages:
Author

Topic: Zero fee transaction (Read 4154 times)

full member
Activity: 238
Merit: 100
June 21, 2016, 06:35:45 AM
#49
where is the zero fee transection i really need itl.
member
Activity: 102
Merit: 12
June 20, 2016, 11:42:06 AM
#48
Thank u for the follow up>i was able to sign the transaction but as soon as I tried to broadcast it this happened :
15:29:26

66: mempool min fee not met (code -26)

which in my opinion is asking for the fee which again defies my very urgent motive ie to create zero fee transaction.How to proceed from this step?

So, you have now successfully accomplished what we set out to do: Create a zero fee transaction.

Now it looks like you are trying to find a way to broadcast this transaction.

Unfortunately, because it is expected that most peers will refuse to relay any transaction that doesn't have a sufficient fee, and it is assumed that miners won't bother confirming your transaction if it doesn't have a sufficient fee, the default installation of Bitcoin Core is configured warn you and refuse to broadcast it.

It's not very useful to broadcast a transaction to peers that are simply going to ignore it. Most of the network and miners will never even hear about it.

So, keep in mind that even if you change the configuration on your Bitcoin Core to allow it to broadcast free transactions, all of your connected peers might just ignore the transaction.

With that in mind:

If you have an arrangement with a mining pool to confirm your transactions, you could just send the transaction directly to them (you'll need to contact the pool to find out how they'd like to receive the transaction).

If you really want to try broadcasting your transaction from Bitcoin Core, I believe you can use bitcoin.conf to change some of the fee restriction settings in Bitcoin Core.

You could also try using an API from a service that is willing to broadcast signed transactions for you.  There are a few websites that will do that:



Thank u for all the info.
I really appreciate it.
legendary
Activity: 3472
Merit: 4801
June 20, 2016, 11:06:50 AM
#47
Thank u for the follow up>i was able to sign the transaction but as soon as I tried to broadcast it this happened :
15:29:26

66: mempool min fee not met (code -26)

which in my opinion is asking for the fee which again defies my very urgent motive ie to create zero fee transaction.How to proceed from this step?

So, you have now successfully accomplished what we set out to do: Create a zero fee transaction.

Now it looks like you are trying to find a way to broadcast this transaction.

Unfortunately, because it is expected that most peers will refuse to relay any transaction that doesn't have a sufficient fee, and it is assumed that miners won't bother confirming your transaction if it doesn't have a sufficient fee, the default installation of Bitcoin Core is configured warn you and refuse to broadcast it.

It's not very useful to broadcast a transaction to peers that are simply going to ignore it. Most of the network and miners will never even hear about it.

So, keep in mind that even if you change the configuration on your Bitcoin Core to allow it to broadcast free transactions, all of your connected peers might just ignore the transaction.

With that in mind:

If you have an arrangement with a mining pool to confirm your transactions, you could just send the transaction directly to them (you'll need to contact the pool to find out how they'd like to receive the transaction).

If you really want to try broadcasting your transaction from Bitcoin Core, I believe you can use bitcoin.conf to change some of the fee restriction settings in Bitcoin Core.

You could also try using an API from a service that is willing to broadcast signed transactions for you.  There are a few websites that will do that:

member
Activity: 102
Merit: 12
June 20, 2016, 10:31:52 AM
#46
oh well!
As a matter of fact
I'm trying to spend 0.00136988 sent to the address : 1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo If there's a way I con do it or I got the whole spending scenario wrong?

If you look at the transaction that created the output you are trying to spend, you'll see that it has 2 outputs.  You have to specify which output you want to spend.

Quote
getrawtransaction 48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf 1

{
  "txid": "48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf",
  "size": 373,
  "version": 1,
  "locktime": 0,
  "vin": [
    {
      "txid": "3e7b1a8dbf026d77e62bb896d560dca9b27a576340119fee7d16492d2ace32a4",
      "vout": 0,
      "sequence": 4294967295
    },
    {
      "txid": "af7d3ded1b8ccd2138bf35a7154f389fd90ac5af2beb73f5b8849d2df69bb572",
      "vout": 1,
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.00005775,
      "n": 0,

      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 3023e5def45112164a3519728cc27f975e6e39e1 OP_EQUALVERIFY OP_CHECKSIG",
        "type": "pubkeyhash",
        "addresses": [
          "15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd"
        ]
      }
    },
    {
      "value": 0.00136988,
      "n": 1,

      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 94b9e905ee5bf75f0bb9b90f1383689f5cdc3a7e OP_EQUALVERIFY OP_CHECKSIG",
        "type": "pubkeyhash",
        "addresses": [
          "1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo"
        ]
      }
    }
  ],
  "blockhash": "0000000000000000055d59425a4f802b41bc1cbf3437329525ab5d5e6b4687a6",
  "confirmations": 137,
}


If you have the private key for 1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo in your wallet, then this should work:

Code:
createrawtransaction [{\"txid\":\"48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf\",\"vout\":1}] {\"1DAbnF1nDhLWkkMKVqKNHRJF39fwfjdrfB\":0.00136988}

Which should result in a transaction that looks like this:
0100000001bf5fb8dc3884edc6e8c4d1e028624975b5e184deda1bcd6d77b312d1547dd54801000 00000ffffffff011c170200000000001976a914857249351a591cec53e19c9bd8320370b1f4746b 88ac00000000

The difference between this transaction and the one you are trying to sign is that this one is spending the output (vout) where n=1, and you were trying to spend the output (vout) where n=0.


Thank u for the follow up>i was able to sign the transaction but as soon as I tried to broadcast it this happened :
15:29:26

66: mempool min fee not met (code -26)

which in my opinion is asking for the fee which again defies my very urgent motive ie to create zero fee transaction.How to proceed from this step?
legendary
Activity: 3472
Merit: 4801
June 20, 2016, 06:23:02 AM
#45
oh well!
As a matter of fact
I'm trying to spend 0.00136988 sent to the address : 1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo If there's a way I con do it or I got the whole spending scenario wrong?

If you look at the transaction that created the output you are trying to spend, you'll see that it has 2 outputs.  You have to specify which output you want to spend.

Quote
getrawtransaction 48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf 1

{
  "txid": "48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf",
  "size": 373,
  "version": 1,
  "locktime": 0,
  "vin": [
    {
      "txid": "3e7b1a8dbf026d77e62bb896d560dca9b27a576340119fee7d16492d2ace32a4",
      "vout": 0,
      "sequence": 4294967295
    },
    {
      "txid": "af7d3ded1b8ccd2138bf35a7154f389fd90ac5af2beb73f5b8849d2df69bb572",
      "vout": 1,
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.00005775,
      "n": 0,

      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 3023e5def45112164a3519728cc27f975e6e39e1 OP_EQUALVERIFY OP_CHECKSIG",
        "type": "pubkeyhash",
        "addresses": [
          "15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd"
        ]
      }
    },
    {
      "value": 0.00136988,
      "n": 1,

      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 94b9e905ee5bf75f0bb9b90f1383689f5cdc3a7e OP_EQUALVERIFY OP_CHECKSIG",
        "type": "pubkeyhash",
        "addresses": [
          "1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo"
        ]
      }
    }
  ],
  "blockhash": "0000000000000000055d59425a4f802b41bc1cbf3437329525ab5d5e6b4687a6",
  "confirmations": 137,
}


If you have the private key for 1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo in your wallet, then this should work:

Code:
createrawtransaction [{\"txid\":\"48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf\",\"vout\":1}] {\"1DAbnF1nDhLWkkMKVqKNHRJF39fwfjdrfB\":0.00136988}

Which should result in a transaction that looks like this:
0100000001bf5fb8dc3884edc6e8c4d1e028624975b5e184deda1bcd6d77b312d1547dd54801000 00000ffffffff011c170200000000001976a914857249351a591cec53e19c9bd8320370b1f4746b 88ac00000000

The difference between this transaction and the one you are trying to sign is that this one is spending the output (vout) where n=1, and you were trying to spend the output (vout) where n=0.
member
Activity: 68
Merit: 10
June 20, 2016, 01:52:39 AM
#44
You can create zero fee transactions but I doubt how long, if even so, it will be successfully included in a block.
member
Activity: 102
Merit: 12
June 20, 2016, 12:10:40 AM
#43
The last result I had is so dissatisfactory

According to the transaction that you posted, it looks like you are trying to spend a 0.00005775 BTC output that was sent to 15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd

Although I'm not familiar with the specific error you are reporting, "Operation not valid with the current stack size", I do see three possible problems with the transaction you built.

First of all you only funded the transaction using a single 0.00005775 BTC unspent output as an input, but then you tried to create a new 0.00136988 BTC output.  In order to be a valid transaction, the sum of the output values that you create must be less than or equal to the sum of the values of the inputs that you use.  0.00136988 IS NOT less than or equal to  0.00005775. If the sum of the of the output values is less than the sum of the inputs, then the remaining value is a transaction fee for the miners.

Another other potential problem would be if you do not have the private key for 15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd in your wallet.  Without that private key, the wallet software would be unable to sign the transaction. Are you certain that the wallet you are using has the private key for that address?  If the wallet doesn't have the private key, then you can supply the private key in the parameters that you send to signrawtransaction.

And finally, if you haven't yet synchronized your Bitcoin Core wallet with the blockchain, then it won't be able to look up transaction ID 48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf to determine which private key to use for the signature.  In that case, you'll need to supply the "scriptPubKey" in the parameters that you send to signrawtransaction.

Note that if the wallet doesn't have the private key AND you also haven't synchronized the blockchain, then you can still sign the transaction with signrawtransaction as long as you supply BOTH the "scriptPubKey" and the private key, along with the raw transaction in the parameters that you send to signrawtransaction.

Usage details:
Quote
signrawtransaction <hexstring> [{"txid":txid,"vout":n,"scriptPubKey":hex},...] [<privatekey1>,...]

Where:
  • hexstring is the rawtransaction represented in hexadecimal
  • txid is the hash value represented in hexadecimal of the transaction containing the unspent output that you are using to fund the transaction and for which you will be supplying the scriptPubKey (in this case that would be 48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf)
  • n is the index indicating which unspent output from the previous transaction is being used as an input in this transaction (in this case that would be 0)
  • hex is the scriptPubKey value represented in hexadecimal from the unspent output that is being used as an input.
  • privatekey1 is the private key in WIF (wallet import format) that you will use to sign the transaction (in this case that would be the private key associated with address 15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd


oh well!
As a matter of fact
I'm trying to spend 0.00136988 sent to the address : 1EZPifMcq31gXsMM8s4RBDy4T5kkAJtTpo If there's a way I con do it or I got the whole spending scenario wrong?
legendary
Activity: 3472
Merit: 4801
June 19, 2016, 10:22:38 AM
#42
The last result I had is so dissatisfactory

According to the transaction that you posted, it looks like you are trying to spend a 0.00005775 BTC output that was sent to 15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd

Although I'm not familiar with the specific error you are reporting, "Operation not valid with the current stack size", I do see three possible problems with the transaction you built.

First of all you only funded the transaction using a single 0.00005775 BTC unspent output as an input, but then you tried to create a new 0.00136988 BTC output.  In order to be a valid transaction, the sum of the output values that you create must be less than or equal to the sum of the values of the inputs that you use.  0.00136988 IS NOT less than or equal to  0.00005775. If the sum of the of the output values is less than the sum of the inputs, then the remaining value is a transaction fee for the miners.

Another other potential problem would be if you do not have the private key for 15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd in your wallet.  Without that private key, the wallet software would be unable to sign the transaction. Are you certain that the wallet you are using has the private key for that address?  If the wallet doesn't have the private key, then you can supply the private key in the parameters that you send to signrawtransaction.

And finally, if you haven't yet synchronized your Bitcoin Core wallet with the blockchain, then it won't be able to look up transaction ID 48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf to determine which private key to use for the signature.  In that case, you'll need to supply the "scriptPubKey" in the parameters that you send to signrawtransaction.

Note that if the wallet doesn't have the private key AND you also haven't synchronized the blockchain, then you can still sign the transaction with signrawtransaction as long as you supply BOTH the "scriptPubKey" and the private key, along with the raw transaction in the parameters that you send to signrawtransaction.

Usage details:
Quote
signrawtransaction <hexstring> [{"txid":txid,"vout":n,"scriptPubKey":hex},...] [<privatekey1>,...]

Where:
  • hexstring is the rawtransaction represented in hexadecimal
  • txid is the hash value represented in hexadecimal of the transaction containing the unspent output that you are using to fund the transaction and for which you will be supplying the scriptPubKey (in this case that would be 48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf)
  • n is the index indicating which unspent output from the previous transaction is being used as an input in this transaction (in this case that would be 0)
  • hex is the scriptPubKey value represented in hexadecimal from the unspent output that is being used as an input.
  • privatekey1 is the private key in WIF (wallet import format) that you will use to sign the transaction (in this case that would be the private key associated with address 15PYSSX8MTrmPsxkdWSZbZfoYL3JPV1BPd
member
Activity: 102
Merit: 12
June 19, 2016, 02:05:08 AM
#41
The last result I had is so dissatisfactory
member
Activity: 102
Merit: 12
June 18, 2016, 01:56:33 AM
#40
Try this:

Code:
createrawtransaction [{\"txid\":\"38427a43ac56a660130e86a45ccba448c2030364a512fad83e9e8598dd890e1f\",\"vout\":0}] {\"1CvRg4qu35KfJy8cLEszZvrbDiRghtmvDq\":0.001793}

Your output should look something like this:

01000000 01 1f0e89dd98859e3ed8fa12a5640303c248a4cb5ca4860e1360a656ac437a4238 00000000 00 ffffffff 01 64bc0200 00 000000 19 76 a9 14 82c406aacfa3fc448bea007a55e7d784ba683b37 88 ac 00000000

Note that if you wanted to create such a transaction by hand, you'd need to understand how the matching colors below are related:

createrawtransaction [{"txid":"38427a43ac56a660130e86a45ccba448c2030364a512fad83e9e8598dd890e1f","vout":0}] {"1CvRg4qu35KfJy8cLEszZvrbDiRghtmvDq":0.001793}

01000000 01 1f0e89dd98859e3ed8fa12a5640303c248a4cb5ca4860e1360a656ac437a4238 00000000 00 ffffffff 01 64bc0200 00 000000 19 76 a9 14 82c406aacfa3fc448bea007a55e7d784ba683b37 88 ac 00000000



Well ok

but after this whenever I'm trying to sign the transaction I get :



signrawtransaction "0100000001bf5fb8dc3884edc6e8c4d1e028624975b5e184deda1bcd6d77b312d1547dd54800000 00000ffffffff011c170200000000001976a914857249351a591cec53e19c9bd8320370b1f4746b 88ac00000000"


{
  "hex": "0100000001bf5fb8dc3884edc6e8c4d1e028624975b5e184deda1bcd6d77b312d1547dd54800000 00000ffffffff011c170200000000001976a914857249351a591cec53e19c9bd8320370b1f4746b 88ac00000000",
  "complete": false,
  "errors": [
    {
      "txid": "48d57d54d112b3776dcd1bdade84e1b575496228e0d1c4e8c6ed8438dcb85fbf",
      "vout": 0,
      "scriptSig": "",
      "sequence": 4294967295,
      "error": "Operation not valid with the current stack size"
    }
  ]
}
legendary
Activity: 1624
Merit: 1130
Bitcoin FTW!
June 15, 2016, 11:09:40 AM
#39
Is there a way to create zero fee transaction anymore.The only way I knew was Blockchain.info and it seems they have removed it now.

PS: I need it for technical purpose.

If you really want to do it, and since I actually don't know any other way of doing this to be honest, you should try using Blockchain.info with the legacy version. AFAIK they still allow it.

But what's the point of a zero fee transaction anymore?
I'm pretty sure they still let you create 0 fee transactions on the beta wallet, but the last time I did one on there, it took half a day to confirm it. There really is no point unless you're low on money and need to pay somebody, but have no extra bitcoin to make the transaction fee. It's just too damn slow nowadays to make one of those, and besides, if it doesn't confirm the mempool just sends it back and you've done absolutely nothing.
newbie
Activity: 4
Merit: 0
June 15, 2016, 08:28:46 AM
#38
You can do so with the mSIGNA wallet.
I just started using bitcoin two weeks ago and am using this wallet because of it's high security standard. For every transaction you have to assign the transaction fee manually and it can be zero.
hero member
Activity: 574
Merit: 500
June 15, 2016, 02:38:02 AM
#37
Is there a way to create zero fee transaction anymore.The only way I knew was Blockchain.info and it seems they have removed it now.

PS: I need it for technical purpose.

If you really want to do it, and since I actually don't know any other way of doing this to be honest, you should try using Blockchain.info with the legacy version. AFAIK they still allow it.

But what's the point of a zero fee transaction anymore?
hero member
Activity: 724
Merit: 500
June 14, 2016, 06:12:58 AM
#36
You can do it in the Bitcoin Core client, but I don't recommand it. The transaction will take at least 2 days, and may even "bounce back".
legendary
Activity: 3234
Merit: 1214
Vave.com - Crypto Casino
June 13, 2016, 10:18:15 AM
#35
I have never done a zero transaction fee transfer. Blockchain.info defines to have a very low transaction fee, also you could get a fee less transaction only on buying bitcoin from traders or exchange's.
legendary
Activity: 3472
Merit: 4801
June 13, 2016, 02:09:08 AM
#34
Try this:

Code:
createrawtransaction [{\"txid\":\"38427a43ac56a660130e86a45ccba448c2030364a512fad83e9e8598dd890e1f\",\"vout\":0}] {\"1CvRg4qu35KfJy8cLEszZvrbDiRghtmvDq\":0.001793}

Your output should look something like this:

01000000 01 1f0e89dd98859e3ed8fa12a5640303c248a4cb5ca4860e1360a656ac437a4238 00000000 00 ffffffff 01 64bc0200 00 000000 19 76 a9 14 82c406aacfa3fc448bea007a55e7d784ba683b37 88 ac 00000000

Note that if you wanted to create such a transaction by hand, you'd need to understand how the matching colors below are related:

createrawtransaction [{"txid":"38427a43ac56a660130e86a45ccba448c2030364a512fad83e9e8598dd890e1f","vout":0}] {"1CvRg4qu35KfJy8cLEszZvrbDiRghtmvDq":0.001793}

01000000 01 1f0e89dd98859e3ed8fa12a5640303c248a4cb5ca4860e1360a656ac437a4238 00000000 00 ffffffff 01 64bc0200 00 000000 19 76 a9 14 82c406aacfa3fc448bea007a55e7d784ba683b37 88 ac 00000000

member
Activity: 102
Merit: 12
June 13, 2016, 02:02:20 AM
#33
- snip -
Code:
myHex = createrawtransaction [{"txid":"TXID", "vout":0}] {"ADDR1":0.01}
- snip -
Thanks for the help but

- snip -

Any clues?

jonnybravo0311 was giving you a generic example.  He assumed that you had the technical skills to understand the generic example and apply it to your own needs.  If you want someone to give you the exact command that you would need to create a raw transaction, then they are going to need information about the bitcoins that are available in your wallet.

Run this command in the console, and provide the results.  With the information returned from this command, it should be possible to give you an exact command that will build a transaction for you:

Code:
listunspent


RPC:


Code:
listunspent




Code:
[
  {
    "txid": "38427a43ac56a660130e86a45ccba448c2030364a512fad83e9e8598dd890e1f",
    "vout": 0,
    "address": "1KnBK6r5AFQgiuMfrAnpUZWRpaio2TQXPP",
    "account": "",
    "scriptPubKey": "76a914cdfd9729cda304610c5463e9740d2606fddad32188ac",
    "amount": 0.00179300,
    "confirmations": 4,
    "spendable": true
  }
]
legendary
Activity: 3472
Merit: 4801
June 13, 2016, 01:58:53 AM
#32
- snip -
Code:
myHex = createrawtransaction [{"txid":"TXID", "vout":0}] {"ADDR1":0.01}
- snip -
Thanks for the help but

- snip -

Any clues?

jonnybravo0311 was giving you a generic example.  He assumed that you had the technical skills to understand the generic example and apply it to your own needs.  If you want someone to give you the exact command that you would need to create a raw transaction, then they are going to need information about the bitcoins that are available in your wallet.

Run this command in the console, and provide the results.  With the information returned from this command, it should be possible to give you an exact command that will build a transaction for you:

Code:
listunspent


As long as you know the information identifying the unspent outputs that you'll build the transaction from, there are a few web sites that will help you to build a raw transaction, it can also be done with Bitcoin Core, and it is also possible to either build one by hand or write your own computer program to do so.
member
Activity: 102
Merit: 12
June 13, 2016, 01:46:20 AM
#31
Create the transaction manually using createrawtransaction.  If the inputs exactly equal the outputs, then there is no fee.  For example, assume you have an input of 0.01 in transaction TXID and you send that 0.01 to address ADDR1:

Code:
myHex = createrawtransaction [{"txid":"TXID", "vout":0}] {"ADDR1":0.01}

Once created, you then need to sign it (you use as input the output from the previous call):

Code:
mySignedHex = signrawtransaction "myHex"

Now, you broadcast that transaction:

Code:
sendrawtransaction "mySignedHex"

Thanks for the help but



Any clues?
hero member
Activity: 574
Merit: 503
V2h5IGFyZSB5b3UgcmVhZGluZyB0aGlzPw==
May 29, 2016, 10:00:25 PM
#30
Quote
Exactly. I actually have made a zero-fee transaction last week (FYR, the tx ID is b2b9d553583da4dcd20fc04f50427d72e4f46b49e26f13011f0f67ab07f8aed0) and it was included in a block ~9 hours afterward.
Well thats stange, i heard most nodes now have min tx fee relay now set to minimum 0.00001. So u got lucky to your transaction beign included/relayed with 0 fee?

A transaction with over 57,600,000 priority shouldn't need any fee to get relayed by most nodes. But without any fee, getting a confirmation can still take a long time.
Pages:
Jump to: