Friday, 31 May 2019

How to Create & Run an Own ICO Company?

     

          The organization has several ways to raise money. Startups are constrained because traditional institutions are reluctant to invest in new companies that are unproven and with little collateral.  The startup is taking money from the global audience of investors and raising the money of pre-product. So, it makes the investment highly speculative. Established organizations can raise capital through traditional financial services and IPO where they sell shares of the enterprise to investors. But, the new form of raising capital has emerged called an Initial Coin Offering(ICO) by the emergence of blockchain technology and cryptocurrencies. It enables the startup to sell a predetermined number of tokens or a new cryptocurrency. The startup is offering to an investor and the investor purchases with cryptocurrency such as Bitcoin, Ethereum or cash. The investor isn't buying the share of the startup, but instead, it relies on the value of the token or cryptocurrency to increase as it is traded through specific exchanges indefinitely after the sale ends.
        A great opportunity to raise a lot of money is the tokenization of existing businesses and new business ideas. Technically, the tokens being generated in the event of the sale or announcement of the sale. So that's the kind of common way of describing it. Sometimes that can distinguish from an offering a sell of an investment. Tokens build on top of Ethereum blockchain. Technically it is a sale or tokens distributed in a future at a future date. There are many websites supporting the initial offerings and subsequent trading, once the business has been launched. It includes coinschedule, ICO Alertnext.exchange and TokenDesk. One of the benefits is that you'll be able to create early adopter may draw any user base that wouldn't have even known about your product. The investors are basically betting on Team future products and the idea that token as an investment. You not only bet on this will work, but is this a great idea and look at this team to think these guys can pull this off? So, you have to take into consideration of skill sets, track record and the combination of advisors. Technically, all you need is to code a site with a great idea.


Idea & Token: It is important to start with an idea and start a free write, talk about, discuss in detail and think about who would find interest in this idea besides just yourself. Is there a problem and an actual problem? Do 100 people have this actual problem? Do you hear people talking about the problem? It is good to discuss your idea with the people who you know more about your idea space, cryptocurrency space and ICOs then you do it. Once you think, it is valid, and start to find a way to convey in a sketch or images. So, if you get from point A to Point B to C and D quickly with images and sentences that will help a lot to your investor or business person. For that, you must be inspired by your idea to convey it in the sentence and gain interest in where they ask more questions. This inspiration will do something toward the idea to document, add it to your portfolio and go to work.
     Before creating the token, you must have the answers to these questions like,
* Do you need a token?
* Can you convince others that a token offers a strong value proposition for your product or platform and the blockchain help solve the problems such as do you handle records that need immutability?
* Do you need to use code to make decisions and transactions without an intermediary?
* Are you able to sustain the vision using this token?
* Does this product add value to a potential token like trade value or is it something that a merchant or customer wants to hold or add value to the platform.
* Does it create or aid an ecosystem?
     So, you must have the answers to these questions when you tokenize something by giving the rewards using the token or track for rewards and rebates access to the platform, etc.,

Benefits of the Blockchain: In general, Blockchain is the database. The benefits are
 * It provides an immutable track record and immutable profile so that as long as you associated with this profile these things you can trace every step along the way. The history is yours and any ownership changes will be traceable too.
 * Blockchain gives you more security. All the vital and critical moments happening on the app will be written to the blockchain to register data or execute the code(smart contracts) and its state will be visible to anybody because Ethereum is public and permissionless.
* It has human less escrow service by smart contracts and the funds to move on pre-agreed conditions. That will introduce a lot of change in the financial world. Specifically, when you think about an app or platform, the blockchain can be used to transfer data in the background so that it doesn't have the public interface to make every change that needs to happen. So, it allows things to happen based on preexisting agreements without an intermediary. It is the kind of shield that away from that staff.
* Blockchain can be used for value transfer for the in-app activity which you can cash out.
* Any participant will be rewarded for great content (likes, followers, views etc) via the in-app tokenomy mechanism.


Problems & Solutions: It is important to make sure that the problem you solve is very clear. So, you need to talk about the holes in the market or pain points in the users, customers, businesses, and merchants. They should know about your market knowledge, research or your background experience. Discuss prior attempts by solving these problems by others. Then decide on how you are going about to solving this problem. Here, you can insert your detailed solutions of diagrams, paragraphs, words, research, and unique strength.

ICO Landing Page: You should have a central place for everyone to come and learn about your project. So, you must build a website that mainly operates the landing page. You can do the custom development once you get in your projects when you have more data, more investors and the bigger team or you can do it yourself. You may want to have time in the countdown for sale and track how much investment you have. Usually, you have to find easy to download whitepapers and accounts are good so that you can track who is logging in and people can have all the information there. Let's look at the website Plentix, they have the whitepaper, about and easy navigation. When you scroll down, you can see MVP of the first version of product token sale, the team and all the stuff. This is one way to do your project. More importantly, you can sign up and submit questions in the contact page.
     Also, you can search for themes and plugins for your ICO websites. In the ThemeForest, you can search for ICO where you have the options and criteria. If you want to use it as a base and maybe some developers do little work on the back end which is a good start because it covers your design and uses the ICO crypto and ICO trade. And then the quickest way is hiring developers to do the back end stuff to plugged it in. You can buy and link this up at launchpad and have it active where it works with all your links and everything.

Token Structuring, Supply & Price: We want to have a clear definition of what the token is. So, Define its utility as in what can you do with or without the token and how is it like you out or how do you provide you in. What benefit does it provide? Is there a reward that comes from holding a token? Is it a security or an investment? So let's take look at the basicattentiontoken. Here, you have an ecosystem for advertising as an advertiser and a publisher? In the triangularisation, you can see how the token gets used as a reward and describe who gets it. So, it provides more privacy and less fraud.

     You have to think out the following in token supply distribution,
* How many can be created?
* How many can be held by team advisors?
* How many we allocate for sale, pre-sale and private sale?
* How many can be released later?
So, it is important to think all this out and find the strategy that works for you. It is an industry standard to reduce the amount of circulation since you didn't uphold the value during the sale because the demand wasn't high enough. It is also called as burn. Generally, low supply is good and respected investors. But high supply can work with real utility. Let's take the example of solve.care has an allocation of 1000M tokens. 35% goes to presale and sale, 20% goes to the community,18% reserved for the team, 15% for growth and acquisitions, 9% for long term foundation budget and wrap the expenses to 3%. So, this is one kind of token allocation of that company.
    If your token is circulating through an ecosystem, you may want to give it a room to grow with the platform especially if it is not a trading token. Sometimes, fractional is good, because you can use it in many different ways on the platform and you know things get fractional. If there is a limited supply, it is going to be a fractional amount because not many people are going to move a big amount of it. So, think about the target price before the sale, during the sale and after the sale on the exchange. Generally, the security tokens are near to 1 USD and the utility tokens are .20,.30 USD or lower.


Wednesday, 15 May 2019

What are the basics of Ethereum ERC20 Standard: Token Creation?

         

      Ether is the cryptocurrency and Ehtereum is the blockchain implementation it is built on. It is decentralized and distributed that is similar to the way the bitcoin works. It also uses an open ledger and mine for more coins. A great thing is a smart contracts which are essentially automated with no intermediary. Blocks of transactions can be created faster in ethereum. It allows the computer applications that are not just the currency to run on the network. For example, cloud storage like Dropbox is storing your files without the central authority. They will operate very well even if it financially goes down due to files are stored on several different computers on a distributed and decentralized network. It has over 5 million wallets capable of storing Ethereum blocks of transactions that can be created faster than Bitcoin. It uses the Turing Complete Programming language. It means more flexible and giving enough computing power to solve anything that makes easier to mine and use for different applications.

Ethereum Mining: It is similar to bitcoin mining. In each block of the transactions in the ethereum blockchain, miners use computers to repeatedly and very quickly get answers to the puzzle. This is a simplification of what happens, the mathematical problems that ensure the validity of the transactions occurring on the Ethereum blockchain. ETHASH is the specific algorithm that measures the particular miner done work of verifying transactions. It requires more memory to make it harder to mine using expensive A6 which are specialized mining chips. So, the miners rewarded an ether as an incentive.

Introduction to ERC20 Token:         
       ERC20 is basically an interface of a smart contract that defines how a token should look like. Here are the events and functions that we need to have in our token contract. In order for it to be accepted as ERC20 tokens, we need the function of our total supply that is public and return uint that should the total number of tokens in existence. The balanceof function should use the balance of an address that we give it. Allowance in ERC20 tokens we can give permissions to someone else to spend a certain amount of money from your wallet. It is tightly coupled with approve function. Approve function that allows certain wallet address to spend x amount of tokens from your wallet. The allowance will give the remaining tokens that the token owner has allowed spend by the spender. The function transfer allows you to transfer a certain amount of tokens to address. Now, when you use to transferFrom function, you can transfer tokens from the account of another person that has allowed you to use a certain amount of tokens to another person.
                 The transfer event happens at when we transfer some tokens from one account to another and approval event will be triggered when someone has approved someone to spend money on their behalf. And this is the interface of the standard tokens, If you have those functions inside your token it will be accepted as an ERC20 token.
Improving our Basic token to be ERC20 Standard: In the basic token, we only have the function transfer, So let's add rest of the ERC20 token functions, the public variables like name, symbol, decimal, totalSupply and mapping that tracks the allowances and also the events that are needed. Now, let's create the public transfer function code that receives the following arguments of address to and uint256 value that is public and returns a boolean code success. The transfer function will receive msg.sender and the variable to, value. Below the function, let's return true that the transfer was successful.
      The function transferFrom that receives the argument of address_from, address_to, and uint256 value. The function will also be public and will return boolean of success. Then require the value less than or equal to allowance. Afterwords to make sure there is enough money that we are allowed to spend will deduct the money from the allowance. Then, type the following allowance from msg.sender minus equal value. After that, let us transfer the money to the desired accounts that transfer from, to and value. At the end of the function return true to mark the function as successful.
      In the Approve function approve the addresses to spend a certain amount of money on our behalf. This function will receive the arguments of address sender, uint256 value. The function will be public and will return a boolean success, Imagine, you have the company account and want some employees to be able to spend money on behalf of the company. This is where the allowance comes in. So, type inside the bracket of the allowance of msg.sender of spender will be equal to the value. This will give a right to the allowance who have been authorized and what amount of money they're authorized to spend. Value is the maximum amount that the spender can use. Below this, let's emit the approval event. So, type emits approval of msg.sender, spender, value and at the end lets return true that the function was successfully executed. You can get the ERC20 tokens from Github.

Making an Ownable Token: We can add the ability of our token to be ownable. So we can use the modifier for the owner to restrict access to the function that can add tokens or burn them.  Now, we need to create a new contract called owned. Inside the brackets, we will have the public address code owner and also the constructor that has owner equals msg.sender. Then create modifier called onlyowner. Inside the modifier, type requires msg.sender to be equal to the owner. This is the modifier that we will use in the future to restrict access to certain functions. It is important to add the underscore or placeholder at the end of the modifier.
   Now, we also want to be able to transfer the ownership of the token to someone else. So, create a
function called transfer ownership that to receive address newowner and let's add the modifier on the owner to the function. We want only the owner to be able to transfer the ownership. So, inside the function type, the owner equals to newowner. Finally, add the "is owned" keyword at the top where we define the token contract.

Minting or New Token Creation: Mint token that receives address target and uint256 of mintedAmount. This function will be able to create new tokens and give them any account the owner
desires. It is important to give this function the modifier only owner. Inside, the balanceof target plus equal to mintedAmount. The totalSupply plus equal to mintedAmount. We need to emit our transfer event. So, Type emit transfer of zero, owner and mintedAmount. Below it, there is one more transfer event. Type emit transfer of owner to target and mintedAmount.  This is how you create a function that can mint tokens whenever the owner of the token decides.

Deploy our DApp to the Web: It consists of 2 parts. We would want to deploy our contracts into test network within Infura and we want to deploy our Front-End with Heroku which is the service that deploys our applications to the cloud. First, you need to set up and create the account. In order for an application to work, we need to deploy our contracts to the test network. Infura is a hosted ethereum node cluster. We have to set up an own cluster that syncs up the entire ethereum network cluster. So, after you created the account in Infura, login to the dashboard and you need to create a new project for our app.
            Now, we are ready to prepare our truffle project to deploy our contracts to the Rinkeby test network. In order to connect Infura, we need to install the truffle -hdwallet provider and deploy the contract in the test network. Let's register and install Heroku. Heroku is a cloud platform as a service. It supports several languages that you can deploy projects written in many kinds of languages. It supports node.js, ruby, java, php, python, and other languages. It has a free plan to create your account. In the dashboard, create your new application and install Heroku CLI. If you have registered and installed Heroku on your PC, then you are ready to run our truffle project in Heroku.
       The last thing, you need to do is to create a git repository for our project and deploy the Heroku application. In the terminal, login to heroku and create a git repository. Now type Git Init which will initiate the git repository and it is ready to add heroku as your remote repository. Then, we need to add all the files to Git by the command "Git add ." Let's create the commit and publish it. Finally, we need to push our project to Heroku. Once, everything is published, you can open your DApp by typing "Heroku Open". Now you have the working published DApp online and you can test out in the Rinkeby network where we deployed our contracts. It is the way to deploy our decentralized application on the web.