I have created a transaction with high miner's fee that is now in mempool that won't confirm:


From a previous question, I've been informed that the likely reason for this is that there is data embedded with a non-standard (or "unknown" protocol). I have input "hello_world" as an OP_RETURN script. How do I make it a known protocol so that the transaction can be confirmed? Is there a list of known protocols somewhere?

  • The technical term is in fact "standard" or "non-standard" transaction. You can read the definition here or here. But testnet isn't supposed to impose those restrictions, so I don't think this is what's affecting your transaction. – Nate Eldredge Aug 31 '18 at 4:33
  • Not exactly a duplicate but the other question's answers are helpful in understanding the situation which is that my transaction is apparently fully "standard". So it's just blockcyper's code that doesn't like it. Still a mystery why the transaction isn't confirming though. Maybe testnet really is that slow. – Hypertable Aug 31 '18 at 4:46
  • Actually, I think it isn't standard. Not because of the OP_RETURN output, but because of the 546-satoshi output which is dust. But again, I'm not sure how that's treated on testnet. – Nate Eldredge Aug 31 '18 at 5:14
  • @NateEldredge That amount was determined by bitcoinj's params.getMinNonDustOutput(). I am doing another test with a larger amount (and no OP_RETURN): 3500f82046a690638220af9fc857eb3a777ed599a368fcc9776ac6e896619a2d – Hypertable Aug 31 '18 at 5:34