# Ignite Tutorials: # Create a Simple Blockchain (Part: 1) Do you want to create a blockchain, but don't know where to start? If so, you’ve come to the right place! Ignite was created for this purpose. As you may know, Ignite CLI is a powerful tool that enables users to create sovereign blockchains with simple and intuitive commands. Let's get started! For this demonstration, we’ll create a basic blockchain with the address prefix "awesome". I assume you already have Ignite CLI and Golang installed. If not, please check out these links: For Golang, please install the correct version for your computer (you can find the correct version in the "go.mod" file of the repository, so in this case it's v1.21.1): [Install Golang](https://go.dev/dl/) For Ignite, please follow the install instructions that can be found here on our docs page: [Install Ignite CLI](https://docs.ignite.com/) All set? Let's build a blockchain. For this tutorial we will create our project in our home directory, you can of course do this in any folder you like, or a virtual environment, etc. ``` #open your command prompt. cd #into your home directory ignite scaffold chain awesome --address-prefix awesome ``` If done correctly, you should see something like this: ![Ignite_scaffold_chain](https://hackmd.io/_uploads/Hyg3cf0B6.png) Congratulations! You successfully created a blockchain! Note: If you encountered any errors, please leave a comment or reach out to us on our Discord channel here: https://discord.com/invite/ignite Okay, let’s see what’s in our directory. We can enter there with the following command: ``` cd awesome ``` Let’s list the contents of the folder with the following command: ``` ls -a ``` ![ls-a](https://hackmd.io/_uploads/SkBCcfRS6.png) Let’s look at the contents of our configuration file (config.yml): ``` nano config.yml ``` You should see something like this: ![nano config](https://hackmd.io/_uploads/SkN1jMCB6.png) These parameters play an important role in creating the Genesis file. It is important to note that Genesis files and binaries are different entities and function independently of each other. You can make changes to the binary without affecting the Genesis files. If you need to make changes to the config.yml file, you need to run `ignite chain serve --reset-once`. This command resets the settings to reflect your changes. Please note the format of this file for it to function properly. When you are finished viewing or editing, you can press Ctrl + X to exit the file. There is no need to save your changes at this step. Now let’s launch our blockchain. This will create the blockchain’s binary which we can use to interact with our blockchain. ``` ignite chain serve ``` After a short while, you should see something like this: ![ignite chain serve](https://hackmd.io/_uploads/HJcxszCra.png) If you see this, congratulations! Your blockchain is running on your computer's local host server. Let’s explain what we’re seeing here: First off, two accounts have been created, one for Alice and one for Bob and their corresponding mnemonics. Second, we now have three services running: node, api, and faucet. 1) the Tendermint Node at http://0.0.0.0:26657 2) the Blockchain Rest API at http://0.0.0.0:1317 3) the Token Faucet at http://0.0.0.0:4500 Lastly, the Data Directory is located in ~/.awesome (Note: the path will be different from what is listed above) and the app’s binary is now located in your go/bin directory. (Note: This depends on the go installation and can be found with `which awesomed`). For the next step, let’s verify the app’s binary was correctly installed and accessible by your command prompt: ``` awesomed —help ``` Note that you need the double dashes for the command to work. If your app has been installed correctly, you should see something like this: ![awesomed --help](https://hackmd.io/_uploads/HJWEizRHp.png) So similar to how “ignite” commands all start with the ignite CLI command followed by sub-commands, the “awesomed” binary will be followed by these sub-commands. Let’s see some examples by checking Bob’s public key and token balance using the awesomed binary. To see a list of public keys, we can use this command: ``` awesomed keys list ``` You should see this: ![awesomed keys list](https://hackmd.io/_uploads/Hk94ofRBp.png) Also, for all commands, you can add the --help flag, as it will show you what subcommands are available and also which parameters/arguments are required. Next, let’s check Bob’s account balance. To do so, we will send the chain a query: ``` awesomed query bank balances [input Bob’s address] ``` As you can see below, Bob has 100mn Stake Coins and 10000 tokens. If you look back at the config.yml you will notice that these amounts match what was inputted into the initial config.yml file used when the chain was launched. You can have multiple denominations on your chain. ![awesomed query bank balances](https://hackmd.io/_uploads/B1BvoGCST.png) Go ahead and check out some of the other commands. I also suggest reading their corresponding docs with the --help flag to familiarize yourself. In our next tutorial, we will create a simple front-end interface that will allow us to send and receive tokens and see our token balance. So, stay tuned, and let us know if you have any comments or feedback. See the links below for more information. We’re looking forward to seeing what you build! Official Ignite Docs: https://docs.ignite.com/ Official Ignite Github: https://github.com/ignite/cli Join us on Discord: https://discord.com/invite/ignite Follow us on Twitter: https://twitter.com/ignite_com