Transaction 88025f2bfa2435a7036a865ea0b4748491d21f9b8cfd72788e9d1c9aa8977e7d is valid, but its one and only input has an invalid script. (There are many transactions like this, but this one will suffice as an example.)

The previous transaction for the input is all zeroes, and the output index is 0xffffffff which is technically not possible as far as I understand. Is one or both of these values used to determine the (in)validity of the script, or is there some other indicator that the script is not valid? How do the block explorers determine whether an input script is valid or not?

Also, if the input script is invalid, then why is it included at all? This transaction has a 49-byte input script. The hex bytes are: 0315ef0a04a656cf612f466f756e6472792055534120506f6f6c202364726f70676f6c642f0e9d8b480000000000000000. What is all this data if it is not a script, and why would it be sent as part of the transaction?


1 Answer 1


In a coinbase transaction like the one you linked, the input scripts are mostly just not validated because nothing is being spent as is a special type of transaction only used by miners. It keeps the format of the transaction the same as all the others in the chain, though the scriptSig has almost no meaning and isn't expected to be parsable as a real script.

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