OpenSeaのTestnetを使用してNFTを作成する
OpenSeaのTestnet版を利用してNFTを作成する方法を解説します。
OpenSeaについて
OpenSeaはNFTを売買することができるプラットフォームです。OpenSeaを使用することで、ERC721の規格に対応したトークンを売買することが可能です。OpenSeaでは、イーサリアムで作成したトークンのほか、イーサリアムのサイドチェーンであるMaticで作成したトークンも売買可能です。
OpenSeaはユーザ登録不要で、MetaMaskを使用してユーザ認証するWeb3.0感のある仕組みになっています。
トークンエコノミーについて
OpenSeaなどのデジタルマーケットプレイスでは、トークン化されたデジタルデータを自由に売買することができます。デジタルデータに、ゲームで使用できるなどの実体価値をうまくつなぎ込むことで、新しい経済圏ができることが期待されています。
例えば、従来の電子書籍はレンタルの扱いとなっていますが、NFT化されることで所有することができ、実際の本のように転売が可能となります。また、転売された際に、著作者に利益が還元されるようなコントラクトを作成することも可能です。
ERC721について
ERCはスマートコントラクトのAPIの規格です。発行APIや送金API、メタ情報取得APIなど、実装すべきAPIが定義されます。Non-fungible token向けの企画がERC721です。ERC721で売買している実体はメタ情報であり、画像などのコンテンツの実体はクラウドサーバか、P2Pのファイル共有サービスであるipfsに格納されます。
テストネットについて
イーサリアムでトークンを作成するにはガス代としてETHが必要です。最終的にはメインネットでトークンを作成することが必要ですが、テストのためだけにメインネットの高額なガス代を支払うのは大変です。
そこで使えるのがテストネットです。テストネットではFuncet経由で無料でガス代を入手することができます。イーサリアムには複数のテストネットがあり、メインネットと同じウォレットアドレスを使用してトークンのやり取りのテストを行うことができます。
OpenSeaにもテストネット版があり、下記のURLからアクセス可能です。OpenSeaのテストネットはRinkebyテストネットを使用しています。
MetaMaskの設定
MetaMaskのネットワークの選択からRinkebyテストネットワークを選択します。
NFTの作成に必要なETHを取得します。
NFTを作成して出品する
OpenSeaにMetaMaskでログイン後、Collectionを作ります。CollectionはNFTをまとめるフォルダのようなものです。
次に、CollectionにItem(NFT)を追加します。最初にNFTを作る際に署名を要求されます。
署名を承認すると、NFTの作成画面になります。NFTの名前や画像、メタ情報を設定します。
作成が完了しました。
CollectionのItemの画面で売るを選択します。
署名を要求されます。
署名を行うと、販売を開始して購入できるようになりました。
NFTの作成と出品にはGAS代はかかりません。OpenSeaではERC1155でNFTを作成しています。実際にNFTが購入されるまでオフチェーンで処理することで、GAS代を不要にしています。
The new collection manager allows creators to make NFTs without any upfront gas cost, as the NFT isn’t transferred on-chain until the first purchase or transfer is made.
We call this lazy minting. It unbundles the on-chain issuance of your NFTs from the metadata.
Even collections are now free and instant to make. To begin, create a new ERC-1155 collection at https://opensea.io/collections.
NFTを購入する
NFTを購入する際は、入札するボタンを押します。
入札にはwETH(Wrapped ETH)が必要なため、ETHをwETHに変換します。
入札できました。
wETHについて
ETHはERC20の規格に従っていないため、スマートコントラクトで直接的な交換を行うことができません。そこで、ETHをスマートコントラクト上のトークンであるwETHに交換することで、スマートコントラクトで直接扱うことができるようにしています。
独自のコントラクトで作成したNFTを読み込む
My CollectionsからCreate new collectionの下にある「or add an existing contract」を選択します。
追加したいNFTのコントラクトアドレスを設定します。