コントラクトのdeployからmintまでの流れは、こちらの方の素晴らしい記事を参考にさせて頂きました。
https://zenn.dev/mkurita/articles/be1021226887fd

で、当記事ではざっくりと全体の流れをおさらい含め、NFT化したい画像の準備やメタデータの準備など補足解説をしていきます。

大まかな流れとしてはこんな感じです。

【1】NFT化する画像を用意してipfsへアップロード

【2】対応するjsonファイルを用意してipfsへアップロード

【3】ERC721でmintするためのコントラクトを準備

【4】deployする

【5】mintする

【6】nft化完了!

【1】NFT化する画像を用意してipfsへアップロード

0.png、1.png…と連番で画像を準備し、1つのフォルダにまとめてください。(フォルダ名は何でもOK)

その後、ピニャータへフォルダごとアップロード。登録してない方は登録しましょう。
https://www.pinata.cloud/

詳しい使い方は素晴らしい方達が解説してくれてるので、ググってみてください。

アップロードしたら、アップロードしたURLをコピーしてください。【2】で使います。

【2】対応するjsonファイルを用意してipfsへアップロード

jsonファイルのつくり方はOpenSea公式を参照
https://docs.opensea.io/docs/metadata-standards

{
  "description": "{画像の説明文を入れる}", 
  "external_url": "{適当にURLを入れる(TwitterのアカウントURLとか)}", 
  "image": "{ここにピニャータにアップロードした画像フォルダURLを貼り付ける(末尾スラッシュを忘れずに)}", 
  "name": "{画像名を入れる}"
}

0、1…(拡張子はつけない)形でjsonファイルを用意し、1つのフォルダにまとめてください。(フォルダ名は何でもOK)

アップロードしたら、アップロードしたURLをコピーしてください。【3】で使います。

【3】ERC721でmintするためのコントラクトを準備

https://wizard.openzeppelin.com/
こちらで簡単にコントラクトを作ることができます。

Base URIに【2】でコピーしたjsonファイルの入ったフォルダのURLを貼り付けます。

その後、Open in Remixをクリック。Remixという統合開発環境が開きます。

※Remixでテストネットワークへのdeployとmintができちゃいます。


で、開いたら、コンパイルをクリック。


緑のチェックが付いている下のメニューを開いて、

ENVIRONMENTをInjected Provider -Metamaskを選択。

*Metamaskの登録をしていない方は事前にしてください。
*ネットワークをRinkbyに設定してください。OpenSeaのテストネットワークがRinkbyを採用しているため。
*Rinkbyのテスト用etherを持っていない方は事前に貰っておいてください(テスト用etherの貰い方はこちら

CONTRACTでMyTokenを選択。

【4】deployする

黄色いDeployボタンをクリックするとDeployされる。

【5】mintする


Deployボタンの下らへんに「Deployed Contracts」というのがある。

そこにDeployされたコントラクト情報が表示される。

ここでsafeMintというメソッドに自身のウォレットアドレスを引数として渡してから実行すると、mintされる。

という感じでした!

【6】nft化完了!

本当にmintされたのか確認するにはOpenSeaのテストサイトで、自身のCollectedをみると確認できます。
https://testnets.opensea.io/

画像のアップロードとメタデータのアップロードに関しての情報があまりなかったので、今回まとめてみました。