ERC20で独自トークンの発行や作り方
Ethereum(イーサリアム)で作成されるトークンの標準的な規約にERC20があります。
イーサリアムトークンの殆どがERC20です。作り方は必要なコードを組み合わせて簡単に発行できます。
現在、様々なイーサリアムトークンが発行されており、それぞれ改良された設計になっています。
作成時に参考にしたい標準的なERC20コードを沿えたコインが「ALIS」です。国内の企業が発行しており、ごく一般的な設計で必要な部分は揃っており、バグもなく安定しています。
ALISのコードを参考にして、独自トークンを作成する方法を解説します。
ERC20トークンの作成方法
ALISの設計図はEtherscanで公開されています。
これを参考にして、ERC20トークンを設計しましょう。
実際に作ったサンプルコードをGithubに掲載しました。
それぞれのコードがどのような意味があるのか解説します。
SafeMath
四則演算子におけるエラーを予防するコードです。
Ownable
スマートコントラクトを管理するオーナー権限です。トークンを発行したオーナーだけが使える機能を定義します。例えば、所有権の譲渡などです。
transfer
トークンの総数から一定数を他のアドレスへ転送するための機能です。
balanceOf
アドレス内に保有しているトークンの数を返します。
transferFrom
トークンを他のアドレスへ転送するための機能です。
approve
トークンの総数に対してトランザクションを確認する機能です。
allowance
アカウント内のトークン残高を確認して、必要なトークンがなければキャンセルします。
msg.sender
トークンを作成したアドレスのことです。
burn
トークンの発行枚数を減らします。
mint
トークンの発行枚数を増やします。
編集部分
トークンを作成する場合に編集が必要な部分は次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
contract Bitcoin is MintableToken, BurnableToken { string public constant name = 'Bitcoin'; string public constant symbol = 'BTC'; uint8 public constant decimals = 8; uint256 public constant InitialSupply = 21e6 * 1e8; uint256 public totalSupply; function Bitcoin() public { totalSupply=InitialSupply; balances[msg.sender]=InitialSupply; } } |
- contract・・コントラクト名。通常はトークン名の記述で良いです。
- string public constant name・・トークンの名前
- string public constant symbol・・トークンの略式記号
- uint8 public constant decimals・・小数点の桁数
- uint public constant InitialSupply・・発行枚数
- function・・関数名。通常はトークン名の記述で良いです。
これらの部分を変えれば、オリジナルのトークンは完成します。
発行枚数は、2100万枚で小数点の桁数が8あれば「21e6 * 1e8」になります。「e」はゼロを意味します。また、次のような別の書き方も可能です。
1 |
21000000 * 10 ** (8) |
なお、作成する際には「Remix:browser-solidity」を使用します。
contractのBitcoinを選択して、「Deploy」をクリックすれば完成です。
Remix:browser-solidityの詳しい使い方は関連記事を参考にしてください。
ERC20トークンのまとめ
ERC20で標準的なトークンが完成しました。
特徴としては「mint」と「burn」機能があるため、後に発行枚数を増減させることも可能です。
制作に掛かる費用はガス価格が5Gweiで500円程度になります。
このように独自トークンは簡単に作れるので、どのようにして価値を高めていくかが大切になります。
オフィシャルサイトやホワイトペーパーなどを充実させてください。
トークンの上場方法
作成したトークンは取引所に上場させることを目標とするなら、まずはAirDrop(エアードロップ)をしましょう。
TwitterやSNSで募集を募れば、沢山の人がAirDropに参加してくれるはずです。
実際に上場できる取引所は3つのタイプに分かれます。
- 分散型取引所(DEX)
- トークン交換取引所
- 仮想通貨の取引所
分散型取引所(DEX)
分散型取引所(DEX)は中央管理者がいない、個人間のやりとりができる取引所です。近年、注目を集めています。EtherDeltaやForkDeltaが有名です。
ERC20トークンであれば、売り板に並べたり売買ができます。
なお、決済だけでなく注文ごとに少額の手数料が掛かることや参加者も少ない状況です。サポートもないので自己対処が必要になります。
トークン交換取引所
トークン同士の交換ができる取引所です。取引所のBancorが有名です。
規模の小さいトークンでも上場が可能です。最低、1000アドレス程度にはAirDropをしておきましょう。
仮想通貨の取引所
一般的な仮想通貨の取引所に上場できれば、将来性や取引高は安定します。
最初に目指すべきは、「CoinExchange」が大量の草コインを取り扱っているのでお勧めです。
中々、取引所に上場するのは難しいですが、話題性があれば上場できる可能性もあります。一般的に5000以上のアドレスにトークン保有者がいることは必要です。
なお、取引所によっては上場手数料を数BTC取られる場合もあります。
ERC20トークンは成功すれば夢がありますね。