How to convert Factoids to Entry Credits

Find below the steps necessary to convert Factoids to Entry Credits (EC) and the relative commands. Before attempting to transact factoids read this guide fully, at least once.

This is early beta software you should use this guide at your own risk, we suggest not to use large amount of factoids in case there may be issues, bugs, or you mistype a command. The Factom Dev Team is working on an easy to use Factoid Wallet App (GUI based), it is some time away and if unsure how to use the command line, it will be best for you to wait.

For this guide we are using labels to describe Factoid and EC addresses: factoid1, entrycredits1. These labels are only known to your local wallet. You can also use the public address (public key) instead of the label, factoid public keys are strings of letters and numbers that start with FA while entry credits public keys start with EC. When you send transactions outside of your local wallet, always use the public key.

Note the difference when sending commands on different platforms:

  • Mac:
    ./factom-cli < rest of the command >

  • Windows:
    factom-cli.exe < rest of the command >

  • Linux:
    factom-cli < rest of the command >

Make sure to change the following commands accordingly.

Step 1. First you’ll need to have factomd and fctwallet running in other terminal windows. See the guide here to learn how to install the binaries for your OS.

Step 2. Then launch factom-cli in a new terminal window, this is where you will type all the commands. For the purpose of this guide we assume you have a factoid address with a factoid balance labeled factoid1 and will need only to generate an EC address labeled entrycredits1:

factom-cli generateaddress ec entrycredits1

The terminal output will look like:

howentrycredits1

The string starting with EC is an actual Entry Credits address (public key) where to send Factoids to be converted. In the command above replace the label "entrycredits1" with something more meaningful to you.

In our example we have just created a new empty EC address labeled entrycredits1 which we will use to send factoids to from the address labeled factoid1.

Step 3. So to check we have both a factoid address with a balance and an EC address in our local wallet we’ll type:

factom-cli balances

The terminal output will look like:

howentrycredits2

Step 4. At this point we are ready to create a new transaction labeled "ectransaction1" by typing:

factom-cli newtransaction ectransaction1

The terminal output will look like:

howentrycredits3

Replace ectransaction1 with something more relevant to you, this will be the label for the transaction in all the following steps.

Step 5. Now you need to specify how many factoids you want to send for conversion into EC and from which address (input), in this example we want to send 2 factoids, so type:

factom-cli addinput ectransaction1 factoid1 2

The terminal output will look like:

howentrycredits4

Replace factoid1 with either a factoid address starting with FA or your own label given to it when it was created.

Step 6. Now you need to specify an EC address (output), where to send factoids for conversion, and the amount to send, note the command here is "addecoutput" and not “addoutput”, you may lose your factoids if you mistype the command at this stage, so type:

factom-cli addecoutput ectransaction1 entrycredits1 2

The terminal output will look like:

howentrycredits5

Replace entrycredits1 with either the EC address starting with EC or your own label given to it when it was created in step 2.

Step 7. Now check how is ectransaction1 being built and if all looks good by typing:

factom-cli transactions

The terminal output will look like:

howentrycredits6

Step 8. Get the transaction fee amount by typing:

factom-cli getfee ectransaction1

The terminal output will look like:

howentrycredits7

Step 9. Add the tx fee to the amount of factoids to send to your input address (factoid1) by typing:

factom-cli addinput ectransaction1 factoid1 2.012

2 (factoids) + 0.012 (fee) = 2.012 in this case, yours may be different depending on the amount you wish to convert. Always double check the amounts are correct.

The terminal output will look like:

howentrycredits8

Step 10. Make sure the fee specified is correct by typing:

factom-cli transactions

The terminal output will look like:

howentrycredits9

Step 11. Sign your transaction with:

factom-cli sign ectransaction1

The terminal output will look like:

howentrycredits10

Step 12. Check the signing process is fine with:

factom-cli transactions

The terminal output will look like:

howentrycredits11

Step 13. Finally you are ready to submit your transaction with:

factom-cli submit ectransaction1

The terminal output will look like:

howentrycredits12

Step 14. Wait 10 minutes or less depending how far you are from a sixth of an hour, transactions in factom execute at each 10 minutes on the clock so at minute 00, 10, 20, 30… and so on. For instance if it’s 12:00 you have to wait 10 minutes, if it’s 12:28 you have to wait 2 minutes instead.

Step 15. After the right amount of time has passed you can then check your factoids have been converted to Entry Credits and are in the destination EC address. If the destination address is not in your local wallet use http://explorer.factom.org to check the balance. Type:

factom-cli balances

The terminal output will look like:

howentrycredits13

Recommendations

We strongly recommend to backup your local factoid wallet file every time you add or generate a new address. The wallet file is called "factoid_wallet_bolt.db" and is located in the .factom folder at the following locations:

  • Mac: /Users/YourUsername/.factom/factoid_wallet_bolt.db

  • Windows: /Users/YourUsername/.factom/factoid_wallet_bolt.db

  • Linux: ~/.factom/factoid_wallet_bolt.db

Note that the .factom folder is a hidden folder so perform a Google search for "how to show hidden files and folders on YOUR OS", replace YOUR OS with Mac, Windows or Linux accordingly.

If you want to backup your local wallet file and setup a fresh one you can do so by first quitting factomd and fctwallet, then move your wallet file to a safe location and out of the .factom folder; there should be no wallet file left in there. You can then restart factomd and fctwallet and a fresh new wallet will be generated containing no addresses. If you want to restore a previously backup wallet repeat the above, making sure you backup the current wallet, and drag and drop the previous backup in the .factom folder. You can then restart factomd and fctwallet and your previously backup wallet will be used instead. Pay attention when performing backups, each wallet file contains your Factom Secret Keys (private keys) for each of the addresses contained within it, if you overwrite a wallet without backup first you may lose your Factoids and Entry Credits.

For a better idea on how transaction fees work, if they are too low when you run submit, it will fail with a message that tells you how much the fee should be. If you input too much you won’t get an error and you will lose the extra fees.

Do not run fctwallet when you are connected to an unsafe network, like at a cafe, an airport, public wifi hotspot, etc. You could lose factoids. The wallet is unencrypted, and hackers could potentially steal factoids.

Note that once factoids are converted into Entry Credits they cannot be converted back. Furthermore Entry Credits are non-transferrable, once they are assigned to an EC public key they cannot be transferred to another address.

The binaries know how to calculate the exchange rate between factoids and entry credits but if you want to find out beforehand how many factoids you need for a set amount of EC follow these simple steps:

###phttp://explorer.factom.org.

b. Select the latest block on the top left hand side of the page:

howentrycredits14

c. Scroll down to "Factoid Block:" and click on the hash in blue:

howentrycredits15

d. Scroll down to JSON Data:

howentrycredits16

e. Locate "ExchRate" on the right hand side of JSON Data:

howentrycredits17

f. Divide that number by 1 Factoshi = 100,000/100,000,000 = 0.001 factoid per EC. At the current exchange rate 1 Factoid = 1000 EC. This is subject to change so always double check.