0

I have created raw transaction with locktime and sign it. The lock time is already passed but still got error like this when sendrawtransaction

64: non-final txid

the locktime value is 1523515709 . and here hex transaction after sign if anyone willing to check it, I created with testnet BTC. How to fix it ?

02000000031e86fe4a8edf79ec3de22ab4208e9285bc55414c3b57053258e70651ee59ee85000000006b483045022100ecf1b03bf565358ebf25c5b2a1cf8a7f9bb6f6629c3fe12dbeb76b94e7d3f1ba02201d77ac1ba3092f90e360551fa3ac03cacda97c9d7d490e33e93248c76d5ee874012103155badc49210d2fabc6ce4d3ad10031437214404550ff7ef92d99e603f71fd16feffffff39994c9f8f0109f0e4c66fe5206dedc9844249cbff373ecd99def0903d36dcbc000000006b483045022100a68935c9df63462c1a4637aa3c63170c4dc396dbb2da67337d1937836148b51502201e1e294cfad8b393c35fb8405c72ee9e46f9495b86019b03760cdde06cf8a9ed012103155badc49210d2fabc6ce4d3ad10031437214404550ff7ef92d99e603f71fd16feffffff6c81ebda296a42ff4215b3b14055dc3d42d382cceefd118e229512aa1b88eb75020000006a473044022011ae505b77a67a41a3f1ee99b378493f9f5739ba5522ce6a1659cfb2ef129fd80220589d24a28593be57319e9dd058f08ce2ace74ccd3d3ab0edf81487878895f682012103155badc49210d2fabc6ce4d3ad10031437214404550ff7ef92d99e603f71fd16feffffff0302ca9700000000001976a914dc1ded71f0c85710f65b3426137e2d4a5784eed588ac50c30000000000001976a9141ca93028446df6bd23778047417c8447ceb4ab3488ace0533104000000001976a914f084173109b9547db4781e8e1a3a52a0cc709d9888ac3d01cf5a
  • Looks like a timelock issue. Have you managed to get it though? – sr-gi Apr 12 '18 at 17:04
  • Locktime in (reversed) hex 3D01CF5A is 1523515709 decimal, which is >= 500mio, so it is a time stamp (date -r 1523515709 --> 12Apr2018). This is roughly when you posted the question. Sure it has passed? Have you tried to change to "00000000", and see if error remains? Error might also indicate n issue with the signature, as it is a multisig tx (though I can see all three signatures). – pebwindkraft Apr 13 '18 at 6:51
  • @pebwindkraft What is mio? – Pieter Wuille Jan 16 at 3:55
  • 500mio is five hundred millions... based on here: bitcoin.org/en/transactions-guide#locktime-and-sequence-number: "Locktime itself is an unsigned 4-byte integer which can be parsed two ways ...". basically, if greater than 500mio it is interpreted as unix epoche time, if less than 500mio, then block height. – pebwindkraft Jul 1 at 15:55
0

I just encountered the same problem and the solution is almost stupid. Since the hint is not found elsewhere, I'd add my two cents in case others stepped upon the same trap.

It turns out that, besides the usual reasons related to time (e.g., time lock hasn't expired, the sequence number is not properly set etc.), trying to spend an unconfirmed UTXO also causes non-final error. I didn't dig into the source code to see why this happens, but the misleading error message cost me a good afternoon.

Why would you ever attempt to spend unconfirmed outputs? Well, when you're busy testing things out and are gradually losing ur patience...

  • If this is true, it's a bug. Finality has nothing to do with confirmed or not. – Pieter Wuille Jan 16 at 3:05
  • @PieterWuille yep it can be reliably reproduced on Bitcoin Core v0.17.1.0-gef70f9b52b851c7997a9f1a0834714e3eebc1fd8. Is GitHub issue the preferred way to report? – qweruiop Jan 16 at 3:16
  • Yes, please. I wonder what condition triggers it. Spending unconfirmed outputs is an intended features, and there are several tests for it. – Pieter Wuille Jan 16 at 3:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.