NFTアートを独自コントラクトで販売する方法の紹介(情報を書き込み売る方法)

みなさんこんばんは。

 

今回はNFTアートを独自コントラクトで販売する方法を紹介したいと思います。

 

以前の記事で、複数のイラストを作成できました。

NFTアートを大量に作る方法の紹介(パーツを自動で組み合わせる方法)

 

しかし、NFT化する際、1個ずつ入力するのは大変です。

そこで、以前の動画を参考に引き続きNFT化していくことにしました。

独自コントラクト化

最初に独自コントラクト化をします。

 

以前の続きで、Visual Studio Codeを使います。

builtのjsonファイルを編集します。

 

jsonファイルに、1つ1つの画像の情報があります。

 

これが情報になるので、きちんとした情報に書き換えます。

srcのconfig.jsを編集します(まとめて編集するため)。

 

const namePrefixがコレクションの名前です。私は豆猫のイラストを作ったので、Bean Lucky Catsとしました。

const descriptionがコレクションの説明です。どのようなコレクションが説明しましょう。私は以下のように書きました。

A cute collection of 1100 bean lucky cats.
I put my prayer in it. Chinese characters represent each prayer. If you have this, you will probably become lucky.(後で追加しました)

const baseUriはuriです(後述します)。

 

実際にjsonファイルに変更した名前を反映させるため、ターミナルに以下の用語を入力します。

node utils/update_info.js

ターミナルですが、一番下の□みたいな場所があると思います。そこに入力します。

 

ちなみに、ターミナルでnode utilsまで入力後タブを押すと、候補の文字が入力されます。普通に打ち込んでもどちらでも大丈夫です。

エンターでコードを走らせます。

ちなみにコードを走らせる前にきちんと保存しましょう。保存しないとうまくいきません。

 

このように名前が変わったことがわかります(後で英語は書き直したので少し変わっていますが、変更はされているのがわかります)。

 

実際にjsonファイルを見ても、内容が変わっていることがわかるかと思います。

 

URI

次にuriを変えていきます。

 

最初にPinataというサイトに行きます。

Add file uploads and retrieval in minutes so you can focus o…

 

まずはアカウントを作ります。

私は本名を入力しました。ここは簡単なので割愛します。

 

画像をアップロードしていきます。

My Filesの+Upload、Folderを選択します。

 

私はSafariでやったのですが、あなたのブラウザでは無理と表示されました。Youtuberの方はどのインターネットブラウザでもよいと言っていましたが、ダメなものもあるようです。

そのため、Google Chromeを使いました。

 

改めてMy Filesの+Upload、Folderを選択します。

Selectで、自分が大量に作ったimageフォルダを選択し、Uploadをクリックします。

 

そして名前をつけます。

 

私は

bean lucky cats_images

とつけました。

 

すると、このようにIPFS上に保存されます。

 

目のマークをクリックすると、画像を見れます。

適当な画像を選択してURLに表示されているのが、ipfsのアドレスになります。

 

今回は、最初の画面にあるCIDを使います。

 

右側のボタンを押し、これをコピーします。

 

Visual Studio Codeに戻り、srcのconfig.jsのconst baseUriを変えます。

 

ipfs://の後ろをコピーしたCIDに置き換えます。

 

保存した後、ターミナルに

node utils/update_info.js

と打ち込みます。

 

エンターでコードを走らせると、全てCIDの数字に変わったと表示されます。

 

実際にjsonを見ると、数値が変わっていることがわかります。

さらに、画像ファイルごとに数値が記載されています。

例えば、5番のファイルを見ると、最後の数字が5になっていることがわかります(pngの前です)。

 

そして確認です。

Visual Studio Codeの画像のipfs以下の文字をコピーします。

 

私でしたら、以下の文字ですね。

QmNsTky7jLMoxese9pGAK6ZpA74zAvhPCQZMrp5bMpdCLF/5.png
これを、Pinataに入力してみます。
適当な画像を開き、URLのipfs/以下に先ほどの文字を貼り付けます。
すると、5番の画像が表示されます。
このように、きちんと対応しているか確認しましょう。
数字を変えると、それに対応した画像に切り替わります。

jsonデータ

次にjsonデータをアップデートしていきます。
先ほどと同様に、Pinataの操作画面に行き、My file→Folder→Select→jsonフォルダを選択します。
アップロードするデータは、作った画像+1個になっています。
名前は、Bean_Lucky_Cats_metadataにしました。
〇〇metadataにすれば良いかと思います。
中身を確認すると、以下のように作った画像の情報が入っています。

スマートコントラクトをデプロイする

Remix Ethereumというサイトにいきます。
Workspacesの横の+を押して、ワークスペースを作成します。
名前はコレクションの名前で良いかと思います。
私は、Bean Lucky Catsです。
作成後、contractsの中身を消します。
シフトキーで選択して、右クリックでdelete allを選択します。
コントラクトを選択し、右クリックでnew fileで新しいファイルを作ります。
ファイル名は、コレクション.solにします。
私は、
Bean Lucky Cats.sol
ですね。
次に、元になるコントラクトを入れます。
YouTuberの方は、自分のコントラクトをコピーしてくれと言っていました。
以下、YouTuberの方のコントラクトのサイトです。
Polygon (POL) Blockchain Explorer

The Contract Address 0x4e044a7e340e014a471970d95c00b231f2fc1…

コントラクトの、Contract Source Codeをコピーします。
全部で1361行ありました。
それを先ほど作ったファイルの中に貼り付けます。
次に貼り付けたものを編集していきます。
まずは1243行目です(人によっては位置がずれるようです)。
contract pastel girlsとなっているので、contract 〇〇と自分のコレクション名に変えます。
uint256 public maxSupplyを自分のコレクションのサイズに変えます。
私は1100ですね。
openseaだと関係ないようですが、
uint256 public maxMintAmountもコレクションと同じにします。
私は1100です。
そして保存します。
私の場合は、エラーが出ました。
多分ですが、名前のスペースがいけなかったようです。
そのため、
BeanLuckyCats
にしたら大丈夫でした。
大丈夫であれば、左上が緑色のチェックがつきます。
この緑色部分を選択し、Auto compile、Enable optimizationにチェックを入れます。
最後に緑色のCompile Bean Lucky Cats.solをクリックして、コンパイルします。
次に左側にある緑の下の項目を選び、ENVIROMENTをInjected Web3にします。
ここでメタマスクと連携することになるので、ログインして署名しましょう。
ここで、メタマスクの接続をポリゴンにするようです。
ネットワークの追加から、ポリゴンを追加します。
上記サイトを参考に、これらの数値を入力しました。
  • ネットワーク名:Polygon PoS (Matic) Mainnet
  • 新規RPC URL:https://polygon-rpc.com
  • チェーンID:137
  • 通貨記号:MATIC
  • ブロックエクスプローラーのURL:https://polygonscan.com/
そして保存をすることで、ポリゴンに接続できるようになります。
下記画像のように接続できていることがわかるかと思います。
次にENVIROMENTの下にあるCONTRACTを自分のコレクションに変更します。
選択する時はアルファベット順になっています。
DEPLOYにも入力します。
名前はコレクション名です。
SYMBOLは省略した文字です。私はBLCにしました。
INITBASEURIは
ipfs://メタデータのCID/
にします。先ほどPinataで作成した、メタデータのCIDを入力します。/が重要なので忘れないようにしましょう。
そして、これらをコピーします。
transactの隣にボタンがあります。
そして、Visual Studio Codeに貼り付けます。
Visual Studio Codeの下の何もない場所で右クリックを押し、New fileで新しいファイルを作り、名前をPolygon.txtにします(画像一番下)。
そして先ほどコピーしたものを貼り付けます。
違う適当なファイルをクリックした後見ると、膨大な数字になっていることがわかります。
そして、remixに戻り、transactを選択します。
メタマスクに署名します。
ちなみにこの時、MATICがないとデプロイできないようです。
私も急いで購入しようと思いました。
そのやり方は以下のサイトを参考にしました。
dApps market~ブロックチェーンアプリ評価・ゲーム攻略・口コミまとめ~

マティック(ポリゴン)のメインネットへの接続方法と使い方を紹介しています。通貨の購入・買い方も紹介しているのでやり方は覚…

]
やり方としては、まず、メタマスクにイーサリアムを入れます。
メタマスクのイーサリアムネットワークから、ポリゴンにイーサリアムを送金します(私は0.01ETHを送金)。
ポリゴンで、イーサリアムをMATICに換金します。
remixでデプロイするという手順です。
ちなみに、イーサリアムからポリゴンに送るガス代は9ドルでした。
成功すると、10分弱で成功したと表示され、ポリゴンにイーサリアムが送られます。
次に、QuickSwapでイーサリアムをMATICに換金します。
https://quickswap.exchange

QuickSwap is a next-gen DEX and DeFi ecosystem. Trade at lig…

交換枚数を上に入力します。私は0.01ETHを換金し、17MATICを手に入れようとしました。
しかし、MATICで手数料がかかるため、最初のMATICがないと換金できませんでした。
そこで、最初にMATICを準備する必要があります。
以下のサイトを参考にしました。
CosmoCrypto

MyCryptoHeroesなどのPolygon対応のブロックチェーンゲームをする際、ガス代用にMATICを用意しておく…

その方法は、QuickSwapで、最初にイーサリアムをスワップする方法です。
と思っていたら、やはりスワップできませんでした。
どうやら、昔と状況が変わっているようです。
そこで、メタマスク上で直接スワップすることにしました。
これも以下のサイトを参考にしました。
note(ノート)

PolygonにETHが入ったけどNFTが買えない Polygonネットワークで決済をするにはMATICというコインが…

グーグルChrome上で、メタマスクを選択します。
スワップを選択します。
スワップ元をイーサリアム、スワップ先をMATICにします。
量はかなり少なく、0.0001ETHにしました。
しかし、これもできませんでした。
昔は、イーサリアムが手数料でできたようなのですが、現在は全てMATICが手数料となっています。MATICがないと何もできません。
本当は、初めてポリゴンを使用すると無料でMATICがもらえ、それを種銭にしてスワップできたようですが、私の場合無料のMATICがもらえませんでした。残念です。無料のMATIC配布期間も終わったのでしょうか。
そこで、また別のサイトを参考にしました。
3MIKAN|仮想通貨・DeFi

Matic(Polygon)の始め方について.Matic(Polygon)DeFi参加方法まとめ.今回の記事では、Pol…

Sushiswapを利用する方法です。

Trade crypto effortlessly with SushiSwap, supporting over 30…

記事中では、手数料はイーサリアムとの記載があります。
そこで実行してみました。
やはり、手数料はMATICでした。
つまり、MATICを獲得できません。
そこで、別のサイトをさらに参考にすることにしました。
以下のサイトです。
どうやら、MATICはもらえるはずなのですが、利用者が多いと処理が止まることもあるようです。
そこで、スマホのアプリ上から接続してみました。
ですが結局私の場合は、MATICが反映されることはありませんでした。
手詰まりです。
そこで、10時間ほど探していると、ガス代なしでスワップできるサイトがあるようでした。
以下のサイトを参考にし、ガスレスでスワップしてみることにしました。
これはDfynというサイトを使います。
正直期待はしていませんが、入力していきます。
右上をonにするのが重要で、これでガス代が掛からなくなります。
Approve WETHをクリックします。
右上に承認の文字が表示されたので、右側のSwapを選択します。
最後にConfirm Swapをクリックします。
なるほど。ガス代が掛からない代わりに、幾らかの手数料が取られるようです。
と思っていたら、失敗していたようでイーサリアムだけ減っていました。
これはどういうことだと思ったら、私は別の通貨に変換してしまったようです。
他のサイトでは、MATICはWMATICと表現されることもありますが、ここはWMATICは別の通貨だったようです。
ここでは、MATICと入力しないといけませんでした。マークもポリゴンのマークなので完全に騙されました。
MATICと検索して、一番上に出てきたWMATICを入力しないようにしましょう。ちなみにイーサリアムは、WETHと表現されています。
改めて、MATICへの変換を試みます。
Approvedは必要ないようで、今度はSwapからクリックできました。
1回目はなぜかDismissと出て失敗しました。
やはり無理かと思ったのですが、再度頭を空っぽにして押したら無事成功したようです。
1日仕事でMATICを手に入れることができました。
みなさんも、このガスフリーの仮想通貨変換サイトを使用してみてください。
多分、安全だと思います。
さて、話はNFTに戻ります。
十分あるMATICを使い、transactをクリックします。
すると右上にメタマスクが表示されるので、確認します。
ガス代は、0.005562MATICでした。
確認を押しましたが、私はなぜかうまくいきませんでした。
以下の文言が出てきました。
Currently you have no contract instances to interact with.
何度かやり直すとうまくいきました。
下に緑色のチェックが出ました。
そしてさらに、左側にDeployed Contractsというところにアドレスが表示されました。
私は何度も押していたので、10個ぐらい出てきました。9個消して、そのうちの1つをコピーしました(BeanLuckyCats ATの右です)。
そして、Visual Studio Codeの先ほどのPolygon.txtの下に貼り付けました。
これで独自コントラクトができたようです。
polygonscanで調べると、実際に出てきます。
Polygon (POL) Blockchain Explorer

PolygonScan allows you to explore and search the Polygon blo…

polygonscanで、検索窓に先ほどのコントラクトアドレスを入力します。
すると情報が出てきました。
私のコレクションのBean Lucky Catsが右下に書かれており、トークン化されていることがわかります(見えにくいですが、Token TrackerにBean Lucky Catsと書かれています。)。

ミントしてみる

コントラクトの横の矢印をクリックして、表示します。
上から2番目のミントの右にある矢印をクリックし項目を出します。
mintAmount:に数値を入れることで、その数値だけミントすることができます。
試しに3を入れて、transactを押します。
すると、メタマスクの署名が出るので確認を押します。ここでもガス代がかかります。
後でopenseaで確認しましょう。
その前に時間がかかるので、先に他の作業をします。
次にVisual Studio Codeを編集します。
Remixで、左の3つある項目の緑色、つまり真ん中を選択します(SOLIDITY COMPILER)。
CONTRACTで自分のコレクションのABIをコピーします。
Visual Studio CodeのPolygon.texの下に追加で貼り付けておきます。
また、新しくファイルを作ります。
名前はContract.txtにします(画像一番上)。
とりあえず、Remixに入っている情報をコピーします。
先ほど作った、Contract.txtに全て貼り付けておきます。
これでremixが失われても、Contract情報は残ります。
次に、実際にopenseaで確認しましょう。
自分のメタマスクをopenseaと繋ぎます。
確かにミントされていました。
しかし、なぜか1つの画像は見れないようになっています。
これについては原因はわかりません。何個かは失敗するという、そういうもんかもしれません。
さらに、本当はコレクションとして生成されるのですが、私のはコレクションに追加されていませんでした。これも謎です。具合が悪かったのかもしれないですね。
一応コレクションにはなっていましたが、My Collectionではありませんでした。
とりあえず、画像を選択し、自分のコレクションを選択します。
右上の鉛筆マークで編集します。
ここで、コレクションの画像などを編集します。
とりあえず、画像とDescriptionは入力しましょう。
CategoryはCollectiblesにしました。
必要なところを入力し、最後に一番下のSubmit changeをクリックすることで変更できます。
あとは売ります。
自分の売りたい NFTを選択します。
右上にSellがあるのでクリックします。
値段と期間を選択します。
値段は下げることはできるのですが、上げることができないため最初は高めで販売するのが良いと思います。
0.05ETH、1ヶ月にしました。
Complete Listingをクリックします。
次にUnlockをクリックします。
すると署名が出てきますので承認します。
次にSignをクリックします。
再度署名をすると、NFT化できます。
これで誰か買えば、仮想通貨がWalletに入ってきます。
この記事が良いと思った方、ぜひ買ってください!
Polygonscanでも、大量にミントできるようです。
ContractをVerifyします。
Visual Studio CodeのPolygon.texに入力したコントラクトをコピーします。2番目にコピーしたものですね。
Polygonscanに入力してエンターを押します。
その後、下にあるContractのタブをクリックして、Verify and Publishをクリックします。
Polygonscanのアカウントを入力します。
アカウントがない人は作ります。
そしてアカウントを入力すると、1回目はエラーが出るようです。
エラー404と表示されます。
もう一度コントラクトアドレスを入力して検索します。再度Verify and Publishをクリックすると先に進めます。
この時、コントラクトアドレスが合っているか目視で確認しましょう。
Please select Compiler Typeは、Solidity(Single file)を選択します。
Please select Open Source License Typeは、0.8.7を選択します。
remixと同じ数値ですね。
Please select Open Source License Typeは、MIT Licenseを選択します。
画面が変わり、右のOptimizationをYesに変えます。これはremixでも変えたからです。
Enter the Solidity Contract Code belowは、remixのプログラムコードをコピーします。
Visual Studio Codeの貼り付けたものと同じですね。
Constrauctor Arguments ABI-encodedは、最初にVisual Studio Codeにコピーした数値の大量の0が始まる部分から終わりまでをコピーします(33の次から)。
それを下記場所に貼り付けます。
最後にVerify and Publishをクリックします。
Successfullyと出ます。
これで、Polygonscanのオーナーと証明できました。
もう一度、自分のコントラクトを入力し検索すると、自分のContractにチェックマークがつきます。
その右下のWrite Contractをクリックし、Connect to Web3で自身のメタマスクと接続します。
これで、ここからミントできるようになります。
2番目のmintに入力します。
最初のmintは0にします。
mint amountが量です。
とりあえず5にします。
ここでミントの数を増やしすぎるとOpenseaがパンクするそうなので、少数が無難なようです。
writeをクリックします。
これでうまくいくはずですが、私はエラーが出ました。
どうやら、メタマスクがなぜが接続されなかったようです。
再びエラーが出ました。
Transaction was not mined within 50 blocks, please make sure your transaction was properly sent. Be aware that it might still be mined!
私のは、もしかしたら画像が重すぎるのではとも思いました。
しかし、多分ですがMATICが値下がりしたため、売買が増し交通渋滞みたいな感じになったのではと感じました。
時間を置いて、再度クリックしたらできました。しかも、エラーが出た分もきちんとmintされていました。
ちなみに、先ほど私のコレクションの画像が見れませんでしたが、NFTをクリックし右上にあるRefresh metadata(Sellの下)を押すと回復する場合があるそうです(下記画像を参照)。試してみてください。
私はエラーが何度も出ました。
しかし、後で復活し見れるようになりました。
mintするガス代ですが、1個あたり0.00625MATIC(変動がありましたがだいたい)でした。
私は1100個あったので、MATICが7弱ぐらいかかる予定でしたが、実際かかったのは3MATICぐらいでした。
そのぐらいのMATICは必要になると思います。
ちなみに、mintする数ですが、怖いので8個ずつmintしていきました(後で面倒になり10、その後15に変更しました)。
時間は4時間ほどかかりました。
mintしている間に、sellでNFTを売ると時間を効率よく使えると思います。
ちなみに驚いたのが、mintしていたら、すぐにfavoriteつまりイイネをしてもらえたことです。どんどんハートマークの数が増えるのでビビりました。コレクションを作ってイイネしてもらえるのはすごい嬉しかったです。全部で200ぐらいはいいねしてもらえたと思います。
さて、全てのNFTをmintしたらやっておく操作があります。
pauseを編集します。
ここにtrueと入力します。
これで第三者がmintできなくなるようです。
tureと入力したら、writeをクリックしましょう。
署名して完了です。
この状態で、mintしようとしてもブロックされます。
haslips氏のコードを使っていますが、彼のコードは第三者がmintできる設定です。
そのため、自分がmintしていない時はtrueにしましょう。
再度mintしたくなったらfalseにします。
これで終了です。
大変でしたが無事コレクションを作成できました。
参考にしてください。
下記に私のコレクションを貼ったので、ぜひ見てくださいね。
OpenSea

A cute collection of 1100 bean lucky cats.I put my prayer in…

このブログでは、NFTつながりで、Move To Earnの記事も多数紹介しています。

M2Eとは、Move To Earnの略で、歩いて仮想通貨を稼げる新時代のNFTゲームになっています。
興味があれば、他のプロジェクトも参考にしてください。

私の一押しはStepwatchです。

関連記事

みなさんこんばんは。   今回はMove To Earn(M2E)のStepWatchについて紹介したいと思います。 2022年7月19日現在では、Android端末しか対応しておりません。iOSは8月リリース予定だ[…]

次点では、THE SNKRZもオススメです。

関連記事

みなさんこんばんは。   今回は韓国発のM2Eゲーム、THE SNKRZ(スニーカーズ)の始め方を紹介します。 またテスト段階なので、プレイできるとしてもテスターとしてのプレイになります。 なお、2022年[…]

RunBloxもおすすめのM2Eのプロジェクトです。

関連記事

みなさんこんばんは。   今回はRunBloxのゲームの始め方を紹介します。 昔は、テレグラムのNFTスニーカー抽選からRunBloxを始めることができましたが、2022年6月30日現在では、NFTスニーカーを購入し[…]