Is it possible to prove that you are the sender in a transaction? Prove this to 3rd-parties, not only the receiver.


3 Answers 3


You cannot "own" a transaction. But you can own the private keys for one or more of the addresses from the inputs of the transaction.

A (regular) transaction must be signed with the private keys of the addresses of all the inputs. So if you own one of the addresses, the transaction could not have been verified without you, which may count as "ownership" if you want to call it that way.

Proving that you own an address can be done by signing a message using the private key of that address. Most wallets provide signing functionality. Just agree on a message, something like "I, [name with which the other party knows you], am the owner of address [address from the input]." After signing, you can send the message and the signature to the other party and he will be able to verify your ownership of the private key.


Yes, it is possible. You would do that by signing a message using the private key of the address which you sent the transaction from. Bitcoin-QT offers this functionality by clicking the button called "Sign Message". Anybody can then verify that the message could only have come from the owner of said address.

To ensure privacy, you would perhaps not want to put private information into that message, but rather announce to the third party that you will send them a message with some sort of passphrase (or ask them what passphrase they would like you to use), e.g. "This verifies my ownership - 54123" and then later on, send them exactly that message signed by using your private key.

  • 1
    What address would you use to sign the message? There's no "sender" address in a transaction, only inputs/outputs. I think a good solution would be to use the change address, but how do you determine what the change address is?
    – Jojo
    Dec 11, 2013 at 11:14
  • The "sender" address is the one, that you had previously received the inputs to. I.e. the receiving address of the transaction that gave you the bitcoins that you are now spending. The change address is not useful in this case, because nobody has a way of knowing whether you sent the change of the transaction to yourself or to a third party. If you don't know which address the inputs belonged to, you can easily find out by checking the transaction id on a block explorer such as blockchain.info.
    – Murch
    Dec 11, 2013 at 11:25
  • So I can be sure that all the addresses from all inputs belong to the same private key/person?
    – Jojo
    Dec 11, 2013 at 11:49
  • Maybe not belong but they have access to the private key (think of a service sending coins on behalf of someone else, they have control of them but they do not belong to them in reality)
    – MaxSan
    Dec 11, 2013 at 14:29

Yes, you can prove you are the transaction's sender, by signing an arbitrary message with the transaction sender's private key. Here is an example using Electrum 3.3.6.

  • Navigate the menu bar: Tools -> Sign/Verify message.
  • Fill an arbitrary message (ex: This is a test message.)
  • Enter the sender's address for that transaction (ex: 1Hs7hQQs8cQVGLoTrNjDuXqRRpfGCwLEeh)
  • Click the Sign button. This will generate a signature for this message, using the sender's private key, if you own it.
  • Send the transaction ID, message, sender address and signature to whoever needs proof you are the sender. They will be able to check your signature, with the Verify feature, or any equivalent tool they may use.

Electrum 3.3.6 Sign/Verify tool

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.