Author

Topic: Cannot broadcast TX signed offline with Electrum: scriptsig-not-pushonly (Read 40 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
Looking at https://bitcoin.stackexchange.com/a/92847, it seems Electrum create non-standard transaction. While it should be valid transaction if it's included on block directly, most node and miner/mining pool would reject it by default. So i would suggest you to follow @LoyceV suggestion to use newer version of Electrum securely, in order to re-create that transaction.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I take it you're using a very old version because you're using an offline system. If that's the case, this is what I would do instead of using a very old version of Electrum:
Online:
Install Electrum on your PC.
Import your address to create a watch-only wallet.
Preview the transaction, Copy the unsigned transaction. Put it on a USB stick.

Offline and running without hard drive storage:
Get a Linux LIVE DVD. Use Knoppix or Tails for instance, or any other distribution that comes with Electrum pre-installed.
Unplug your internet cable. Close the curtains. Reboot your computer and start up from that DVD. Don't enter any wireless connection password. Keep it offline.
Start Electrum. Import your private key.
Copy your unsigned transaction from the USB stick, load it into Electrum.
CHECK the transaction in Electrum. Check the fees, check the amount, check all destination addresses (character by character).
If all is okay, sign the transaction. Copy it back to your USB stick.
Turn off the computer. That wipes the Live LINUX from memory and all traces are gone.

Online:
Use your normal online Electrum to (check again and) broadcast the transaction.

Bonus:
After moving all your Bitcoin, and once the transaction confirmed, check if you own Forkcoins.
hero member
Activity: 2366
Merit: 793
Bitcoin = Financial freedom
I am not an expert but let me try...

If nodes are rejecting your TX means the raw TX doesn't follow the Bitcoin consensus enforced by the nodes which probably happened when you created scriptSig data that contains different data other than push operations. Don't edit anything while you export the raw TX before broadcasting.

Finally, why not update the electrum to latest version and recreate it again?
sr. member
Activity: 278
Merit: 251
Bitcoin-Note-and-Voucher-Printing-Empowerer
I created a raw transaction with an older electrum version (1.7x or so). It verifies correctly on "https://coinb.in/#verify", it is a TX with 1 input and 4 outputs and it has sufficient TX fee and has in- and outputs that are larger than just dust.

I cannot broadcast it anywhere. I always get error messages like these:

https://coinb.in/#broadcast
--> the transaction was rejected by network rules. scriptsig-not-pushonly

https://blockstream.info/tx/push
--> RPC error

https://www.blockchain.com/de/explorer/assets/btc/broadcast-transaction
--> "Code: -26, Error: scriptsig-not-pushonly"

https://www.viabtc.com/tools/broadcast
--> Raw transaction send failed

https://live.blockcypher.com/btc/pushtx/
--> Error validating transaction: Rejected script for input 0 referencing ......

https://blockchair.com/broadcast
--> An error has occurred, please verify the transaction hash and selected network and try again.

https://bitaps.com/broadcast
--> Mempool accept test failed: scriptsig-not-pushonly

Finally I tried Electrum on Android with the "paste" button from clipboard. Again same problem (I translate error message to English):
--> The server has answered with an error. Try to select another server or to install an update of Electrum. scriptsig-not-push-only
(I tried about 10 different servers - all the same problem, then I gave up)

What can I do to broadcast this TX?
Jump to: