区块链项目如何发币?看这篇就够了

对于Token,每个人有不同的理解和用法,我们通常是以区块链技术来思考Token,在初级区块链发展的阶段,你可以简单的将Token理解为现实生活当中的“积分”或“虚拟货币”比如加油站洗车店会员卡积分,楼下理发店让你办的冲2000送1000的美发会员卡,幼儿园老师给小朋友的小红花……主要是以激励为主的一种虚拟的、在某一范围内普遍承认的虚拟货币,你可以用当时我给你的Token来置换我的某些物品或等价货币。

在以太坊ERC20出现后,Token进入了第二阶段。作为募集以太币的凭证,可以在交易所交易,实现实现ICO流程的自动化。

在通证这个翻译诞生后,我们对Token的认知进入了第三阶段。Token的内涵被进一步扩大化,Token不再局限于令牌或者ICO代币,还具有使用权、收益权等多种属性,区块链加密技术可以保障所有不可篡改的符号都可以作为通证,即:具有了专属使用权,当它的专属使用权放在价值网络当中兑换成通用使用权后,才可进一步流通;也就是在该阶段Token经济才有发展的可能。

现在,国内Token的发展阶段普遍在第二阶段,虚拟币的一级市场已经被玩烂,很多人争先恐后的去发区块链项目,找人才,建团队,撰写区块链项目白皮书,找行业大佬站台,做社群活动,组建社群,然后去交易所发自己的Token。而做个币只要0.2ETH,在交易所发行后,只要有足够多的人认购你的Token,瞬间就变成了成千上万的ETH,韭菜也就轻松收割了。

温馨提示:发币本身不属于融资行为,币可以单纯作为一个项目生态内循环的存在。只有发币后公开 ICO 才属于融资行为,我国明确禁止 ICO,发币融资(ico)已经是非法行为。

那么,具体的发币流程有哪些呢?今天我就带来一个干货!教你如何用智能合约发行自己的虚拟币,也就是Token。

现在我们发一个币相对比较容易,这一切就要归功于 ERC20 协议,作为以太坊的协议之一规定了代币合约的基本架构,遵守ERC20协议的任意一种代币都可以在其他应用(钱包,交易所等)中使用。有了 ERC20 协议,我们就不需要重复开发代币基础功能,极大降低代币开发的门槛,让开发者可以将代币应用到更多领域,发起更多 ICO 项目;更方便的是,由于不同 ERC20 代币都兼容 ERC20 协议,这样两个 ERC20 代币之间就能够进行交易。

首先,提前准备好开源环境,在Chrome浏览器内置ETH钱包Metamask插件。

安装步骤:

①点击以下网址进行安装, 点击添加至chrome。

chrome.google.com/webst

②点击添加扩展程序

③点击chrome浏览器右上角metamask图标,同意隐私条款和使用条款

④输入并确认密码,创建账号

用ImToken钱包向你的Metamask钱包里打0.1ETH以上的代币,用来扣手续费。

⑤ImToken钱包:token.im或者在应用商店下载。

用来存放你新制作的币。

⑥智能合约地址:
remix.ethereum.org/

其次,打开合约地址,在remix上点击左上角的+号,新创建文件,文件名把Untitled改为AndyToken,并把合约代码复制粘贴到里面。ERC20 协议包含完成代币交易必须要实现的一些方法,其中包含代币交易,查询代币余额,代币总供应量等。

智能合约接口代码如下:

pragma solidity ^0.4.18;/**

* @title ERC20Basic

* @dev Simpler version of ERC20 interface

* @dev see github.com/ethereum/EIP

*/contract ERC20Basic {

function totalSupply() public view returns (uint256);

function balanceOf(address who) public view returns (uint256);

function transfer(address to, uint256 value) public returns (bool);

event Transfer(address indexed from, address indexed to, uint256 value);}/**

* @title ERC20 interface

* @dev see github.com/ethereum/EIP

*/contract ERC20 is ERC20Basic {

function allowance(address owner, address spender) public view returns (uint256);

function transferFrom(address from, address to, uint256 value) public returns (bool);

function approve(address spender, uint256 value) public returns (bool);

event Approval(address indexed owner, address indexed spender, uint256 value);}

其中必须实现的方法和事件包括:

totalSupply:查询代币总供应量

Transfer 事件:在代币转移中触发,转移数量为 0 时也必须触发该事件

Approval 事件:成功调用 approve 时触发

name:返回代币名

symbol:返回代币符号

decimals:返回代币使用的位数,用于余额显示

其次,我们可以创建名为TutorialToken.sol的智能合约,内容如下:

pragma solidity ^0.4.4;import ‘zeppelin-solidity/contracts/token/StandardToken.sol’;contract TutorialToken is StandardToken {

string public name = ‘TutorialToken’;

string public symbol = ‘TT’;

uint public decimals = 2;

uint public INITIAL_SUPPLY = 12000;

function TutorialToken() {

totalSupply = INITIAL_SUPPLY;

balances[msg.sender] = INITIAL_SUPPLY;

}}

(在上面的代码中,引入了StandardToken.sol,并且我们声明TutorialToken继承自StandardToken。这样就继承了StandardToken合约中所有变量和函数。)

接下来,只要在子类重定义对应的变量与函数就行了。即:需要设置代币的参数,需要定义自己的代币名称name,代币符号symbol,代币单位decimals和初始发行量INITIAL_SUPPLY。代码如下:

string public name = ‘TutorialToken’;string public symbol = ‘TT’;uint public decimals = 2;uint public INITIAL_SUPPLY = 12000;

最后在构造函数中我们简单添加代码来设置totalSupply来等于INITIAL_SUPPLY,同时把所有的币赋值给部署者的帐户。代码如下:

function TutorialToken() {

totalSupply = INITIAL_SUPPLY;

balances[msg.sender] = INITIAL_SUPPLY;}

使用这个模板,我们只需手写小于15行的Solidity代码就创建了一个自己的符合ERC-20协议的代币。接下来部署这个代币合约,并与代币进行交互,即大功告成,整个过程还未必超过十分钟。(注:该模板参考资料为:
toutiao.manqian.cn/wz_d

因为有开源环境,发币相对比较简单,而要让所发的币拿到交易所上市,然后进入市场有人认可它,并有大量的“币民”认购它才是难得地方。祝大家上ICO成功哈。

文:思二勋

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注