BitShares Forum

Main => General Discussion => Topic started by: MarsResident on June 03, 2017, 05:20:21 am

Title: How to Create Your Own Cryptocurrency
Post by: MarsResident on June 03, 2017, 05:20:21 am
https://steemit.com/cryptocurrency/@MarsResident/mint-your-own-currency

There are 2 conventional ways to make a Coin, and a few other ways to make Coins, so I am going to cover a few of them in this post, and it is actually 1000x easier than you would expect. Bitcoin is now over $2,000 each on the way to $3,000 each with a $38,882,000,000 Market Cap, that means all together, all the Bitcoins in the world are worth $38 Billion almost $39 Billion. Look at the Website Coinmarketcap.com to see how valuable a Coin can be, even if it is not Bitcoin.

First, here are the "Unconventional" ways of making coins.

CryptoNote, create your own CryptoNote (Your own Real CryptoCurrency) here https://cryptonotestarter.org/

Token, create your own Token (Not a real coin, but can gain value) with an Ethereum Contract here https://www.ethereum.org/token

Asset, create your own Asset (Not a real coin, but can gain value and can be traded on OpenLedger) with a Bitshares Contract here https://bitshares.openledger.info/account/ YOURUSERNAME /assets/
(You have to add your OpenLedger Username to the Link for it to work)

Possibly an in Wallet Coin Creator https://bitcointalk.org/index.php?topic=1699319.0

Now, Forking. All you do to Fork a Coin is go to the URL of that Coin on Github (most coins are on Github).

Here are some examples of Coin URLs on Github:

steem-0628c82c46232bc40911d43945b6fbb5.png
STEEM
https://github.com/steemit/steem

af620b6bce29dd21c54b40cb32d3fdda.png
Ethereum Classic
https://github.com/ethereumproject/go-ethereum

sprouts-icon.png
Sprouts
https://github.com/sproutcoin/sprouts

transparent_b.png
Bitshares
https://github.com/bitshares/bitshares-core

dogen.png
Dogecoin
https://github.com/dogecoin/dogecoin

Just choose your coin, then press the 687474703a2f2f68756270726573732e696f2f696d672f666f726b2d69636f6e2e706e67.png icon. Once you click that you have forked the Coin.

If you want to Clone the coin you click the button on that page that says "Releases" then choose the version of the Coin that you want to Clone. You may need to create a Virtual Machine and change the Operating System (OS) to Ubuntu or CentOS or one of the various Linux OSs that use Unix.

Whether you are Forking or Cloning you are going to have to change a few things in the Coin's code, but this is not hard. Here is the video guide for how to create coins (This is outdated as it was made in 2015, but the process is the same you just need a few different dependencies now, which just means you have to type in a few different things in the code which downloads a few new updated things that didn't exist when the video was made)
Video Guide: https://bitcointalk.org/index.php?topic=1278734.0

Here is a Written Guide, it's really not that hard, you have to go in the code but there is pretty much 0 programming knowledge needed. It's basically just search and delete and replace and pretty much all in one folder of the Coin except for the graphics part and the compiling and Wallet part:

Find-and-Replace all instances of the Old Coin name in the Code with the name you want your Coin to have

Find-and-Replace all of the Coin identifiers in the Code, for example BTC for Bitcoin, or DOGE for Dogecoin, or LTC for Litecoin, and replace the BTC or DOGE or LTC which your Coin's identifier.

Change the Subsidy value, this value is the number of Coins that will be rewarded to people who mine your coin, for every block they mine.

Change the Block Time, this is the amount of time it takes for a new block to be found. So for example, you could have a Coin that has a block reward of 1000 which seems like a lot, but you could make it where this Coin only produce blocks every 5 hours, so that there are only 1000 coins made every 5 hours, which is more than Bitcoin but much slower than many other coins. Or you could make a Coin with 50 coins in a block and a block every 5 seconds or every 30 seconds.

Change the Difficulty, this will be called Target in the code. This sets the standard for how hard it will be to mine your coin as it get further and further into its life, like how Bitcoin can't be mined on computers anymore and must be mined with ASIC machines, and there are people with entire warehouses full of ASICs mining Bitcoin because A. The Difficulty has gone up so high, and; B. Not only is the difficulty extremely high for Bitcoin, there is also tons of competition when searching for blocks because so many people have machines searching for blocks. You can find more info on Difficulty here:
https://en.bitcoin.it/wiki/Difficulty
https://en.bitcoin.it/wiki/Target

Change the Block Height (the Total number of Blocks that will ever exist, and therefor the Total number of Coins that will exist. To find the number of Coins simply multiple Total Blocks X Coins per Block).

Change the Halving Time (This is how often the rewards for mining will halve, meaning if it starts at 100 it will halve to 50 in 7 years if you set it to 7 years, or 10 years if you set it to 10 years, etc, then it will halve to 25 after another 7 years, and 12.5 another 7 years after that, and 6.25 another 7 years after that, meaning that after 28 years anyone mining your Coin will be rewarded 6.25 Coins per block instead of 100 Coins per block like the people who mined it for the first 7 years. This allows Coins to start off fast and become more rare which allows value to go up, just like Bitcoin has. It used to be really easy to get Bitcoins, but now you are better off making your own Coin than mining Bitcoin.

The Genesis Block will have a "x0" and a bunch of numbers after that, like "x01345328u45892394859324598324598" or something. You just erase everything except the x0, so that all the other numbers are gone and the only thing that remains is the x0.

Remove the Merkle Root.

Find the Headline and change the one that the Coin has to a News Headline from the day you are making your coin.

Google the "Current Epoch Time" then change the Epoch time to the one you found.

Remove the Nnonce.

Remove all the Checkpoints except 1.

Change Ports if you want.

Use GIMP or Photoshop or a Mac or Paint to create some Graphics, and then go into the folder in the coin that has the images. One of the Graphics will go in the Wallet so when people open the wallet they see it, one will be the "Loading" graphic and will appear on their screen before the Wallet opens, and one will be the side bar that goes on a few of the windows.

Copy your Code and create a "Clean Uncompiled Code" Folder, then Compile the Code in the one that you had before you made the copy, and keep the copy untouched.

Run the Code and get a Fatal Error.

Take the Merkle Root and Nnonce from the Fatal Error Code and put it in the Clean Code.

Create another Copy to dirty up, then Compile, and Run the Code , then Mine the Genesis Block and add the Genesis Block to your Clean Code.

Use Gitian Builder from Github to build your Wallet (just follow the instructions).

Then put your Coin up on Github and start telling people they can download it and use it.

So that is the Conventional way to make a Coin through Cloning or Forking, another Unconventional way would be to just go and create a completely new Coin, with new features. For example, Bitcoin is Proof-of-Work (PoW) meaning that you have to mine it with real world hardware in order to get them, while Peercoin is Proof-of-Stake (PoS) meaning that you have to have Coins in your Wallet and your Wallet will mine them with no extra hardware attached to your computer. Then there is Bitshares and STEEM, which Are Delegated-Proof-of-Work-and-Stake (DPoWS) meaning that there is a way to earn it with PoW such as mining, and ways to earn it with PoS such as holding them in a Wallet, but these abilities are "Delegated" by Vote. So people Vote for people to be allowed to mine the Coins, and those people keep the network up and earn Coins. So an unconventional way to make a coin would be to just create an entirely new feature for a Coin. This would require you to come up with something, figure out how to write it into code and to launch your own Coin.

Here is some extra information about Forking and Cloning:

Adding premined Coins to your coin (many people in the existing Bitcoin community don't like premine, so don't use it unless you have a good reason or are just releasing your Coin in a local area and not to the existing Bitcoin communuity)
http://dillingers.com/blog/2015/04/23/adding-a-premine-to-an-altcoin/

Compile guide for Windows on Linux
https://bitcointalk.org/index.php?topic=1080289.0

Here is a VERY detailed guide that explains how to make a Coin, but it may be hard for many people to understand completely
http://www.theseus.fi/bitstream/handle/10024/123896/Sikorski_Timothy.pdf?sequence=1

There are also websites that you can pay to create a coin for you, and some will create a Coin for Free. Walletbuilders, ColoredCoins and Build-a-co.in are examples.

I will write more soon to drill down into specifics, but this should be able to get anyone who wants to make a Coin to the point where they actually have a Coin made.