---
# System prepended metadata

title: ERC721トークン発行のための手順書

---

# ERC721トークン発行のための手順書
### 1.Truffleをインストールする。
> 事前準備
> ・`$　npm -–version`コマンドを実行し、npmがインストールされているか確認する。
> （Node.jsをインストールすると同時にnpmもインストールされます。）
> ・command not foundの場合、`$brew install nodebrew`コマンドでインストールを行う。
> 
1.`$ npm install -g truffle`コマンドを実行しTruffleをインストールする。
2.`$ truffle version`コマンドを実行し、バージョンが表示されればインストールは完了。
### 2.Ganacheのインストール
1.[こちらの公式サイト](https://www.trufflesuite.com/ganache)より、Ganacheをインストールする。
### 3.Truffleの初期化
1.適当なフォルダを作成し、そこでTruffleの初期化を`＄　truffle init`コマンドにて行う。コマンドを実行することで下記の構成が自動生成される。
```
│ truffle-config.js
│
├─contracts
│ Migrations.sol
│
├─migrations
│ 1_initial_migration.js
│
└─test
＊各フォルダ内のファイル構成 ＊
Truffle-cofig.js→truffleのプロジェクト設定ファイル 
contracts→solidityのコード 
migrations→デプロイ用のコード 
test→テスト用のコード 
```
### 4.OpenZeppelinのインストール
1.適当なフォルダ内で`$ npm install -E openzeppelin-solidity`コマンドより、OpenZeppelinをインストールする。
### 5.Node.jsの初期化
1.`＄　npm init`コマンドを用いて、Node.jsを初期化する。
### 6.GanacheとTruffleを接続する
1.インストールしたGanacheアプリケーションを開き、QUICKSTARTを行う。
2.`truffle-config.js`内の![](https://i.imgur.com/FAOL4UK.png)
上部写真のようにコメントアウトを外し、host,port部分をGanacheアプリのRPC SERVERと同じ値にする。
> *注意点
> インストールしたOpenZeppelinの初めの行の`pragma solidity ~;`部分のバージョンと、`truffle-config.js`内のバージョンを揃える。下記画像部分。![](https://i.imgur.com/bM9xD05.png)

3.Ganacheアプリの右上にある歯車マークをクリックし、WORKSPACEタブのTRUFFLE PROJECTSに`truffle-config.js`をADDする。
![](https://i.imgur.com/TUWmW7t.png)
### 7.ERC721コンストラクトを継承したコンストラクトを作成
1.contractsフォルダ内に、任意の名前の.solファイルを作成する。内容は以下(例としてmyToken.solファイルをここでは作成する。)
![](https://i.imgur.com/cPpvBT7.png)
> *注意点
> 7行目の`contract myToken`部分の、コントラクト名はファイル名と同一にする。（違った名前にするとうまくデプロイが行えない。）

### 8.デプロイするためのJSファイルを作成する 
1.migrationsフォルダ内に`2_deploy_constracts.js`ファイルを作成する。内容は以下
![](https://i.imgur.com/X4iHBI7.jpg)
> *注意点
> 1行目の`("myToken")`部分は7、で定義したコントラクト名と同一にする。（違った名前にするとうまくデプロイが行えない。）

### 9.コンパイルを行う 
1.ターミナルにて`＄ truffle cpmpile`コマンドを実行し、コンパイルを行う。(コンパイルを行うとローカルのbuildフォルダにJSONファイルが自動生成される)
### 10.デプロイを行う 
1.ターミナルにて`＄ truffle migration`コマンドを実行し、デプロイを行う。
以下画像のような出力が行われれば成功。
![](https://i.imgur.com/MQCFmjM.png)



