😎

愛犬を、オンリーわんにしてOpenSeaのtestnetに出品してみた。

2023/12/19に公開
2

概要

今回は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の土台のコードを作成します。
https://wizard.openzeppelin.com/

添付画像の赤枠は、作成する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の非代替性特徴は、様々なビジネスの場面で応用できそうなので今後も勉強していければと思います。
まだまだ、勉強不足なので今後もアップデートしていければと思います。

O-KUN Tech Blog

Discussion

RikutoRikuto

タイトル最高。オンリーわんw

NFT Web3は、今後注目すべき分野だと思うので勉強になりました!
次回も楽しみにしております!