Bitcoin Forum
May 02, 2024, 08:47:07 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 »  All
  Print  
Author Topic: [TUTORIAL] How to extract Bitcoin Gold from a 2fa Electrum Wallet [STEP BY STEP]  (Read 1818 times)
ApproximateSunlight (OP)
Jr. Member
*
Offline Offline

Activity: 38
Merit: 3


View Profile
December 09, 2017, 12:47:13 AM
Last edit: January 21, 2022, 09:18:22 PM by ApproximateSunlight
Merited by ABCbits (3)
 #1

I see all over this forum that people are charging a lot of money (up to 100$/hour, that’s ridiculous) to recover your wallet and you even have to give them private keys so you can be scammed or if not, they can get your next coin because of forks. The Bitcoin community helps each other.
The process to extract Bitcoin Gold from a 2fa Electrum wallet is very simple, don’t be scared from codes etc, everyone is able to do that, but it needs time and patience and you just need a simpler guide which I’ll provide you, let’s start.



First, we need to disable 2fa.
On Electrum go to File->New/Restore
Call it: “2fa disabled
Select “Wallet with two-factor authentication”
Select I already have a seed
Insert your 12 words seed
Now, when it asks if you want to keep 2fa Trusted Coin select no
Here we are, you have a wallet with 2fa disabled wallet (you will see 2fa on the top but don’t worry)


Now, let’s create a note on the desktop, let’s call it “BTG.txt
Open it and paste this pastebin: https://pastebin.com/3LzufK6A
This is our txt now: https://i.imgur.com/SOigtZN.png
Now let’s see how to fill these spaces.



x1/ xprv and x2/ xprv:
Ok, go to C:\Users\User\AppData\Roaming\Electrum\wallets and open with block note the file “2fa disabled.dat” or whatever you called it (the wallet we just generated without 2fa)
Go full screen, go to the bottom of the note, you will see this:
https://i.imgur.com/L0NxPu0.png
Copy x1/ xprv and paste it in that note we created from pastebin
Copy x2/ xprv and paste in that note
Ok we have them, close 2fadisabled.dat, we have done with it.



Address:
Ok, now, in Electrum select View->Show Addresses, go to Addresses Tab and select “Receiving” and “Used”, ok now we take care only of “Receiving” and not “Change” addresses, we’ll take care of them afterwards (check the spoiler at the bottom of the tutorial*), one thing at a time.
Let’s do one address at a time, right click the first address, copy, and paste it in the note.



Transaction ID:
Then paste it here: https://btgexplorer.com we will see all the BTG balance in “Final Balance” and all the transactions.
Ok this is the first difficult part, we have to identify all the transactions ID we need to take care of, let’s suppose it’s only one transaction ID, I’ll explain afterwards separately too (check second spoiler at the bottom) if you have more than one transaction ID to keep the tutorial simpler and more orderly as possible.
Go to the previous note, paste the first transaction ID in the transaction ID space (make sure it has a “U” that means Unspent). I’ll try to explain this in this picture, I hope it’s clear (simplest way I can explain): https://i.imgur.com/EltO5QN.png
Ok now copy the transaction ID and paste it in the note we previously created.
 


Redeem script:
Right click on the address in Electrum, select “Details”, copy and paste the Redeems script of this address in the note.
https://i.imgur.com/7es6PRf.png

Ok we filled the note https://i.imgur.com/SJcgCVY.png with all we need for now.







Let’s proceed.

Open: https://coinb.in/#verify VERY IMPORTANT: use it offline or download it as HTML, right click on the page->Save with name
Paste your redeem script.
You will get 3 addresses that starts with “1”.
https://i.imgur.com/ZXWvPJJ.png
Keep this page open


Ok now go to https://iancoleman.io/bip39/ VERY IMPORTANT: use it offline or download it as HTML, right click on the page->Save with name
In "BIP32 Root Key" box paste the x1 /xprv from BTG.txt we created, select “BIP32” and in Client select “Custom derivation path”, in “BIP32 Derivation Path” leave “m/0
https://i.imgur.com/cPfdILb.png


Return to the opened page of coinb.in with redeem script etc
We have 3 addresses, right? Copy one of them, go to iancoleman again and click “CTRL+F” and paste it in search box and see if you can find it in that list, if not, try with the second address in coinb.in and do the same, if nothing with the third.
You will find one of them for sure
Look at here: https://i.imgur.com/am5EtOL.png
Keep this page open

Now, do the same with another address of the two in a new page of iancoleman but this time use the x2 /xprv instead of the x1 /xprv like before.

So, go to https://iancoleman.io/bip39/ (VERY IMPORTANT: use it offline or download it as HTML, right click on the page->Save with name)
In "BIP32 Root Key" box paste the x2 /xprv from BTG.txt we created, select “BIP32” and in Client select “Custom derivation path”, in “BIP32 Derivation Path” leave “m/0”
Use another address from coinb.in, search one of them in the list of address given by iancoleman, and keep this page opened.


Ok now go back to the famous note we created, add this at the bottom: https://pastebin.com/jaRAgMJB

We’ll have this: https://i.imgur.com/4BSS1gx.png

Fill the first “Address 1” space with the first address we matched between coinb.in and iancoleman, and the related private key.
Do the same with “Address 2” with the second address and the related private key.




Now we really have everything to start to sign the transaction.

Open Electrum, select “View”->”Show console”.

Run this command:
Code:
deserialize(gettransaction("TXID_HERE"))
Replace TXID_HERE with the transaction ID (leave the “ “)

You will get something like this: https://i.imgur.com/sKXBZNm.png
Go to the section in the bottom with where it says: "address": "our address",

Ok, now copy all that thing in the note at the bottom.
Now we have the prevout_n, the scriptPubKey, the type and the value of this transaction ID.
Now close Electrum.






We are almost finished, now open Bitcoin Gold Core wallet.
Create a wallet of course, click receive, generate an address in which we will receive our BTG, paste it in a new block note to not get confused.

Ok, go to “Help”->”Debug Window”->”Console"”, now run this command:
Code:
createrawtransaction '[{"txid": "INPUT_TRX_ID", "vout": PREVOUT }]' '{"YOUR_BTG_ADDRESS":  AMOUNT_TO_SEND}'
Replace INPUT_TRX_ID with the transaction ID we have in the note
Replace PREVOUT with prevout_n
Replace YOUR_BTG_ADDRESS with your BTG address
Replace AMOUNT_TO_SEND with the amount in BTC to send (not satoshi as we got, so convert in BTC), minus the fee (from 5 to 30 satoshi/byte is fine)

Quote
P.S. See this if you don’t know which amount to write:
Let’s suppose your “value” of the transaction is 9782200 (we have this in the note, took from Electrum console, remember).
We have it in Satoshi, we have to convert it in Bitcoin with this tool http://satoshitobitcoin.co/
Ok so, 9782200 satoshi is 0.09782200
Go to Electrum, “Tools”->”Preferences” and set this options exactly like this: https://i.imgur.com/6VSb3Zl.png
Now go to “Send” tab, paste the amount in BTC, and it will give you the fee. Subtract this fee from the original amount of BTC and you will have your AMOUNT_TO_SEND



After that Bitcoin Gold Core console will give us a Hex code, copy that on a new block note, this is called “RAW_TRANSACTION_HASH” that we will need for the next command

So, what is the next command?
Code:
signrawtransaction "RAW_TRANSACTION_HASH" '[{"txid": "INPUT_TRX_ID", "vout": PREVOUT, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD"}]' '["FIRST_PRIVATE_KEY_FOR_SIGNING"]'

Replace RAW_TRANSACTION_HASH with the hex code we got before
Replace INPUT_TRX_ID with the transaction ID
Replace PREVOUT with prevout_n
Replace INPUT_SCRIPT_PUB_KEY with the scriptPubKey we have in the note aswell
Replace REDEEM_SCRIPT with the redeem script
Replace INPUT_VALUE_FIELD with the amount without fee, so the first one not converted with the fee in BTC, not satoshi (use satoshitobitcoin.co to have the amount in BTC from Satoshi)
Replace FIRST_PRIVATE_KEY_FOR_SIGNING with the first private key of “Address 1” we have in the note

Click enter and you will get another Hex code (ignore the error message), in the block note in which we pasted the previous hex code, delete it and paste the new one.




Guess what? We need this new long Hex code (really long), for another command:
Code:
signrawtransaction "REALLYLONG _RAW_TRANSACTION_HASH" '[{"txid": "INPUT_TRX_ID", "vout": PREVOUT, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD"}]' '["SECOND_PRIVATE_KEY_FOR_SIGNING"]'

Replace REALLYLONG_RAW_TRANSACTION_HASH with the hex code we got at latest
Replace INPUT_TRX_ID with the transaction ID
Replace PREVOUT with prevout_n
Replace INPUT_SCRIPT_PUB_KEY with the scriptPubKey
Replace REDEEM_SCRIPT with the redeem script
Replace INPUT_VALUE_FIELD with the amount without fee just like before
Replace SECOND_PRIVATE_KEY_FOR_SIGNING with the second private key of “Address 2” we have in the note




And here we are, we have the final Hex code, this is the signed transaction. Let’s call it “FUCKING_CODE_FOR_FINALLY_SIGNING_THE_FUCKING_TRANSACTION

Now the final (I swear) command:
Code:
sendrawtransaction "FUCKING_CODE_FOR_FINALLY_SIGNING_THE_FUCKING_TRANSACTION"
Replace FUCKING_CODE_FOR_FINALLY_SIGNING_THE_FUCKING_TRANSACTION with the final Hex code

Here you are, you just signed a transaction, check on the BTG Explorer pasting your BTG address to which you sent the transaction to check confirmations.








WHAT TO DO WITH CHANGE ADDRESSES:
Ok I said that this was only for “Change” addresses, let’s discuss about “Change” addresses (https://i.imgur.com/aZ7XHJd.png):

There is only one simple thing that changes:
In the step where we paste the x1 /xprv and the x2 /xprv code in iancoleman website you need to select “m/1” instead of “m/0” in “BIP32 Derivation Path”.
That’s it.










MORE THAN ONE INPUT:
Ok, now let’s talk about address with more than one INPUT, so more than one transaction IDs to take care of.
What do I mean?
https://i.imgur.com/EltO5QN.png
Remember this?
You have to pick all the transaction IDs that has an “U” in parallel.
I take a random address on the internet to show you, I paste it on https://btgexplorer.com
https://i.imgur.com/vaX0FNt.png
As you see this address has more than one input and more than one “Unspent” voices so we take all the transaction IDs that we see.


Now, what we do when we have more than one transaction ID?
The only things that will change are the commands that we will run:
When we run
Code:
deserialize(gettransaction("TXID_HERE"))
in Electrum console, we have to run it once for each transaction ID and copy paste in a new note block each of this for each transaction ID:

prevout_n (remember, vout value)
scriptPubKey
value



Then, when we run in BTG Core Wallet this command:
Code:
createrawtransaction '[{"txid": "INPUT_TRX_ID", "vout": VOUT_VALUE}]' '{"YOUR_BTG_ADDRESS":  AMOUNT_TO_SEND}'

we replace:
Code:
{"txid": "INPUT_TRX_ID", "vout": VOUT_VALUE}
with:
Code:
{"txid": "INPUT_TRX_ID_1", "vout": PREVOUT _1}, {"txid": "INPUT_TRX_ID_2", "vout": PREVOUT_2}, {"txid": "INPUT_TRX_ID_3", "vout": PREVOUT _3}

Add as many
Code:
, {"txid": "INPUT_TRX_ID_X", "vout": VOUT _X}
as many transaction IDs you have.

Then, you have to:
Replace INPUT_TRX_ID_1 with the first transaction ID
Replace PREVOUT_1 with prevout_n of the first transaction ID

Replace INPUT_TRX_ID_2 with the second transaction ID
Replace VOUT_2 with prevout_n of the second transaction ID
And so on



Another thing that change, this time in these 2 commands:
Code:
signrawtransaction "RAW_TRANSACTION_HASH" '[{"txid": "INPUT_TRX_ID", "vout": PREVOUT, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD"}]' '["FIRST_PRIVATE_KEY_FOR_SIGNING"]'
Code:
signrawtransaction "REALLYLONG _RAW_TRANSACTION_HASH" '[{"txid": "INPUT_TRX_ID", "vout": PREVOUT, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY", "redeemScript": " REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD"}]' '["SECOND_PRIVATE_KEY_FOR_SIGNING"]'


Replace:
Code:
{"txid": "INPUT_TRX_ID", "vout": PREVOUT, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD"}
With:
Code:
{"txid": "INPUT_TRX_ID_1", "vout": PREVOUT_1, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY_1", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD_1"}, {"txid": "INPUT_TRX_ID_2", "vout": PREVOUT_2, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY_2", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD_2"}

Add as many
Code:
, {"txid": "INPUT_TRX_ID_X", "vout": PREVOUT_X, "scriptPubKey": "INPUT_SCRIPT_PUB_KEY_X", "redeemScript": "REDEEM_SCRIPT", "amount": "INPUT_VALUE_FIELD_X"}
And so on, just add a comma, a space and copy paste the rest if you have more than 2 transactions ID.

In this final command you have to:
Replace INPUT_TRX_ID_1 with the first transaction ID
Replace PREVOUT_1 with prevout_n of the first transaction ID
Replace INPUT_SCRIPT_PUB_KEY_1 with the scriptPubKey of the first transaction ID
Replace REDEEM_SCRIPT with the Redeem Script (always the same)
Replace INPUT_VALUE_FIELD_1 with the value of the first transaction ID

Replace INPUT_TRX_ID_2 with the second transaction ID
Replace PREVOUT_2 with prevout_n of the second transaction ID
Replace INPUT_SCRIPT_PUB_KEY_2 with the scriptPubKey of the second transaction ID
Replace REDEEM_SCRIPT with the Redeem Script (always the same)
Replace INPUT_VALUE_FIELD_2 with the value of the second transaction ID






Things to note before doing this
  • For extra security, you have to move your BTC to a new Electrum wallet, do this to protect them in case your seed/private keys get leaked as a result of this process, you should also ensure that all BitcoinCash has been claimed from these private keys aswell, it's strongly recommended! Don't skip this step.
  • You need Bitcoin Gold Core installed and the full blockchain (it will take a while to download but worth it, there is no rush)
  • It’s easy, it seems difficult but it’s only messy and it takes time, if you follow the tutorial precisely step by step you won’t have problems, in case of problems ask here in the thread, there are people willing to help you, including me. You can also ask me in PM and I’ll try to help you, I can give you my Skype, no problem at all, just know that it’s easy, you just need concentration, don't pay anyone to do this, never give your private key of one single address to anyone, neither the seeds, they can steal you coins from other forks even if you empty your wallet and of course BTG/BCH
  • As I already stated in the tutorial in bold, use the tools always offline or save a offline page of them. This is very important too.

Sorry if I wrote this tutorial late, but I couldn’t before, this took really a lot to write, I had time off for the holidays and I took a day to write this, enjoy it and good luck!
If you have suggestion to improve this tutorial, tell me
1714682827
Hero Member
*
Offline Offline

Posts: 1714682827

View Profile Personal Message (Offline)

Ignore
1714682827
Reply with quote  #2

1714682827
Report to moderator
1714682827
Hero Member
*
Offline Offline

Posts: 1714682827

View Profile Personal Message (Offline)

Ignore
1714682827
Reply with quote  #2

1714682827
Report to moderator
You can see the statistics of your reports to moderators on the "Report to moderator" pages.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714682827
Hero Member
*
Offline Offline

Posts: 1714682827

View Profile Personal Message (Offline)

Ignore
1714682827
Reply with quote  #2

1714682827
Report to moderator
1714682827
Hero Member
*
Offline Offline

Posts: 1714682827

View Profile Personal Message (Offline)

Ignore
1714682827
Reply with quote  #2

1714682827
Report to moderator
1714682827
Hero Member
*
Offline Offline

Posts: 1714682827

View Profile Personal Message (Offline)

Ignore
1714682827
Reply with quote  #2

1714682827
Report to moderator
ApproximateSunlight (OP)
Jr. Member
*
Offline Offline

Activity: 38
Merit: 3


View Profile
December 09, 2017, 12:55:03 AM
 #2

I know, the formatting sucks, I will adjust it tomorrow, promised, be patient please Wink. It's kinda late here, I go to sleep, talk you tomorrow.
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 09, 2017, 03:58:21 AM
 #3

Firstly... awesome effort to write this all out! I had considered doing the same... but I'm in a middle of a 4 day rotation of 12 hour shifts so just haven't had time Wink

Secondly, I ran into a situation where a user had asked for my assistance, and they had their BTG spread across multiple inputs on multiple addresses (2 inputs on a receive, 1 input on a change address).

I know it complicates things a little, but have you thought about typing up a section on how to move ALL the inputs from ALL the addresses in ONE transaction? Wink

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
jerry0
Full Member
***
Offline Offline

Activity: 1736
Merit: 186


View Profile
December 09, 2017, 05:31:25 AM
 #4

So you basically cannot claim bitcoin gold on a chromebook then right because there isn't enough space?  How much gb does the bitcoin gold care wallet take?  Because wouldn't that mean you need a computer with at least so and so gb?   And thus you not might not even have enough space in your hard drive if thats the case?
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 09, 2017, 07:59:46 PM
 #5

A BTG wallet is tiny... maybe 1 megabyte or so... the BTG blockchain however is currently running around 150+ Gigs of storage... but just like BTC, you can store it on an external USB drive. Although I suspect that a chromebook maybe be somewhat slow syncing up as it probably lacks a little in the CPU department.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
adys11
Newbie
*
Offline Offline

Activity: 9
Merit: 2


View Profile
December 09, 2017, 09:38:29 PM
 #6

Great tutorial, I manged to get to the end, and I learned a lot.

But I get an error:

66: min relay fee not met (code -26)

I can't calc the fee in electrum, its emtpy, so it will not give me the total, only per byte:

https://i.imgur.com/BGOKizL.png

300 sat per byte.
So I gave 50,000 sat fee, to be on the safe side.

now I am getting

16: mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation) (code -26)

Address:
https://btgexplorer.com/address/AG6JFd6GebjuDRCB8SMvjhTqgehXLDRveR

I did it for this transaction:
a4c64944cfc57822c460436d7fd359bb641cf63e86ba95f50bf5789516bd160b
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 09, 2017, 10:03:04 PM
 #7

First up... you don't need a huge fee for BTG... the blocks are almost empty... 5 sats/byte should be more than enough to get a confirmation in next block Tongue

You can calculate your rough transaction size as: (#inputs * 148) + (#outputs * 34) + 10

That should be fairly close to your final transaction size. So in you case, you'll have one input and should be sending to one address, so your transaction size will be:

(1 * 148) + (1 * 34) + 10 = ~192 bytes... at 5 sats/byte -> 5 * 192 = 960 sats.... or 0.00000960 BTG

The error message you are getting sounds like you are trying to broadcast a transaction that has not been signed by the minimum number of private keys required for the multiSig. Are you sure that you signed your transaction with the 2nd private key?? Huh

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Ayms
Member
**
Offline Offline

Activity: 182
Merit: 33


View Profile
December 10, 2017, 12:13:21 PM
 #8

I would update slightly the above method to mention that the tools links must be used offline (which is: just disconnect from the network when you use them)

The min fees are 1000 satoshis, if you put an amount below nodes will not accept neither relay your transactions, I tried with my bgold client, modified the minfees so it accepts a tx with less than 1000 satoshis and then of course the tx remained stucked in my node (because others just did not accept the tx)

Or you have to find a miner with a client with minfees<1000s that would accept your tx and mine it, which probably is unlikely

Currently modifying https://github.com/Ayms/bitcoin-transactions to handle multisig

The command would be something like:

node tx.js BTG create prevtx= prevaddr= prevamount= previndex= privkey=<privkey1>-<privkey2>-<redeem script>-<two of two> or <two of three> addr= fees=0.00001001

and probably before

node tx.js BTG decode <redeem script> --> gives you the pub keys to find the associated priv keys + two of something info

while it could be simply

node tx.js BTG create prevtx= prevaddr= prevamount= previndex= privkey=<privkey1>-<privkey2> addr= fees=0.00001001

if Electrum made things easy...

But still people have to find the redeem script, the priv keys, so I am wondering if the tool worth the effort, on another hand with the tool :

- you don't have to sync a full node + wallet (most painful part)

- you don't have to make the complicate cli commands above (painful too)

- you don't have to make calculations for the amount and fees (not very difficult but easy to make mistakes)


Opinion?


Ayms
Member
**
Offline Offline

Activity: 182
Merit: 33


View Profile
December 10, 2017, 09:25:49 PM
 #9

See https://github.com/BTCGPU/BTCGPU/issues/238#issuecomment-350555210

Beware, many things are dubious in this tutorial (and in this thread), don't use it or at your own risks
ApproximateSunlight (OP)
Jr. Member
*
Offline Offline

Activity: 38
Merit: 3


View Profile
December 10, 2017, 09:34:18 PM
 #10

See https://github.com/BTCGPU/BTCGPU/issues/238#issuecomment-350555210

Beware, many things are dubious in this tutorial (and in this thread), don't use it or at your own risks

The method I posted works like a charm, many people, including me, got their BTG with this without any problem, so I don't know what you are talking about but ok, people like to criticize randomly.
You can all stay safe, you can use the tutorial above.
And if you find a simpler and faster way, well, would be great.

P.S. When you say don't move your BTC to a new wallet I hope you are not serious.
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 11, 2017, 01:03:58 AM
 #11

The min fees are 1000 satoshis, if you put an amount below nodes will not accept neither relay your transactions, I tried with my bgold client, modified the minfees so it accepts a tx with less than 1000 satoshis and then of course the tx remained stucked in my node (because others just did not accept the tx)
The min fees are 1000 satoshis PER KILOBYTE... which is 1 satoshi/byte

Check this: https://btgexplorer.com/tx/d0edcd2491d5f609125afdd1aa02c6974b9b7c787f98e8f698a2bed57e8ae550

they only paid 0.00000137 BTG or 137 satoshis... it confirmed fine.  Tongue



Quote
- you don't have to sync a full node + wallet (most painful part)
- you don't have to make the complicate cli commands above (painful too)
- you don't have to make calculations for the amount and fees (not very difficult but easy to make mistakes)
Opinion?
You forgot to mention:
- You have to pay 0.78% to the developer Wink

Seriously tho, I can see how this would be a little easier for some folks who don't want to (or can't) figure out how to use createrawtransaction and signrawtransaction... or don't want to wait a few days to download the BTG blockchain (or don't have the space).



See https://github.com/BTCGPU/BTCGPU/issues/238#issuecomment-350555210
Beware, many things are dubious in this tutorial (and in this thread), don't use it or at your own risks
Can you please expand on what you think is "dubious" exactly? It is easy to make such claims... but I don't see anything obviously wrong with this method. In fact, I have used pretty much the same method at least twice to help different different people "rescue" their BTG from an Electrum 2FA wallet.

Or is it just that you're worried you're not getting your 0.78% cut? Roll Eyes


█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Ayms
Member
**
Offline Offline

Activity: 182
Merit: 33


View Profile
December 11, 2017, 11:19:31 AM
 #12

The 0.78% are clearly mentioned in the git repo, and they are not 10%, 20% or whatever people are claiming to help

At least we can see in both answers that there is an interest for the tool (....(or don't have the space), I would add "and/or the computing capability to sync the chain", that's the most difficult part)

What I find dubious is:

- you don't tell people to use the tools where they put their seeds offline, they are js tools and everything stays local, ok, but you never know, so it does not cost anything to tell them to disconnect when they use them, and to clear everything in their browser after they have used them before they reconnect

- you tell them to "move all their BTC" to another wallet, what does it mean and why?

But indeed pasting a BTC address into btgexplorer.com works (not with btgexp.com) and you get the equivalent BTG address, and yes the 1000s min fees are per kB
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 11, 2017, 01:21:57 PM
 #13

- you don't tell people to use the tools where they put their seeds offline, they are js tools and everything stays local, ok, but you never know, so it does not cost anything to tell them to disconnect when they use them, and to clear everything in their browser after they have used them before they reconnect
Huh... to be honest, I didn't even notice that he hadn't included a warning to run all the tools offline. That's pretty much a standard warning! Should definitely be added into the beginning of the Tutorial... in NICE BIG LETTERS Wink


Quote
- you tell them to "move all their BTC" to another wallet, what does it mean and why?
By moving your BTC off the old private keys/seed before you start "exposing" them, you are reducing the possibility of losing your BTC due to your private keys/seed being leaked... only your BTG is potentially at risk (and any other fork coins still on the old private keys).

If ALL the users of mybtgwallet.com had moved their BTC off their private keys/seeds and into new wallets prior to entering the old private keys/seeds into the scam wallet... how much BTC would the scammer have got? 0.0 BTC Tongue

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
sirmcruz
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 11, 2017, 02:27:31 PM
 #14

Hi!

Thanks for all the work, but it did not work for me...

After inserting the final code (with the final hex) i get this message: "Missing inputs (code -25)"

Can you help me please?

Thanks!
Ayms
Member
**
Offline Offline

Activity: 182
Merit: 33


View Profile
December 11, 2017, 04:27:19 PM
 #15

@HCP

Yes for the first point, to make things easy the tutorial should just say to disconnect from the internet after you have loaded the tool, and if the tool is not working offline, don't insist and certainly do not use it online

Mybtgwallet stole the private keys and then made transactions both on bitcoin core and bitcoin gold (and bitcoin cash), then people lost everything

I think that you could advise to send your coins first to reduce the possibility of such attack but it's not mandatory, neither very important and can give the strange feeling that I got about the whole thing (not talking about the fact that @approximatesunlight is unknown which does not help to trust a sensitive tutorial)

That's not a technical explaination neither and people deserve to know what they are doing

The only issue I see is that you expose the redeem script (and therefore the public keys), that someone else could replay on bitcoin core to steal you coins

Fortunately, this is not possible, because the signatures are not the same between the two networks and then the attacker would need the two private keys to sign the transaction on bitcoin core, which today is quite unlikely to get (unless you mess up, back to point 1)

So I would modify the tutorial accordingly, I will reference it once multisig is implemented for my tool, to get the keys and the redeem script, and so people can decide what they want to use

Then I will modify my comments on github

Question: I am implementing both, but do you know what is the most used between two of two and two of three? (the rationale of the question is that in the first case you don't need to find the redeem script, not sure if it helps a lot since it looks easy to get it from his wallet)

HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 11, 2017, 09:34:42 PM
 #16

Thanks for all the work, but it did not work for me...
After inserting the final code (with the final hex) i get this message: "Missing inputs (code -25)"
This means the "inputs" you are trying to spend, have already been spent in a BTG transaction. Check your addresses on www.btgexplorer.com and make sure that the "Final Balance" is greater than 0.00000000. If it isn't, then that address is empty and does not contain any BTG.


Mybtgwallet stole the private keys and then made transactions both on bitcoin core and bitcoin gold (and bitcoin cash), then people lost everything
And like I said... if those private keys contained NO BTC or BCH before people put them into the scam wallet... would the thief have got 260+ BTC? no... he would only have got the BTG.

Would you rather have lost 0.01 BTG AND 1 BTC+0.1 BCH ... or just 0.01 BTG? Wink


Quote
I think that you could advise to send your coins first to reduce the possibility of such attack but it's not mandatory, neither very important and can give the strange feeling that I got about the whole thing (not talking about the fact that @approximatesunlight is unknown which does not help to trust a sensitive tutorial)

That's not a technical explaination neither and people deserve to know what they are doing
It has been a recommended practice by pretty much EVERYONE since BitcoinCash was announced to have replay protection. Hell, some folks were advocating claiming coins on a completely separate computer/device! In any case, I don't know why moving your coins from one Electrum wallet to a new Electrum wallet with a new seed is such a big deal? Huh (aside from the transaction fees)


Quote
The only issue I see is that you expose the redeem script (and therefore the public keys), that someone else could replay on bitcoin core to steal you coins
You are typing the seed into your computer... and exporting the xprvs for your 2FA wallet in plaintext. In my opinion, that is reason enough to make sure they contain as little value as possible.



Question: I am implementing both, but do you know what is the most used between two of two and two of three? (the rationale of the question is that in the first case you don't need to find the redeem script, not sure if it helps a lot since it looks easy to get it from his wallet)
2FA wallets (which this tutorial is aimed at) is ALWAYS "2-of-3". No idea about MultiSig, but the most common ones seem to be "2-of-3" and "2-of-2".

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
adys11
Newbie
*
Offline Offline

Activity: 9
Merit: 2


View Profile
December 11, 2017, 11:16:26 PM
 #17

First up... you don't need a huge fee for BTG... the blocks are almost empty... 5 sats/byte should be more than enough to get a confirmation in next block Tongue

You can calculate your rough transaction size as: (#inputs * 148) + (#outputs * 34) + 10

That should be fairly close to your final transaction size. So in you case, you'll have one input and should be sending to one address, so your transaction size will be:

(1 * 148) + (1 * 34) + 10 = ~192 bytes... at 5 sats/byte -> 5 * 192 = 960 sats.... or 0.00000960 BTG

The error message you are getting sounds like you are trying to broadcast a transaction that has not been signed by the minimum number of private keys required for the multiSig. Are you sure that you signed your transaction with the 2nd private key?? Huh

Thanks,

I did it again now, its the second address for sure. Same error:
66: min relay fee not met (code -26)

Am I suppose to sign more than one transaction?

https://btgexplorer.com/address/AG6JFd6GebjuDRCB8SMvjhTqgehXLDRveR

I did it for this transaction, am I right?
a4c64944cfc57822c460436d7fd359bb641cf63e86ba95f50bf5789516bd160b
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
December 12, 2017, 01:34:00 AM
 #18

I did it again now, its the second address for sure. Same error:
66: min relay fee not met (code -26)
No... it just sounds like you're not setting the amounts properly... and your "fee" is too low... I'm sent you a PM regarding this.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
bjohanso
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 12, 2017, 01:39:59 AM
 #19


Thank you for writing up this guide.  It is much easier to follow than the other one I found from the folks selling their services to get multisig BTG from BTC.

I'm running into a problem when using https://iancoleman.io/bip39/ to try and use the xprv keys to find the private key for the address from coinb.in.  At the start there are only 20 addresses and keys generated and none of the keys I expect are in the 20, so I generate more rows.  I've now generated about 100,000 addresses and still am not finding any of the three addresses from the coinb.in step.  Do I just need to keep trying more until I find it, or is it likely that I'm doing something wrong?

Thanks for any suggestions!

-Brad
bjohanso
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 12, 2017, 01:56:26 AM
 #20

Okay, I figured it out.  I was using a "Change" address and forgot to use "m/1" for the derivation path (I didn't read the fine print at the bottom about change addresses).

Now to see if I can get through the rest of it...

-Brad
Pages: [1] 2 3 4 5 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!