Solidityブロックチェーン

イーサリアムで独自トークンの作り方 (Ropsten/Remix/OpenZeppelin)

イーサリアム上で独自トークンを作っていく過程を書いていきます。
参考にしたのはマナブさんの以下のTweet。


トークン作ってどうするの?って聞かれたら困るけど、作っているうちに何かアイデア出てこないかな…?

環境

イーサリアム上といっても本番だと手数料がバカ高いので、Ropstenというイーサリアムのテスト用ブロックチェーン上に作っていきます。

開発用の環境は、以前ローカルのmacOSにセットアップだけしましたが、とっても複雑で手をつけれていません。。
なので、Remixという、ブラウザベースで利用することのできる開発環境を利用していきます。

そして、トークン作成のプログラムはOpenZeppelinというツールで作成します。

作成するトークン

取り敢えず以下のトークンを作ってみます。

トークン名Eiba Katsu Token
通貨単位EBKT
発行量10,000

作成方法

イーサリアムにはSolidityというプログラムでアクセスすることができます。
トークンを作成するにもSolidityのコードを書いていきます。

OpenZeppelinでコードを生成

OpenZeppelinは、Solidityでイーサリアム開発を便利にしてくれるライブラリですが、プログラムを自動生成するツールも提供してくれてます。

https://docs.openzeppelin.com/contracts/4.x/wizard

このページにアクセスすると次の画面になります。

入力エリアのNameに作りたいトークン名、Symbolに通貨単位、Premintに発行量を指定すると、そのトークンを作成するプログラムコードが出来上がります。

ちなみに、ERC20というのは仮想通貨みたいな価値所有者が紐づかないトークンの規格で、ERC721はNFTみたいな価値所有者が紐づくトークンの規格です。
ERC1155は複数のトークンを扱える規格らしいですが、勉強不足でよくわかりません。。

赤線部を入力すると、右側エリアのプログラムコードにも反映されました。

Remixでコンパイル

コンパイルとブロックチェーンへのデプロイはRemixで実施ます。
先ほどのOpenZeppelinの画面の「Open in Remix」を選択します。

作成したコードがRemixに転送されています。

画面左下の「Compile contract-****.sol」をクリックするとコンパイルが始まり、下側にまたボタンが表示されます。

MetamaskにRopstenの準備

次はこのままRemixでデプロイしますが、デプロイ先の環境はRemixに接続する web3 ウォレットの環境になります。
今回はテスト用のRopstenという環境にデプロイするので、先にウォレットをRopstenに接続します。

Metamask の画面上部のチェーン名のプルダウンを開き「Show/hide test networks」からテストネットワーク表示をONにします。

そうすると「Ropsten Test Network」が選べるようになるので、こちらを選択してください。

画面上部のチェーン名が「Ropsten Test Network」となっていることを確認してください。

もう一つ、テストの環境でデプロイするためのガス代として、テスト用のETHが必要になります。
Buyボタンをクリックすると「Deposit Ether」のプロンプトが出るので、下にスクロールしてください。

「Test Faucet」の「Get Ether」をクリックします。
Faucet は蛇口という意味で、テスト用のETHを無料で貰うことができます。

Faucet用のWEBページに遷移するので、緑色の「request 1 ether from faucet」をクリックします。

Metamaskの確認でOKしてしばらくすると、1ETHがウォレットに入ってきます。
自分の場合は10分ぐらいかかりました。(待ちきれず何回かクリックしたら最終的に6ETHになってた)

Remixでデプロイ

Remixに戻り、左側の上から四番目のボタンを選択すると、デプロイメニューが表示されます。

「ENVIRONMENT」が接続する環境です。
“Javascript VM” / “Injected Web3” / “Web3 provider”が選択できますが、ここでは”Injected Web3″を選択します。

Metamaskの接続ダイアログが開くので、そのままOKすると、以下のような画面になります。

Injected Web3の下が「Ropsten (3) network」となり、ACCOUNTのアドレスが自分のウォレットアドレスになっていることを確認します。

CONTRACTの プルダウンも、先にコンパイルした EibaKatsuToken (別名で作成した場合はそのトークン名)になっていることを確認してください。もしEibaKatsuTokenになっていない場合はプルダウンから選択し直してください。

確認後、オレンジ色の「Deploy」ボタンをクリックしてデプロイします。

デプロイが完了すると、画面下側のコンソールが以下のような表示になります。

「view on etherscan」をクリックしてください。

etherscanで確認

赤枠で囲んだ部分がEiba Katsu Token が生成され、作成時のウォレットに送信されていることを示します。

赤枠の中の右側の「 Eiba Katsu T… (EBKT)」を選択してください。

右側のContract の文字列「0xd19a9731b042af299075e988b4727e5d87e44818」が Eiba Katsu Token のコントラクトIDです。
この文字列をコピーしてください。

Metamask で確認

Metamask でも確認できるように、トークンをインポートします。

Metamaskを開いて、下部の「Inport tokens」をクリックします。

先ほどコピーしたコントラクトIDを「Token Contract Address」に貼り付けすると、Token SymbolにEBKTが表示されます。
「Add Custom Token」をクリックしてください。

「Import Tokens」をクリックしてください。

これで完了!
作成したトークンを表示することができました。

最後に

何とか独自トークン作成することができました。

一番迷ったのが、Remixでデプロイするところ。まず画面構成がさっぱりわからない。。。
でも色々触ってみたり、ググったりしてみると何とかなりました。

手順自体は簡単なので、次会はマナブさんTweetの通り1分でできそう。

独自トークン作る過程で、ERC20とERC721の存在を知った。
今回はERC20で独自トークン作ったので、今度はERC721でNFTを作ってみたいと思います。

では。

コメント

PAGE TOP
タイトルとURLをコピーしました