How To Find Your Specific Input Parameters For The bitcoin_fork_claimer Tool
Introduction
This is a follow-up to a previous article that covers the basics of Ymgve's bitcoin_fork_claimer
tool. If you are not already familiar with the basics of the tool, it may be helpful to review that article first before getting into the details covered by this article.
The starting point for this guide is the transaction IDs of your addresses that you have already located as potentially holding Bitcoin fork coins. If you don't already have a list of addresses, you may want to zoom out to the main guide for claiming forks to help better understand the larger process, but also dealing with issues specific to your private key security situation.
This part of the overall process might be the most complicated part for the novice trying to claim their coins from their keys. It requires a bit of deep understanding of bitcoin transactions. However, don't worry, we will step you through it.
If you haven't already done so, please read through the Figuring out which bitcoin fork coins I own guide for our conceptual primer on finding your transactions that are credited with forked coins.
This guide will require some advanced use of the blockchain.info block explorer. It will guide you as if you are doing it via the Tor Browser on a secure setup. However, blockchain.info works just as well from any browser and any PC (but with less privacy, of course).
Just remember that inputting your real addresses can potentially associate those addresses and balances with your home IP address and social media profiles.
This guide will use the following Bitcoin address, which is safe to use as learning example:
1MrpoVBweTnwPTase83S13LSZZ2Ga4Amk7
If you feel you have sufficient background knowledge and context, props for making it this far and thanks for sticking with it. We can get started.
This Looks Horribly Complicated
Yep. But less so if you just have a single Bitcoin storage address and a simple transaction record and only need to go through this once. This is a guide for of the manual way to do this process. If this process becomes overwhelming because you have many addresses and/or a complicated past transaction record, Forkdrop Suite is a set of tools that helps you automate this process in a secure any private way. In any case, understanding how this process works is still important.
Overview Parameters for Standalone Mode
This assumes we are going to use the tool's standalone
mode. This is optimal for protecting your privacy. If you wish to use the tool's blockchain.info
mode, the parameters named:
output index in transaction
number of satoshis on the source transaction output
these will be queried automatically from blockchain.info (though, they are still worth understanding, which we will cover).
In the README.md document for the bitcoin_fork_claimer tool the claimer.py
usage is documented as:
claimer.py <cointype> <source transaction ID> <source private key> <source address> <destination address> --txindex <output index in transaction> --satoshis <number of satoshis on the source transaction output>
The values described inside the angle brackets (<
and >
) need to be provided to the script.
cointype
source transaction ID
source private key
source address
destination address
output index in transaction
number of satoshis on the source transaction output
Coin Type
In the README.md document for the bitcoin_fork_claimer tool the coins it currently supports are documented. This parameter is simply the ticker symbol for the coin.
For example, to create a transaction for Bitcoin Diamond (BCD), this parameter should simply be:
BCD
Source Transaction ID
You must have done homework to know which addresses and transaction are relevant for your forked coins. This is covered broad detail in this article. For this parameter you need to provide the Transaction ID in it's hexadecimal form. Be sure to not leave off any digits, since it may still get recognized as a valid hexadecimal-encode number and will cause the claiming opertion to fail with a potentially-confusing message.
For address:
1MrpoVBweTnwPTase83S13LSZZ2Ga4Amk7
the transaction that qualifies for Super Bitcoin (among others), is:
575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb
Source Private Key
This is the secret that is guarding your money that you are supposed to be protecting. Since we are spending money, we need to expose it to the script for it to use in creating the spend transaction.
In the article for extracting individual private keys from seed phrases, we used an example seed phrase that starts with:
void come effort suffer camp survey....
For that seed phrase, the first receiving address was:
16TAELm3SrzdD7n5UEEHQSS2LviMcKaTi1
*
*this address never held BTC, so we don't have a matching TXID like the other example address.
In the Derived Addresses
section the public address:
16TAELm3SrzdD7n5UEEHQSS2LviMcKaTi1
Has the corresponding private key value in the right-hand column:
KxhQgKrZArMV7rsczWG1NBgqCzV6Dngk7gNX3uVBcj2K7PZbu9Eb
If the Source Address
value was:
16TAELm3SrzdD7n5UEEHQSS2LviMcKaTi1
it would be the appropriate private key value to give the script.
Paper Wallet Private Key
If your key is in the form of a paper address, the value is the printed private key unless it is Bip38 encrypted. If it is encrypted, you will need to decrypt it, which can be done by using the bitaddress.org tool for which we have a guide for running securely:
Source Address
This is your bitcoin address that matches the transaction ID value. It also must match the given Private key.
For Transaction ID:
575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb
this value should be address:
1MrpoVBweTnwPTase83S13LSZZ2Ga4Amk7
Destination Address
This is the destination address we are sending the coins to. If you are planning on selling these coins on an exchange, it should be the deposit address for that specific coin given to you by the exchange.
For help finding an exchange that meets your requirements, we have a table of helpful data provided for you at forkdrop.io. Don't forget to use the referral codes when signing up. :)
Our full article on finding exchanges:
For coin amounts that you deem not worth going through the trouble of registering, depositing and selling with an exchange, we submit that you consider donating these coins to us via the addresses we have provided in order to help support this website and content such as this.
Output Index In Transaction
This one is a bit more complicated. Bitcoin transactions can have many outputs and you have to choose the right one for your address. Often exchanges and other high-volume businesses bundle together many of their transactions fees order to save on on-chain transaction fees. The output that credits your address might be the 12th output out of 29 outputs in a transaction.
This is the exact case for our example address:
1MrpoVBweTnwPTase83S13LSZZ2Ga4Amk7
in transaction:
575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb
This parameter given to the script has to exactly match this integer value. The first step is to find the blockchain.info page for your transaction ID. For the non-Tor access point, the URL for our example transaction is:
https://blockchain.info/tx/575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb
For the Tor access point in the Tor Browser, it is:
https://blockchainbdgpzk.onion/tx/575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb
*
*(which cannot be accessed outside the Tor Browser)
If we carefully count down the list, we will see that our address is the 12th on the list, which means the parameter we want is 11
, however visually counting this way is error-prone. If we get it wrong, it could waste a lot of time trying to debug why the transaction is being rejected. We need to add ?format=json
to the end of the URL, we can see the raw view of this data.
For non-Tor access the url will be:
https://blockchain.info/tx/575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb?format=json
In the Tor Browser (which cannot be accessed outside the Tor Browser), it is:
https://blockchainbdgpzk.onion/tx/575edb19198de7df90e466062846d1512d9ef97889971e1a1c113d6108d8c1bb?format=json
If this looks scary, don't worry. This is the exact same data without the nice formatting for the webpage design. You want to scroll or search down through this data for your address:
The value after the "n:"
is the value to use for the parameter.
The value in this example is:
11
*
*It is most likely different for your addresses.
Number of Satoshis On The Source Transaction Output
For this parameter, you already did the hard part in finding the previous parameters. This value is right above the index value and prefaced. "value:"
That is the number of satoshis to give to the claimer.py
script.
For our example address, the value is:
27200000
*
*Be sure to get the exact value correct with the correct number of following zeros.
What Next?
You need to gather all these values for all the transactions you want to spend. It is best to keep organized in a text/notepad file. If you are in a secure temporary live-boot setup, we suggest storing it on a secure USB drive. This is especially true if you are adding your private keys to the list. It will save you some effort if you organize the parameters on a line in that text file as if you are invoking the claimer.py
script. It might look something like this, but with your information:
Note that there are no newline characters on that line. It is display of this particular text editor that is wrapping the long line onto the next lines. If you are doing this operation for multiple coins and multiple transaction IDs and keys, add a new line that starts with claimer.py
for each one.
Being organized in this way helps you double and triple check all of this information before you actually go ahead and execute the script. Depending on how scattered your transaction record and keys are, this text file could be dozens or hundreds of lines long. If this is overwhelming, it might be good to just work one line for now and build confidence successfully using the script before worrying about being complete.
If you feel you are ready (and again, it is best you don't rush it and leave yourself open to mistakes), we can then take this information and proceed to actually running the script: