OpenSeaに独自コントラクトのNFTを登録してみよう(テストネット編)
※OpenSeaは何か?独自コントラクトは何か?などの説明は省きます。
コントラクトの作成
まずコントラクトを一から作成するのはかなり手間なのでOpenZeppelinというライブラリを利用します。
今回はNFTの代表的な規格であるERC721を使います。
ソースコードはgithubにあるのですがgitを使ったり、ソースコードを理解する必要があるので今回はもっと簡単な方法を使います。
OpenZeppelinではコントラクトを簡単に作成できるようにContracts WizardというWebツールを用意しています。
Contracts Wizardでコントラクトを作成する
① ERC721を選択します。

② コントラクトの情報を設定
Name、Symbol、BaseURIを設定します。
NameとSymbolは好きに設定してもらって大丈夫です。
Name : コントラクトの名前
Symbol :
BaseURIはNFTとして登録する画像の場所を示すURL情報を返してくれるベースのURIです。
※のちに細かく説明します。
今回はテストなので、私のgithubにテスト用のmetaDataを用意しているのでそちらを使います。
https://raw.githubusercontent.com/mk1018/openzeppelin-contracts-my/master/meta/

ちなみに中身はこんな感じ
{
"tokenId": "0",
"name": "test 0",
"description": "test NFT MetaDeta",
"image": "https://raw.githubusercontent.com/mk1018/openzeppelin-contracts-my/master/image/0.jpg"
}
③ mint処理の追加
FEATURESではMintableとAuto Increment Idsにチェックを入れます。

これで独自コントラクトのコードが完成しました。
Remixでコンパイル、ブロックチェーンへデプロイをする
続いて先ほど作成したコントラクトコードをブロックチェーンで動くようにデプロイ(反映)する必要があります。
RemixというWeb上のIDE(統合開発環境)が使いやすいので利用します。
① Remixを開く
Contracts WizardのOpen in Remixをクリックします。

先ほど作成したコントラクトコードが開かれます。(便利。。

② コンパイル
左側の上から3つ目を選択しCompile Contract ~という青いボタンをクリックします。
コンパイルに成功すると右側の画像のように緑色のチェックマークが入ります。

③ デプロイ
今回はテストネットへのデプロイなのでEthereumのテストネット(Rinkeby)を利用します。
事前準備
事前にMetaMaskとRinkeby上のETHを入手する必要があります。
RinkebyでテストETHの入手
ここら辺のサイトから入手しましょう。
デプロイ
左メニューの上から4つ目を選択しCONTRACTを上記で作成したコントラクトを選択します。

Deplyを押すとMetaMaskが立ち上がるので「確認」を押します。

デプロイが完了するとRemix上のDeplyed Contractsにコントラクトの処理が表示されるようになります。

これでEthereumのテストネットへのデプロイが完了しました。
Mint(NFTの作成)
続いてNFTを事前に一つ作っておきます。
safeMintにMetaMaskで作成したウォレットのアドレスを入力します。
アカウント名をクリックすると簡単にコピーできます


safeMintの実行
safeMintを実行する為、MetaMaskが立ち上がります。
「確認」を押してsafeMintを実行します。

トランザクションの例:https://rinkeby.etherscan.io/tx/0xb997c2e61c45deec7dac0ec63c11d165e53065c3b56fbd1d83d819838f6a5046
これでMintは完了です。
OpenSeaにコントラクトを登録
OpenSeaではテストネット(Rinkeby)用のサイトを用意してくれています。
Rinkebyを選択します。

先ほど作成したコントラクトアドレスを入力しSubmitを押します。
コントラクトアドレスってどこで見るの?
見方は色々ありますがここからコピーするのが簡単かと思います。


成功したらOpenSeaのアカウントページに飛びます。
私がテスト用に用意した画像が表示されたら成功です。

Discussion