NFT プログラミング入門: いろんな NFT の実装方法の分類
Apr 24, 2022このページはこんな人におすすめ
- NFT の実装の分類が知りたい
- 独自スマートコントラクトの NFT を作りたい
NFT では ERC721 や ERC1155 という共通の仕様がありますが、その機能によって実装方法はいろいろあります。
それらを分類して作り方を紹介しているサイトをまとめました。
NFT の種類は無数に存在しますが、ここでは 2021~2022 年に開発が活発になっている NFT について紹介します。
- OpenSea で発行
- ジェネラティブ NFT
- Loot
- フルオンチェーン(SVG/Bitmap/オリジナル)
おまけでノーコードのサービスも載せておきます。エンジニアじゃなくても画面をポチポチするだけで ERC721 や ERC1155 のスマートコントラクトをメインネットにデプロイできます。
どのブロックチェーンがいいの?
チェーンはたくさんありますが、学習目的の場合にオススメなのは Ethereum のテストネット(Rinkeby)です。
どのブロックチェーンを使うか決まっていないのなら、まずは EVM(Ethereum Virtual Machine)に取り組むのが良いでしょう。
理由は、開発者もユーザー数も最大で技術と市場が一番成長しているからです。
テスト用の OpenSea があるため、発行した NFT を OpenSea で見ることができます。
ERC721/1155
EVM で発行される NFT は、ERC721 または ERC1155 のスマートコントラクトと言い換えることができます。
あとから紹介するジェネラティブ, Loot, フルオンチェーンも ERC721 または ERC1155 に従っています。
NFT を作る場合に、一番簡単な方法は、OpenSea から発行する方法です。
OpenSea で発行する場合は OpenSea が所有する ERC1155 のコントラクトです。(2022 年 1 月現在)
独自コントラクトでも ERC721 や ERC1155 のフォーマットに合わせていれば OpenSea や他のマーケットプレイスで売買することができます。
OpenSea (Testnet)
テストネット用の ETH は無料で入手できますが、不安定なので動いているときと動いていないときがあります。
Faucet (Rinkeby)
Chainlink の Faucet からでも Rinkeby の ETH をもらうことができます。
Faucet Chainlink
https://faucets.chain.link/rinkeby
OpenSea で作る場合は、スマートコントラクトの所有者は OpenSea です。 もし OpenSea で作った NFT に不便を感じていないならいまは独自コントラクトをつくる必要はないでしょう。
もし、ユーザーに直接 mint してもらう NFT や、フルオンチェーンの NFT を作りたい場合は、OpenSea では作れません。 そういう NFT を作る時には独自のスマートコントラクトをデプロイして NFT を発行します。
【2021 年版】NFT を発行してほしいという問い合わせが多いので発行方法とサンプルコードを公開します
NFT 完全に理解した!!になるために独自コントラクトで NFT を発行してみる方法の解説
ジェネラティブ NFT
画像を組み合わせてユニークな画像を 10,000 枚使った NFT の作り方の紹介です。
(保存版)10,000 種類のジェネレイティブ NFT の作り方
Loot
Loot は画像の代わりに文字情報を持った NFT です。 発行する NFT の Token ID ごとに異なるパラメータを持たせることができます。 創造力次第で可能性が広がる NFT ですね。
【Solidity】Loot 型の NFT をつくってみよう!
フルオンチェーン(SVG)
フルオンチェーンは名前のとおり、データをオンチェーンに載せています。
PNG や JPEG などの画像を使った NFT の場合は、画像ファイルをチェーンには載せない方法が一般的です。 理由は、オンチェーンにこれらの画像データを載せるとストレージコストが高いためです。
SVG というフォーマットの画像を動的に生成する特性を活かしてスマートコントラクトで SVG を生成します。 その結果、外部のファイルを使うことなくすべてのデータをオンチェーンに載せたフルオンチェーン NFT となります。
【保存版】フルオンチェーン NFT の作り方_完全版(入門レベル)
【保存版】SVG 徹底解説!アニメーション・フルオンチェーン NFT を作ろう!
フルオンチェーン(Bitmap)
Bitmap は画像の 1 ドットごとに色情報を持つ原始的な画像フォーマットです。 高精細な画像の場合はデータが大きくなりますが、あえて Bitmap で画素数の少ないドット絵を表現しています。 原始的な手法ゆえに、いかに容量を節約したり表現を豊かにしたりするかプログラマの腕の見せ所です。
full-on-chain pixel art NFT
フルオンチェーン(オリジナル)
最後にスマートコントラクトの特徴を活かした遊び心のある NFT の記事を紹介します。
おみくじ NFT を作りました
100 時間後に死ぬ NFT を作りました
ノーコード(おまけ)
thirdweb を使うと ERC20, ERC721, ERC1155 など汎用的なスマートコントラクトをノーコードでデプロイできます。
thirdweb
おわりに
ここで紹介しているページは、プロの自分から見た信頼できる技術者の情報を選んでいます。
素晴らしい記事を作成してくださったエンジニア著者の皆さまに敬意と感謝の気持ちを込めて