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