Ethereum(イーサリアム)で独自トークンの発行や作り方
Ethereum(イーサリアム)はオリジナルの独自トークンが作成できます。前回は「TokenFactory」のサイトとMETAMASKを使って発行する方法をご紹介しました。
今回はもう一歩踏み込んで、browser-solidityにコードを記述して、METAMASKで発行する方法も解説します。より、カスタムトークンの内容を理解できて、今後のトークン開発に役立つと思います。
もし、「TokenFactory」かbrowser-solidityのどちらで独自トークンを作るのが良いかと迷ったなら、確実にbrowser-solidityをお勧めします。
browser-solidityは次のようにコードとしては完全ですが、TokenFactoryは警告が出ます。
作り方は簡単ですので、是非browser-solidityで作成しましょう。
このブログではノンプログラムの初心者でも、独自トークンが発行できるように解説します。
作成方法
1.まずはMETAMASK(メタマスク)にログインしておきます。ウォレットにはトークン作成手数料として、0.05ETH程度あれば十分です。
2.独自トークンを作成するにはRemix:browser-solidityを使います。
METAMASKがインストールされているブラウザーで開きます。インストール等は不要でブラウザー上でコードの編集が行えます。次のURLを開きましょう。
3.独自トークンを作成するためのサンプルコードがEthereumの公式サイトに公開されています。
URL:CRYPTO-CURRENCY
記事内の「THE CODE」の部分のコードをコピーします。
4.browser-solidityにコードを貼付けます。
5.コードを貼り付けたり編集した後は「Start to compile」をクリックして、更新する必要があります。
*「Auto compile」にチェックを入れておくと自動的に更新されます。手動か自動にするかはどちらを選んでも構いません。
6.黄色く警告のwarningが表示されましたが、そのまま次の作業に進みます。
ちなみに、赤くエラーのerror表示されると修正しない限り、独自トークンは発行できません。
7.右上のメニューから「Run」を開いて、「Environment」の項目から「Injected web3」を選択します。Injected web3はMETAMASKとの連携を意味します。
すると、Accountの項目にMETAMASKのアドレスと所有するETHが表示されます。
8.「TokenERC20」を選択します。
「Create」には「発行枚数」「トークン名」「トークンの略称」を入力します。
1 |
21000000,"ABCCoin","ABC" |
「,」や「"」も記述するため、間違わないようにしてください。
上記のコードでは、発行枚数を2100万枚、トークン名をABCCoin、トークンの略称をABCにしました。
「Create」をクリックします。
9.確認画面が表示されます。「Confirm」を選択します。
10.METAMASKが自動で立ち上がるので、「SUBMIT」をクリックします。
11.独自トークンの発行には数分は掛かりますので、そのまま待ちます。下記のように表示が変われば完了です。
12.browser-solidityの右メニューには作成したトークンの情報が表示されます。
各項目をクリックするとトークンの名前や発行枚数など情報が表示されます。
13.METAMASKを開くと、送金が無事完了しています。Contract Deploymentの部分をクリックしてページを開きます。
14.Etherscanには作成された独自トークンの情報が表示されます。ステータスがsuccessになっていれば正しく処理されました。
独自トークンのContractのアドレスをコピーしておきます。
15.METAMASKで「ADD TOKEN」を選択して、次の情報を入力します。
- Token Contract Address・・先程コピーしたContractアドレスを貼付けます。
- Token Symbol・・トークンの略称を記述します。
- Decimais of Precision・・トークンの小数点を意味します。通常は18を記述します。
16.METAMASKに作成したトークンが追加できました。
後はMyEtherWalletに送金したり、誰かに配ったり、ICOを開始するなど好きなことに使えます。
このようにイーサリアムのカスタムトークンは専門的なプログラム知識が無くても、作り方さえ覚えれば簡単に発行できるのです。
作成のポイント
browser-solidityのバージョン
browser-solidityにはバージョンがあります。0.4.22や0.4.23などです。バージョンを切り替える際は右上メニューから「settings」を開くと、「Solidity version」が表示されます。この部分でバージョンを切り替えることができます。
通常はNightly(開発段階)は選ばない方が良いです。上記のように安定板を選んでください。
なお、適切なバージョンを設定していないとコードエラーが出る場合もあります。browser-solidityのバージョンを変えてみてください。
トークンを作成するコードの冒頭に「pragma solidity ^0.4.20;」のように、適切なバージョンを示す宣言がされています。これを参考にして、バージョンを切り替えましょう。
小数点を変更する方法
発行されたカスタムトークンの小数点(Decimais)は18です。発行枚数の後ろに18桁数が付くことを意味します。
最近の傾向としては18桁や8桁が主流です。ビットコインは8桁です。
もし、小数点の桁数を変えたい場合は、browser-solidityで作成する段階でコードの18の部分を変更します。
1 2 |
uint8 public decimals = 18; // 18 decimals is the strongly suggested default, avoid changing it |
コードを編集した後は、「Start to compile」をクリックして更新することを忘れないでください。
トークン名の変更
特に変更はしてもしなくても良いですが、コードの初期設定ではトークン名がTokenERC20になっています。この部分を作成するトークン名に変更しても構いません。
コードに2か所あるので変更します。
トークン名を編集した後は、「Start to compile」をクリックして更新してください。
右メニューのトークン名も変わりました。
トークン略称の注意点
MyEtherWalletに作成したトークンを保管する場合はカスタムトークンの一覧に同じ略称があるとウォレットに追加できなくなります。
独自トークンを作成する段階で同じ略称がないか注意してください。
テスト開発
トークンを作成する場合には通常はテストネットブロックチェーンで試してから本番のパブリックブロックチェーンで発行します。
初めから本番で発行した場合に、設計ミス等で作り直す必要が出ると毎回手数料が掛かるためです。また、一度パブリックブロックチェーンで発行すれば削除もできません。
そのため、テストネットブロックチェーンで試してから行います。
テストネットブロックチェーンは手数料も掛かりません。使い方については関連記事を参考にしてください。
コードの最適化
Enable Optimixstionにチェックを入れるとコードを最適化してくれます。
コードの最適化によって何も変化がない場合もあれば、コードの複雑さが増しバグが増える場合もあります。最適化により、毎回の送金でGas Limitの消費を抑えることができる場合もあります。
一般的にはコードを最適化しているトークンが多いですが、テストネットワークでトークンにエラーが出ないか安全性を試してください。
カスタマイズ
トークンを作成するためのサンプルコードはごく簡単で標準的な設計です。
このままでも良いですがセキュリティや利便性を考えると、もう少しカスタマイズする必要があります。
追加する要素としては、「SafeMath」と「Ownable」です。
SafeMathは安全な数学演算を行うために必要なコードです。乗算、除算、減算、加算において予想外の結果が発生すれば例外を投げて回避します。
Ownableはオーナー権限に関する設定です。
どちらもトークンを作る上で最低限必要なコードですので追加しましょう。
コードのサンプルはGithubに掲載しています。参考にしてください。
契約コードを確認と公開
独自トークンが作成できれば、Etherscanでコードの確認と公開をする必要があります。
1.Etherscanのサイトにアクセスします。
URL:Etherscan
2.作成したトークンを検索します。ERC20 Contractのアドレスをクリックします。
3.「Code」をクリックします。
4.「Verify And Publish*」をクリックします。
5.トークンの情報を入力していきます。
- Contract Address・・作成したトークンのcontractアドレスが自動で表示されています。
- Contract Name・・作成したトークンのContract部分の名前を入力します。
- Compiler・・ トークンの作成に使用したbrowser-solidityのバージョンを選択します。
- Optimization・・Enable Optimixstion(コードの最適化)を行った場合は「Yes」を、していない場合は「No」を選択します。
- Enter the Solidity Contract Code below・・トークンの作成時に使用したコード内容を貼り付けます。
後の部分は入力不要です。記述が終われば、「Verify And Publish」をクリックします。
6.Codeの確認と公開が成功しました。
7.「Code」のページに戻ると、ステータスが「Contract Source Code Verified (Exact match)」確認済みになりました。
Etherscanのトークン情報
Etherscanの独自トークンのページではロゴやオフィシャルサイト、SNSを記載することができます。
必須ではありませんが、ある方が信用性も増します。掲載方法は過去の記事に詳しく解説していますので参考にしてください。
この記事を書くのに次のサイトを参考にしました。
独自トークン作成のまとめ
これで、イーサリアムにより独自トークンの作成がすべて完了しました。プログラムが分からない初心者の方でも発行まで辿り着けるはずです。
今回、独自トークンの作成に掛かった費用は僅か0.0013ETH程でした。トランザクションが混んでいない時間帯であれば数百円程度です。
カスタムトークンの作成自体は慣れれば簡単ですので、後はどうやって価値を高めていくかが大切になります。草すら生えないコインは何百・何千もあるのが現状です。ホームページやホワイトペーパー、各種SNSも駆使して、ICOを成功させてください。
コメント
独自トークン発行後はVerify And Publishを早めに行いコードの契約コードを確認と公開をしておくことをお勧めします。後から、Verify And Publishを実行しようにも元のコードが分からなくなれば出来なくなります。
また、作成したトークンを取引所に上場すること目指すのであれば、Verify And Publishをしていないと上場できなくなります。取引所はコードを見てバグがないかどのような特徴や価値があるのか確認します。
ICOやAirdropをした後に、Verify And Publishを忘れたままで、いざ契約コードの確認と公開をしようとして出来ない場合は手遅れになります。
browser-solidityの「Create」ボタンは名前が「Deploy」に変わりました。機能は同じです。
Remix:browser-solidityのバージョンのバージョンは適切に設定してください。例えば、コード内の記述がpragma solidity ^0.4.18;であれば、Remixのバージョンは「0.4.18+commit.9cf6e910」やそれ以降のバージョンを使用します。