I would like to send transactions with messages as described in the wiki. In Transaction with slightly changed script is never relayed, someone answered that non-standard transactions are not relaid by the client. I was wondering if this will affect this type of transactions.

Also, I would like to know if there is a source code that implement this functionality. I need to send small data (SHA256) as a digital signature that can be view by all the peers in the network and is associated to this specific transaction.

Thank you very much and your help is very appreciated

3 Answers 3


You will find that non-standard transactions are very hard to get into the block chain. Instead, encode the additional information as accounts and send a single satoshi to each account needed to convey your message. That way, you can use standard transactions.

Transaction 28ccf29cfcc9f82d42793db770e7c7894d61ccf3d18299f34bda2e54415da287 is a particularly silly example of this.

  • If you don't want to throw away the coins to phantom addresses you can encode the message in the transferred amount: gist.github.com/1625828 . The link is the example for BTCsg (btcmsg.com), but there are other ways. Commented Jan 1, 2013 at 22:44

You can, but you shouldn't. Bitcoin transactions should only contain the information needed for the world to verify your transaction. Anything else is essentially private information between the sender and the receiver, and would be useless bloat to the block chain (making it more expensive to maintain for everyone).

That doesn't mean you can't have messages attached to transactions at all, of course. The problem is that there is no easy way to communicate between sender and receiver right now, apart from via the block chain (which works, but as a means of communication it is slow, inefficient, expensive and unreliable). The payment protocol currently being worked on (see the current draft, or the mailing list archives) should solve this very neatly, as it supports transaction metadata that does not become part of the resulting Bitcoin transaction.

  • Thank you for the comments. This is part of my thesis proposal. I'm actually testing using testnet-in-a-box. The purpose of this is to allow linking virtual payment to real life transactions for non-repudiation purposes. Commented Jan 2, 2013 at 10:29

Yes, you can now store up to 80 bytes via an additional, special output: https://bitcoinfoundation.org/blog/?p=290

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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