I think our best bet is getting the hex hash with the complete:True statement on the Core wallet. Let me know if I am understanding that wrong.
Not sure what you're trying to achieve with a hex hash? A hex hash of what? A dummy transaction?
As LoyceV said, you can use "Signed Messages". A signed message proves that the person who signed the message has access to the private key for a given "address"... it contains 3 components:
1. The actual message
2. The "address" you want to sign with
3. The cryptographic signature
They often look like this:
-----BEGIN BITCOIN SIGNED MESSAGE-----
This is HCP, demonstrating signed messages for JayBleezCPA on Bitcointalk
Date: 20180828
-----BEGIN SIGNATURE-----
16qkTAUmtCdBYfXXKKGKqD8pAYtL1T5pqV
H8yDXZyf2SPHM0ujn//3kp4jx8wm42LWilaZM381A8aUPaL1nGULbo/5sGFOJuz2aIi5Z5hUlof6SPyGHb7XAsk=
-----END BITCOIN SIGNED MESSAGE-----
As you can see... message is:
This is HCP, demonstrating signed messages for JayBleezCPA on Bitcointalk
Date: 20180828
Address used is:
16qkTAUmtCdBYfXXKKGKqD8pAYtL1T5pqV
Signature is:
H8yDXZyf2SPHM0ujn//3kp4jx8wm42LWilaZM381A8aUPaL1nGULbo/5sGFOJuz2aIi5Z5hUlof6SPyGHb7XAsk=
You can
verify this message hereChanging even 1 character in the message will break the signature and it will not validate. Even adding an extra space on the end of one line will break it. It is basically just as secure as a signed transaction. It cannot be edited in any way. So, you can be sure that I have access to the private key for 16qkTAUmtCdBYfXXKKGKqD8pAYtL1T5pqV... ergo, it is MY address.
Thus, if someone provides you a signed message (with a "proper" message, including pertinent dates/times, names etc)... you can be reasonably sure that they have access to the private key that controls the address the message is signed from.
You can sign messages using Bitcoin Core in either the GUI (File -> Sign Message)... or using the console/command line with the
signmessage command. You do NOT need to be "online" to do this. And you can easily verify it offline as well... they don't need to expose anything to anyone but yourself.
For your purposes, ask the client to sign a message of your specification from the address containing the coins you want to audit. Remember, make the message very specific and include dates/times/names/specific reason for signing etc... something like:
This is XXX Ltd. Proving ownership of Address 1bitcoinAddress for JayBleezCPA
Date: August 28th 2018
Then, you can simply use a blockchain explorer to confirm the coins are in the nominated address... and you can verify they control the private key for that address via the signed message. Alternatively, if they want to do it in conjunction with a coin move... simply ask them to nominate the receiving address first and provide a signed message for the empty nominated address. Once they move the coins, again, you can verify the balance using a blockchain explorer... and you can confirm that they control the address via a signed message.