見出し画像

【完全保存版】Irysを使ってMetaplexのCore NFTを作成しよう!

この記事では、Core NFTの作成方法を説明しています。

0 事前準備

こちらの記事の第1・3・4章を実行してください。

ローカル環境でウォレットを作成し、テストトークンを取得します。

また、nodeのバージョンは20以上にしておいてください。

1 やってみよう

では、実際にCore NFTを作ってみましょう。

1 git cloneしよう!

次のコマンドで、git clone を行いましょう。

git clone https://github.com/ytakahashi2020/metaplex_core.git

2 依存関係のインストール

では、依存関係をインストールしていきましょう。

ちなみに、私のnodeのバージョンはv20.12.1のようです。

インストールを行います。

npm install

3 自身のキーペアの設定

次に、自身のキーペア(秘密鍵と公開鍵)の場所を設定します。

次のコマンドでキーペアがどこにあるかわかります。

なお、「Devnet」になっていることも確認しましょう。

solana config get

「index.js」のこちらにご自身のパスを設定しましょう。

4 実行しよう

では、準備が整いましたので、次のコマンドで実行しましょう。

node index.js

エクスプローラを確認すると、このようにNFTを確認することができました。

https://core.metaplex.com/explorer/GhmanXpg6dPTKwUdP9SfqhYdWij9R8954otMwFVZau9z?env=devnet

ちなみに、メタデータを確認するとこのようになっています。

https://odz7mg2qybm7joabifacitxglgnizbcrchgfz64nv4vgtszxf24a.arweave.net/cPP2G1DAWfS4AUFAJE7mWZqMhFERzFz7ja8qacs3Lrh

なお、私がやった時は、画像の方はうまくいきませんでした。(前やった時はうまく行ったのですが。。)

メインネットでやったところ、下のようにうまくいきました。

アップローダー依存の気がしたので、この問題はスルーします。

https://i4oo4dprycj73k7kxd4epdm5bekvwklogj6l2jo5m4vbkd2krwca.arweave.net/RxzuDfHAk_2r6rj4R42dCRVbKW4yfL0l3WcqFQ9KjYQ

2 コードを確認しよう

1 umiの設定

まずは、ブロックチェーンとやりとりするためのumiを設定します。

「createUmi」を使用します。

ここでは、このようにして、devnetを設定しています。

今回、「Core」というNFTを使用するので、「mplCore」を設定します。

2 アップローダーの設定

今回は、「irys」「arweave」にアップロードをするために、「irysUploader」を使用します。

devnetを使用したいので、下のようにdevnet用のアドレスを設定します。

3 ウォレットアドレスの設定

次に、自身のウォレットアドレスを設定します。

その場で作ったものでも良いのですが、エアドロップがうまくいかないことが多いので、自身のアドレスを設定するのが良いと思います。

次に、先ほど設定したウォレットファイルを元に、キーペアを作成しています。

ちなみに、格納場所に入っているのは秘密鍵です。

最後に、そのキーペアをumiに設定します。

実は、「keypairIdentity」を使うのがポイントです。

4 画像のアップロード

次は、画像のアップロードを行います。

まずは画像を読み取ります。

次に、umiが読み取れるように、「GenericFile」というに変換しています。

その上で、「upload」関数を使って、「irys」を通じて、Arweaveにアップロードします。

5 メタデータのアップロード

次に、こちらのメタデータをアップロードします。

メタデータのアップロードは「uploadJson」関数を使います。

6 NFTの生成

まずは、「generateSigner」関数で「Signer」を作成しています。

これは結局のところ「キーペア+α」です。

これがミントアカウント用のアドレスになります。

あとはcreate 関数を行うだけです。

最後に、signatureデシリアライズして、エクスプローラで確認できるようにしています。

以上です。




サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊