Pages:
Author

Topic: SOLVED: deprecated wallet: mSIGNA - how to access private keys? TINY BTC BOUNTY! (Read 317 times)

legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
-snip-
Just curious: Did you also use mSIGNA in the past or did you just download it to check how things could work?
I have a cache of various Bitcoin wallets/clients for testing purposes and I happened to have mSigna among those.

For the tip address, you can use any of the two addresses in my profile page: https://bitcointalksearch.org/user/nc50lc-1237156
legendary
Activity: 2268
Merit: 18509
Fantastic! Thanks a lot for all the help to everyone involved.
Amazing you finally got it working. Big props to nc50lc for the ingenious solution!

I am still curious as to what the correct derivation path for mSIGNA actually is and what some of the strange error messages when trying to broadcast with coinb.in actually mean.
The error messages just mean the signature was incorrect for whatever reason (most likely it was signed with the wrong private key). I'm also curious about the derivation path and am half tempted to download the wallet myself to figure it out, but at the same time I don't want a wallet with such a crazy system as a 1-of-1 multi-sig and unknown back up processes on my computer. Wink

This is a great lesson for everyone - stick to the industry standards. When you try and do weird things in terms of addresses, scripts, seed phrases, back ups, etc., then more often than not you just create more problems than you are trying to solve.
legendary
Activity: 2030
Merit: 1401
Disobey.
-snip-
I already failed at step 5 "open a transaction via "Right-Click->Details" -> I can only click on details in the addresses tab, where I clearly see the ones with still spendable-outputs available. However nowhere I can find a "Share-> Copy to Clipboard" option.
I found something similar though in the Coins tab. If I click on Details there is an "Export -> Copy to Clipboard" option. I tried that and then import via mSIGNA via Transactions->Import Transaction->From Clipboard (raw). It crashed the wallet. lol (no worries I backed it up before).


EDIT: BIG UPDATE! It worked! I hadn't unlocked my keychain when I first tried to import and mSIGNA crashed. However I just tried again and it actually worked. Importing to mSIGNA, then, with finally a correct sync state I was able to select the right spendable outputs (actually just the address holding the coins) and then sign the transaction, import to electrum and broadcast there.
Glad that it worked at the end.
I didn't tested it on a locked keychain so I failed to add a note to unlock it first.

By the way, to get the transaction details like in the instructions, you should be in the 'History' tab as mentioned.
But yes, the hidden 'Coins' tab which are the actual UTXOs should work as well.
Ah, yes, I just found it, you need to click "view transactions" und the History tab. I think Coins tab actually works best because you can be sure not to miss any spendable outputs this way.
nc50lc, make sure to send me your reward-BTC address, I am slightly upping the total bounty to 2x 1/10000 of a block-reward (0.00125 BTC in total).

Just curious: Did you also use mSIGNA in the past or did you just download it to check how things could work?
legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
-snip-
I already failed at step 5 "open a transaction via "Right-Click->Details" -> I can only click on details in the addresses tab, where I clearly see the ones with still spendable-outputs available. However nowhere I can find a "Share-> Copy to Clipboard" option.
I found something similar though in the Coins tab. If I click on Details there is an "Export -> Copy to Clipboard" option. I tried that and then import via mSIGNA via Transactions->Import Transaction->From Clipboard (raw). It crashed the wallet. lol (no worries I backed it up before).


EDIT: BIG UPDATE! It worked! I hadn't unlocked my keychain when I first tried to import and mSIGNA crashed. However I just tried again and it actually worked. Importing to mSIGNA, then, with finally a correct sync state I was able to select the right spendable outputs (actually just the address holding the coins) and then sign the transaction, import to electrum and broadcast there.
Glad that it worked at the end.
I didn't tested it on a locked keychain so I failed to add a note to unlock it first.

By the way, to get the transaction details like in the instructions, you should be in the 'History' tab as mentioned.
But yes, the hidden 'Coins' tab which are the actual UTXOs should work as well.
legendary
Activity: 2030
Merit: 1401
Disobey.
Fantastic! Thanks a lot for all the help to everyone involved.
I'd like to split my bounty with o_e_l_e_o and to nc50lc. - please send me your coffee-tip addresses via dm!
And also a big shoutout to NotATether and DaveF for offering help and suggestions!

It's just a relatively tiny amount of funds recovered HOWEVER I learned quite a bit on the way to finally solving how to retrieve them.
I am still curious as to what the correct derivation path for mSIGNA actually is and what some of the strange error messages when trying to broadcast with coinb.in actually mean.


If anyone faces the same problem or similar problem, I would be willing to make a step-by-step guide with screenshots to help assist.
For now all the info needed can be found in the thread and already neatly summarized by nc50lc a few posts back.
legendary
Activity: 2030
Merit: 1401
Disobey.
I checked your link but I get a " You should use the redeem script, not its address!" message - but didn't really check how this works, maybe I should readthe documentation first, will do so tomorrow.
Ahh right, sure.

You'll want to go back to the mempool.space page for the transaction you sent me, click on "Details" again, and copy and paste the text after where it says "OP_PUSHBYTES_37" for each address. There's one of those for each address. Each one will start with "5121" and will end with "51ae".

If you paste that string in to coinb.in and hit load, it will find the address.
That worked - it detects the right amount of sats etc on it. I created a tx with a typical fee.
However just importing the tx to mSIGNA gives the following error: "invalid signature".
The coinbin tool also allows for signing. So I tried it signing with the BIP32 extended private key. Does work - But broadcasting does not. I tried it in Electrum and on coinb.in itself. The error I get is similar "1 the transaction was rejected by network rules. mandatory-script-verify-flag-failed (Operation not valid with the current stack size)".
I also tried signing with the public BIP32 key and importing to mSIGNA (to hopefully sign there and export later), but it gets denied with the "invalid signature" prompt


There a way to do it in Electrum even if your mSigna isn't synced, but you must have a list of your addresses.

Here's how to do it:
  • Create an Electrum wallet with the option "Import bitcoin address or private keys" and paste ALL of your addresses with transaction history, including the empty ones (if unsure, just paste all).
  • Alternatively, if you're 100% sure of the funded ones, paste those instead.
  • Finish creating the wallet and let Electrum Sync.
  • Go to 'History' tab and you should see a list of transactions.
  • Now, each transaction should be imported to mSigna manually, from old to new: to do that, open a transaction via "Right-Click->Details".
  • In the transaction details, export it via "Share->Copy to Clipboard".
  • In in your mSigna wallet, click "Transactions->Import Transaction->From Clipboard (raw)" and it will be added to your Transactions tab.
  • Do that to the rest of the transactions in Electrum to manually sync your mSigna wallet.
[...]
I already failed at step 5 "open a transaction via "Right-Click->Details" -> I can only click on details in the addresses tab, where I clearly see the ones with still spendable-outputs available. However nowhere I can find a "Share-> Copy to Clipboard" option.
I found something similar though in the Coins tab. If I click on Details there is an "Export -> Copy to Clipboard" option. I tried that and then import via mSIGNA via Transactions->Import Transaction->From Clipboard (raw). It crashed the wallet. lol (no worries I backed it up before).


EDIT: BIG UPDATE! It worked! I hadn't unlocked my keychain when I first tried to import and mSIGNA crashed. However I just tried again and it actually worked. Importing to mSIGNA, then, with finally a correct sync state I was able to select the right spendable outputs (actually just the address holding the coins) and then sign the transaction, import to electrum and broadcast there.




About the own node solution: Right now don't even have the disc space for a BTC full node (but could use some older HDD lying around) - my worry is, even after finally having a synced full node running and connected to mSIGNA, the sync process will be stuck somewhere - that's what people seem to report on their github a lot.

Would you like to borrow my full node for a little while?
That sounds interesting, thanks for the offer.
Not sure if it's worth it for the few sats remaining, how would that actually work - Just try to connect to it via the right address?

Does your wallet simply include a setting for the node IP address and port to sync with, or does it store the wallet there too?

If the latter, I am thinking on the lines of running the mSIGNA wallet on my box and issuing RPCs to my node to try to fetch private keys or something like that - so not really decentralized but I guess if you have no other way to access the bitcoins inside the wallet then you probably don't have another alternative than to run a Bitcoin full node.
Yes, mSIGNA has a network setting page similar to Electrum where you just input an IP address and a port. The keys are only on my device - it's actually it once was a pretty cool wallet with lots of options for individual control. Just setup in a weird and depricated way without proper documentation to be found and ofc not updated for over 5 or 6 years now.



I feel there are many paths that almost lead to the right desitnation, but something is missing. Probably has to do with their strange multisig-1-1
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
About the own node solution: Right now don't even have the disc space for a BTC full node (but could use some older HDD lying around) - my worry is, even after finally having a synced full node running and connected to mSIGNA, the sync process will be stuck somewhere - that's what people seem to report on their github a lot.

Would you like to borrow my full node for a little while?
That sounds interesting, thanks for the offer.
Not sure if it's worth it for the few sats remaining, how would that actually work - Just try to connect to it via the right address?

Does your wallet simply include a setting for the node IP address and port to sync with, or does it store the wallet there too?

If the latter, I am thinking on the lines of running the mSIGNA wallet on my box and issuing RPCs to my node to try to fetch private keys or something like that - so not really decentralized but I guess if you have no other way to access the bitcoins inside the wallet then you probably don't have another alternative than to run a Bitcoin full node.
legendary
Activity: 2268
Merit: 18509
I checked your link but I get a " You should use the redeem script, not its address!" message - but didn't really check how this works, maybe I should readthe documentation first, will do so tomorrow.
Ahh right, sure.

You'll want to go back to the mempool.space page for the transaction you sent me, click on "Details" again, and copy and paste the text after where it says "OP_PUSHBYTES_37" for each address. There's one of those for each address. Each one will start with "5121" and will end with "51ae".

If you paste that string in to coinb.in and hit load, it will find the address.
legendary
Activity: 2030
Merit: 1401
Disobey.
I am forgetting that mSIGMA has not been updated since 2017, and that Electrum exports transactions in PSBT format, which was only released in 2017 in BIP174. I wonder if this is the issue.

Why not try importing your addresses and creating the transaction using https://www.coinb.in/#newTransaction instead. This will export your transaction as plain hex, which is hopefully the format mSIGMA uses too, and then try importing that to mSIGMA for signing?

If that fails, then I think the easiest thing is going to be to try to sync your mSIGMA wallet with NotATether's node as he kindly offered above.
Thanks again, o_e_l_e_o.
I checked your link but I get a " You should use the redeem script, not its address!" message - but didn't really check how this works, maybe I should readthe documentation first, will do so tomorrow.


There a way to do it in Electrum even if your mSigna isn't synced, but you must have a list of your addresses.

Here's how to do it:
  • Create an Electrum wallet with the option "Import bitcoin address or private keys" and paste ALL of your addresses with transaction history, including the empty ones (if unsure, just paste all).
  • Alternatively, if you're 100% sure of the funded ones, paste those instead.
  • Finish creating the wallet and let Electrum Sync.
  • Go to 'History' tab and you should see a list of transactions.
  • Now, each transaction should be imported to mSigna manually, from old to new: to do that, open a transaction via "Right-Click->Details".
  • In the transaction details, export it via "Share->Copy to Clipboard".
  • In in your mSigna wallet, click "Transactions->Import Transaction->From Clipboard (raw)" and it will be added to your Transactions tab.
  • Do that to the rest of the transactions in Electrum to manually sync your mSigna wallet.

After importing all of the transactions, just create a transaction manually, export it (raw) and import it to Electrum to broadcast.
Here's the detailed steps to Send the transaction:
  • In mSigna, Go to 'Accounts' tab; click the correct account and then click "Send".
  • In the 'Send' window, Tap "Enable Coin Control" for easier manual txn generation.
  • Select all of the available inputs and the total should be listed below.
  • Set an absolute fee (it's not fee rate) which should be not less than the standard fee for the transaction's size.
  • Now fill up the address and amount which should be equal to the fee deducted from the inputs' amount.
  • Click "Sign" to finalize it (or "Save Unsigned->Right click on the created unsigned txn in the history->Signatures...->Right-Click->Add Signature").
  • Now to Broadcast that Signed Raw transaction, right-click on it and select "Export Transaction->To Clipboard (raw)"
  • Import it to Electrum via "Tools->Load transaction->From text", then click broadcast.
Very detailed explanation, much appreciated. This will be my next try, if I can't figure out how to do it via the coinb.in tool.
Thanks, nc50lc.


And thank you, Dave! Yes, the full node solution is cool, but hopefully not necessary and at this point not even sure I wanna do it for the funds remaining.
Might get back to you, at some point if really none of the above works out.

legendary
Activity: 3458
Merit: 6231
Crypto Swap Exchange
If NotATethers node does not work out and you can wait till late next week I can have a disposable machine setup for you with a full node that is synced on it. Linux / Windows just let me know.

You can then install what you need, do what you need to do and I'll wipe it.

Should not matter really since there should be no funds left. I'm just so busy at the moment getting a machine up and a 1tb drive installed and core synced is going to take me a little while to get it done. Or, I can just spin up a node with storage and let you do the rest.

-Dave
legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
There a way to do it in Electrum even if your mSigna isn't synced, but you must have a list of your addresses.

Here's how to do it:
  • Create an Electrum wallet with the option "Import bitcoin address or private keys" and paste ALL of your addresses with transaction history, including the empty ones (if unsure, just paste all).
  • Alternatively, if you're 100% sure of the funded ones, paste those instead.
  • Finish creating the wallet and let Electrum Sync.
  • Go to 'History' tab and you should see a list of transactions.
  • Now, each transaction should be imported to mSigna manually, from old to new: to do that, open a transaction via "Right-Click->Details".
  • In the transaction details, export it via "Share->Copy to Clipboard".
  • In in your mSigna wallet, click "Transactions->Import Transaction->From Clipboard (raw)" and it will be added to your Transactions tab.
  • Do that to the rest of the transactions in Electrum to manually sync your mSigna wallet.

After importing all of the transactions, just create a transaction manually, export it (raw) and import it to Electrum to broadcast.
Here's the detailed steps to Send the transaction:
  • In mSigna, Go to 'Accounts' tab; click the correct account and then click "Send".
  • In the 'Send' window, Tap "Enable Coin Control" for easier manual txn generation.
  • Select all of the available inputs and the total should be listed below.
  • Set an absolute fee (it's not fee rate) which should be not less than the standard fee for the transaction's size.
  • Now fill up the address and amount which should be equal to the fee deducted from the inputs' amount.
  • Click "Sign" to finalize it (or "Save Unsigned->Right click on the created unsigned txn in the history->Signatures...->Right-Click->Add Signature").
  • Now to Broadcast that Signed Raw transaction, right-click on it and select "Export Transaction->To Clipboard (raw)"
  • Import it to Electrum via "Tools->Load transaction->From text", then click broadcast.
legendary
Activity: 2268
Merit: 18509
I am forgetting that mSIGMA has not been updated since 2017, and that Electrum exports transactions in PSBT format, which was only released in 2017 in BIP174. I wonder if this is the issue.

Why not try importing your addresses and creating the transaction using https://www.coinb.in/#newTransaction instead. This will export your transaction as plain hex, which is hopefully the format mSIGMA uses too, and then try importing that to mSIGMA for signing?

If that fails, then I think the easiest thing is going to be to try to sync your mSIGMA wallet with NotATether's node as he kindly offered above.
legendary
Activity: 2030
Merit: 1401
Disobey.
When trying to import using "import transaction (raw)" I get "Push operation exceeds data size".
This sounds like your transaction is too large for mSIGMA to handle for some reason. Are you trying to consolidate a lot of inputs at once? Perhaps split your transaction in to two and try again with fewer inputs?
Unfortunatelly not. I tried first with the 3 inputs I have and then just a solo input. Both didn't work.
I noticed there might be trouble stemming from using a bech32 address as the receiver address and tried with a 1xxx legacy one instead, same results - mSIGNA shows an error upon import.
legendary
Activity: 2268
Merit: 18509
When trying to import using "import transaction (raw)" I get "Push operation exceeds data size".
This sounds like your transaction is too large for mSIGMA to handle for some reason. Are you trying to consolidate a lot of inputs at once? Perhaps split your transaction in to two and try again with fewer inputs?
legendary
Activity: 2030
Merit: 1401
Disobey.
Yes, importing is available via the following options: from clipboard or from file, optionally in RAW.
Btw sorry, you asked before if tx export was possible, for some reason I missed that option before.
Ahh well then, that changes everything! This should (hopefully) be the easiest option going forward then. What I would do is the following:

  • Get a list of all the addresses which still have funds on them
  • Create a new Electrum wallet, select "Import bitcoin addresses or private keys", and insert all your addresses
  • In that Electrum wallet, create a transaction sending all those coins to a regular address you control
  • At the bottom left of the transaction window, select "Export" (you might have to select "Finalize" first), and export to clipboard
  • Import it from the clipboard in to mSIGMA and (hopefully!) sign it
  • Export it from mSIGMA, import it back in to Electrum, and broadcast it

I feel like that was VERY close. Did all the steps on the electrum side - works well.
When trying to import the transaction with mSIGNA I get the following error and immediately aborting "invalid signature" - if I just select "import transactions".
When trying to import using "import transaction (raw)" I get "Push operation exceeds data size".
legendary
Activity: 2268
Merit: 18509
Yes, importing is available via the following options: from clipboard or from file, optionally in RAW.
Btw sorry, you asked before if tx export was possible, for some reason I missed that option before.
Ahh well then, that changes everything! This should (hopefully) be the easiest option going forward then. What I would do is the following:

  • Get a list of all the addresses which still have funds on them
  • Create a new Electrum wallet, select "Import bitcoin addresses or private keys", and insert all your addresses
  • In that Electrum wallet, create a transaction sending all those coins to a regular address you control
  • At the bottom left of the transaction window, select "Export" (you might have to select "Finalize" first), and export to clipboard
  • Import it from the clipboard in to mSIGMA and (hopefully!) sign it
  • Export it from mSIGMA, import it back in to Electrum, and broadcast it
legendary
Activity: 2030
Merit: 1401
Disobey.
Does the coin control feature allow you to pick individual UTXOs, or just addresses? So if you had received bitcoin three times to the same address, can you pick exactly which output to spend?

Second question - if you can export transactions, can you import them too?
UTXO selection is not available - just individual addresses from within the wallet itself.

Yes, importing is available via the following options: from clipboard or from file, optionally in RAW.
Btw sorry, you asked before if tx export was possible, for some reason I missed that option before.


About the own node solution: Right now don't even have the disc space for a BTC full node (but could use some older HDD lying around) - my worry is, even after finally having a synced full node running and connected to mSIGNA, the sync process will be stuck somewhere - that's what people seem to report on their github a lot.

Would you like to borrow my full node for a little while?
That sounds interesting, thanks for the offer.
Not sure if it's worth it for the few sats remaining, how would that actually work - Just try to connect to it via the right address?
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
About the own node solution: Right now don't even have the disc space for a BTC full node (but could use some older HDD lying around) - my worry is, even after finally having a synced full node running and connected to mSIGNA, the sync process will be stuck somewhere - that's what people seem to report on their github a lot.

Would you like to borrow my full node for a little while?
legendary
Activity: 2268
Merit: 18509
Does the coin control feature allow you to pick individual UTXOs, or just addresses? So if you had received bitcoin three times to the same address, can you pick exactly which output to spend?

Second question - if you can export transactions, can you import them too?
legendary
Activity: 2030
Merit: 1401
Disobey.
e_o_l_e_o has indeed helped a lot so far. Getting close to sloving it, but seems the derivation path of mSIGNA isn't easy to find out.
If anyone has any insight on the correct derivation path for mSIGNA or is tech-savy enough to find it in the code on github, please let us know!
https://github.com/ciphrex/mSIGNA

However, big update! I was able to retrieve around half of the funds.
- mSIGNA allows to export transactions as raw data.
- mSIGNA allows coin control.
- So I just selected the public address I knew still hand coins on it, found an oldschool 1xxxx address in an older electrum wallet to send the funds to and created the signed transaction with mSIGNA and then exported it.
- imported the transaction in electrum wallet via tools -> import transaction -> from text -> broadcast.
- BAMMM it worked!

However, because my mSIGNA wallet is not fully synced I could only retrieve the funds up to the amount the current balance of this unsynced wallet showed. Which is only around half of the total funds. Still a nice recovery.
There are two more addresses with around 0.0015 BTC each that I cannot access this way because their balance in the wallet is too high. - If I want to create a tx inside the wallet it works and I can export it (even using the amount I know is on it because I can check via a current explorer).
HOWEVER after importing to electrum (which also works) the transaction will be denied by the node, because the transactions includes an amount that exceeds the actual accessible funds. Why? Because the transactions also includes a change address that will receive the "remaining" funds - because mSIGNA is synced at a state that has too many funds than actually available on that address.

Still, a nice tiny success. If anyone has more ideas on this, feel free to jump into the discussion.
Pages:
Jump to: