<blockquote>
  <p>Before segwit one could sign a message and with address given, you could decrypt the message to confirm they actually own the wallet containing that address.</p>
</blockquote>

<p>As you discovered, the <code>signmessage</code> and <code>verifymessage</code> RPCs in Bitcoin Core don't currently work with segwit.  There have been <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015816.html" rel="nofollow noreferrer">discussions</a> about the best way to fix that, but as of this writing, updated code is not yet available.</p>

<blockquote>
  <p>Furthermore, i can't take the getrawtransaction  1 command to</p>
</blockquote>

<p>The <code>getrawtransaction</code> RPC now takes <code>true</code> instead of <code>1</code> for detailed JSON output.  The <code>txid</code>, <code>vout</code>, and <code>vin</code> fields in the JSON output all the same for the way you're using them (they just have a few extra fields now for segwit outputs and inputs).</p>

<blockquote>
  <p>How can i verify that someone owns a wallet with segwit addresses?</p>
</blockquote>

<p>There is no easy way at the moment using Bitcoin Core or any other software I'm aware of.  If possible, you may want to change your workflow so that you don't need to verify wallet ownership.  For example, if you currently receive all payments to the same address, you can start using separate addresses for each customer, so Alice pays $ADDRESS_1, Bob pays $ADDRESS_2, and you can tell the difference between their payments by which address they paid.</p>

<p>Alternatively, if you need to verify address ownership for refunds, you can have users provide a refund address at checkout.</p>

CC BY-SA 4.0
2018-05-30T10:05:52.480Z
I can see in this scenario that would make sense. I am talking about from a general scenario. Someone is claiming they have 10,000 BTC. How can i verify that claim.
picard276
CC BY-SA 4.0
2018-05-17T12:25:27.557Z
2018-05-17T12:25:27.557Z
David A. Harding
<p>So .. this seems like a simple question.</p>

<p>If i have a wallet and someone wants to send me BTC. I want to make sure they own the wallet they claim to be sending funds from. Usually people do something like a satoshi test do confirm this.</p>

<p>Before segwit one could sign a message and with address given, you could decrypt the message to confirm they actually own the wallet containing that address.</p>

<p>After segwit that functionality is broken.</p>

<p>Furthermore, i can't take the <code>getrawtransaction &lt;trans&gt; 1</code> command to find the <code>vin</code> of the transaction and the to extract the <code>txid</code> and <code>vout</code> of the <code>vin</code>. Then using that <code>txid</code> and again run <code>getrawtransaction &lt;trans&gt; 1</code> and look at the coorepsonding <code>vout</code> and the "n" that matches the previous <code>vout</code> not longer works after segwit. (all of this makes sense as the way transactions are formed is completely different).</p>

<p>Therefore: If someone is supposed to send me 0.00001 BTC, how do i verify what wallet that came from.</p>

<p>In Simpler terms: How can i verify that someone owns a wallet with segwit addresses?</p>

<bitcoin-core><bitcoind><segregated-witness>
How to check ownership of wallet with segwit address
picard276
# How to check ownership of wallet with segwit address

(Asked by: username_0 on 2018-05-17)

So .. this seems like a simple question.

If i have a wallet and someone wants to send me BTC. I want to make sure they own the wallet they claim to be sending funds from. Usually people do something like a satoshi test do confirm this.

Before segwit one could sign a message and with address given, you could decrypt the message to confirm they actually own the wallet containing that address.

After segwit that functionality is broken.

Furthermore, i can't take the `getrawtransaction <trans> 1` command to find the `vin` of the transaction and the to extract the `txid` and `vout` of the `vin`. Then using that `txid` and again run `getrawtransaction <trans> 1` and look at the coorepsonding `vout` and the "n" that matches the previous `vout` not longer works after segwit. (all of this makes sense as the way transactions are formed is completely different).

Therefore: If someone is supposed to send me 0.00001 BTC, how do i verify what wallet that came from.

In Simpler terms: How can i verify that someone owns a wallet with segwit addresses?

**Tags:** bitcoin-core, bitcoind, segregated-witness


---

## 1 answers

### Answer by username_1 on 2018-05-17. Score: 1

> Before segwit one could sign a message and with address given, you could decrypt the message to confirm they actually own the wallet containing that address.

As you discovered, the `signmessage` and `verifymessage` RPCs in Bitcoin Core don't currently work with segwit. There have been [discussions](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015816.html) about the best way to fix that, but as of this writing, updated code is not yet available.

> Furthermore, i can't take the getrawtransaction 1 command to

The `getrawtransaction` RPC now takes `true` instead of `1` for detailed JSON output. The `txid`, `vout`, and `vin` fields in the JSON output all the same for the way you're using them (they just have a few extra fields now for segwit outputs and inputs).

> How can i verify that someone owns a wallet with segwit addresses?

There is no easy way at the moment using Bitcoin Core or any other software I'm aware of. If possible, you may want to change your workflow so that you don't need to verify wallet ownership. For example, if you currently receive all payments to the same address, you can start using separate addresses for each customer, so Alice pays $ADDRESS\_1, Bob pays $ADDRESS\_2, and you can tell the difference between their payments by which address they paid.

Alternatively, if you need to verify address ownership for refunds, you can have users provide a refund address at checkout.

> **Comments:**
> **username_0**: I can see in this scenario that would make sense. I am talking about from a general scenario. Someone is claiming they have 10,000 BTC. How can i verify that claim.  

---

