愛犬を、オンリーわんにしてOpenSeaのtestnetに出品してみた。
概要
今回はNFTの理解の為、我が家のワンチャンをNFTにしてOpenSeaのtestnetに出品しました。
画像のIPFSへのアップロード
簡単にIPFSを説明するとファイルを分散して保存する新しいウェブの仕組みです。通常のウェブでは情報は1つの場所にあるサーバーから提供されますが、IPFSではファイルは複数の場所に分かれて保存され、必要に応じてP2Pで直接共有されます。そのような、P2Pの性質上Wb3と相性がよく、Web3のプロジェクトで使用されます。
~手順~
実行ディレクトリ(直下で実行する)
IPFS
└── image
└── 0.jpg(アップロードする画像)
└── json
└── 0.json
下記コマンドの実行
npx thirdweb@latest upload image
0.jsonの修正
{
"name": "MydBelovedDog #0",
"description": "this is my beloved dog",
"image": "ipfs://{imageディレクリをアップロードした際のipfsのハッシュ}/0.jpg",
"attributes": [
{
"trait_type": "breed",
"value": "labrador retriever"
},
{
"trait_type": "type",
"value": "back side"
},
{
"trait_type": "foot",
"value": "hairly"
}
]
}
下記コマンドの実行
npx thirdweb@latest upload json
実行後、ipfsで始まるURLとhttpsで始まるURLが表示されるので、後で使用しますのでipfsで始まるURLをメモしましょう。
Smart Contractの作成
今回はOpenZeppelinのフレームワークを使用して、Smart Contractの実装を行なっていきます。
OpenZeppelin Wizard
下記のURLから、Smart Contractの土台のコードを作成します。
添付画像の赤枠は、作成するNFTに応じて変更します。
ERC = トークン規格(どんなルールでNFTを作成するか)
Name = Contractの名前
URL = IPFSにアップロードした際の値(上記でメモしたもの)
FEATURE = NFTでどんな機能を実装するか
Remix IDE
今回は、Remixでコンパイ、デプロイを行なっていきます。もちろん、HardHatなどを使用するのでも問題ありません。
ファイルの作成
新規プロジェクトを作成し、下記のファイルを作成する
.
└── contract
└── [好きなファイル名].sol
ベースコードのコピペ
OpenZeppelin Wizardで作成したコードを作成したファイルにコピペします。
必要に応じて、コピペしたコードを編集してください。
今回は、mint関数を下記に変更してください。
function mint(uint256 id, uint256 amount)
public
payable
{
require(msg.value == publicPrice * amount, "Wrong, Money is not enought");
_mint(msg.sender, id, amount, "");
}
コンパイル
コンパイルバージョンをコードと合わせて、添付画像赤枠を押下します。
デプロイ
Smart Contractのデプロイ
赤枠を入力してデプロイをします。
ENVIROMENT = デプロイ先
ACCOUNT = wallet address
VALUE = 支払い金額
CONTRACT = デプロイを行うファイル
DEPLOY = smart contarctのオーナーのwallet address(僕は自分のwallet addressを指定しました)
今回はSepoliaテストネットを使用しています。(smart contarctをテストデプロイする為のテスト用のお金みたいなものです)
NFTのmint
添付画像の赤枠の項目を入力し、mint関数を実行する。
実行が成功すると、コマンドラインにview on etherscan
と表示されるのでページに遷移します。
Mintを行ったトランザクション履歴を確認できます。
その中でToの項目(Contract Address)があるので、その項目をメモしてください。
OpeanSea Testnet
OpenSea Testnetを開いて、先ほどメモしたContract Addressで検索をします。
可愛い愛犬が、オンリーわんなNFTになりました!!
まとめ
聞いた事はあるが、よくわからないで有名なNFTをOpeanSea testnetに出品しました。
NFTの非代替性特徴は、様々なビジネスの場面で応用できそうなので今後も勉強していければと思います。
まだまだ、勉強不足なので今後もアップデートしていければと思います。
Discussion
タイトル最高。オンリーわんw
NFT Web3は、今後注目すべき分野だと思うので勉強になりました!
次回も楽しみにしております!
www
はい、更新できるように頑張ります!