はじめましてNFT その①  ～配布NFTをウォレットMetaMaskに並べてニマニマするまで～

これは、
「NFTってデジタルデータの証明をしてくれるんでしょ？」
「NFTって、web3.0とかメタバースで使われるものでしょ？」
くらいの認識のインフラエンジニアが、ブロックチェーンEXPOを切っ掛けにNFTに興味を持って触ってみたけど、思いの外、難しかったので、試行錯誤を記録に残したものです。ただ単に「持っているNFTを並べてニマニマしたい」というだけの戦いの記録となります。（記載内容は全て2023/6時点のものです。）

# 1. NFTとは？
これを読んで下さっている方はNFTは既に理解されているかと思いますが、念のため、定義を記載しておきます。(※ChatGPT先生にお手伝い頂き、記載しています。)

NFT（Non-Fungible Token）は、非代替可能トークンという意味です。これは、ブロックチェーン技術（主にイーサリアム）を使用して作成され、デジタルアセットやコンテンツの所有権を表すために使用される暗号通貨トークンとなります。

従来の暗号通貨（例：ビットコインやイーサリアム）は、交換可能であるため「代替可能」です。つまり、それぞれのトークンは同じ価値を持ち、交換することができます。一方、NFTはユニークであり、互換性がありません。それぞれのNFTには固有の識別子があり、特定のアイテムやデジタルコンテンツを所有していることを示します。

NFTは、デジタルアート、音楽、動画、仮想世界のアイテム、ゲームアイテムなど、さまざまなデジタルアセットに使用されます。NFTを購入することで、所有者はそのデジタルアイテムの独占的な所有権を得ることができます。ブロックチェーンの分散台帳に記録されるため、デジタルアイテムの真正性や所有権の証明が容易になります。


# 2. NFTとウォレットとマーケット

NFTは、web3.0の世界で中心となる概念の一つとなります。私のweb3.0の理解を下表に記載しますが、一番大切なのは取引が「人 対 人」になることによる世界の広がりだと考えています。
|| これまでのweb2.0な世界 | これからのweb3.0(NFT)な世界 |
|:-:|:-:|:-:|
|取引通貨| 円/ドルなどの法定通貨  | ビットコインBTC/イーサリアムethなどの仮想通貨  |
|取引対象| 主にリアル商品や金融証券  | NFTなどのデジタル資産  |
|取引する人| 人 対 店（路面店やショッピングモールのweb版）  | 人 対 人（NFTマーケット≒フリーマーケット）  |
|お金の管理| 財布やクレカ  | ウォレット  |

そして、財布やクレカが無いと現実世界やweb2.0世界で買い物ができないように、web3.0世界ではウォレットがないと買い物ができません。なので、まずはウォレットを作るところから始めましょう。

NFTに関わるウォレットは、下記の機能を持っているものと定義することができると思います。
- NFTを保管する
- NFTの送受信（ブロックチェーンネットワークとの取引の担保）
- マーケットプレイスへの接続（アカウント情報の管理）

これを絵にすると、下図のようになると理解しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/2ef9871e-d8f7-a361-e4ee-f7ce064c0e91.png)

利用者は、ウォレットを直接利用しての保管や閲覧だけでなく、ウォレットをプロバイダのように介してマーケットでNFTの売買をすることになります。まさに、ネットショッピングのクレカの役割をウォレットが担う形ですね。

ウォレットは、イーサリアム公式登録のものだけで51種類もあるようです（2023/6/16現在）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/e394c292-f8af-f1db-9bda-21be53d020d4.png)

NFTに馴染みがない方はどれを選んだら良いかわからないですよね。調べてみたところ、NFT界隈ではMetaMaskというウォレットがデファクトスタンダードになりつつあるようですので、まずはこれを使ってみることにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/0a54005c-3303-16f2-b31e-06fbaf1bc96a.png)


# 3. MetaMaskウォレットを作る

MetaMaskは、Chrome拡張機能、iOSアプリ、Androidアプリで提供されています。今回はChrome拡張機能にて進めるため、PCのChromeからMetaMaskサイトにアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/a597e4c8-50cd-206e-b798-ff8e69fc8c8d.png)

MetaMaskサイトから「download」を進めると、Chromeの拡張機能ページに飛びます。ここで、Chromeに機能を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/1b5f327d-9de2-0774-ba58-2d6d06a65e40.png)

MetaMaskの初期設定に移ります。まずは、ウォレットにアクセスするためのパスワードを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/b12423e4-714e-b41e-b79f-0bdcfd53c125.png)

続いて、ウォレットのシークレットリカバリーフレーズが定義されるのですが、これがとても重要で、これが漏れるとウォレットに登録している資産が漏れると理解した方が良いです。このあたりの重要度を動画で説明してくれるので、始めてウォレットを作られる方はしっかりと動画を見た方が良いでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/56ec1cc2-976a-81d3-571c-997a494b499c.png)

動画の後に、12個のリカバリーフレーズが定義されます。これは、忘れないように、かつ、漏れないように管理をしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/189d5679-9257-1698-c03f-875b6bb79d5d.png)

ここまでで、無事にウォレットが作成できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/87fb73db-23d2-b791-64c1-a7476466f9fe.png)

実際にChromeからウォレットの中を確認することができます。上部の「0x・・・」が自身のウォレットのIDであり、種々の手続きにこのIDを使うことになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/2d0a544c-56e7-71d1-df72-1664097d742e.png)


# 4. 持っているNFTを確認する

今回は、2023/5/12に訪問させて頂いた、「第4回 ブロックチェーンEXPO【春】」にて配布されていたNFT2枚を並べてニマニマしたいと思います。

1枚目は、SUSHI TOPマーケティング社様が配布されていたNFTです。こちらは、MetaMaskのIDを登録して受け取りましたが、NFTマーケットであるTOFUNFTにて確認できるNFTでした。2節の図で言うところの、ウォレットをプロバイダとして使った登録がされているものと考えられます。なお、TOFUNFT詳細情報に記載されているように、こちらはAsterネットワークに配布されたものでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/09a2260c-1fca-6e4a-ad78-dba07f299ba3.png)

もう1枚は、ShinoVi.io様が配布されていた下記のNFTです。こちらは、メタマスクのIDを入れると、直接配布される形のようでした。（ShinoVi.io様は自身がNFTマーケットプレイスなので、そちらで確認できたのかな？MetaMaskで直接確認できたので、こちらはマーケットプレイスでの見え方は未確認です。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/cd3b9dbe-e39a-3ed6-3f71-669572e91634.png)

配布されているマーケットやサイトが異なるので、並べて表示することはできません。従いまして、当初の予定通り、MetaMaskで表示することを進めていきます。


# 5. MetaMaskにAsterネットワークを登録する

MetaMaskは、デフォルトではAsterネットワークが登録されていません。なので、そのままではSUSHI TOPマーケティングさんのNFTが確認できない！
なので、手動で登録すべく、ネットワーク追加登録画面を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/f382d7de-65e5-c9e3-2820-7c1486652693.png)

ASTERネットワークのネットワーク情報はググるとすぐに出てきますので、それを登録し、MetaMaskからAsterネットワークにアクセスできるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/e9260c6b-3bb0-c6b3-a139-a71a0139ccab.png)


# 6. 持っているNFTをMetaMaskにインポートする

ASTERのネットワークを登録しても、NFTは自動では表示されませんでした（キャプチャを取り忘れ、別ネットワークのものにてすみません）。調べてみると、MetaMaskは、世界最大のNFTマーケットであるOpenSeaとはシームレス連携の記載がありますが、それ以外に対する記載がなく、自動では持っているNFTを勝手にはクロールしてくれないようです。なので、NFTを手動でインポートすることにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/f8959659-21df-2b00-2433-cad20e5d0a82.png)

TOFUNFTにて、NFTの詳細情報が確認できるので、コントラクトアドレスとトークンIDを持ってきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/dd55e747-aff4-1c29-e2f4-1d2e6beaf3e1.png)

MetaMaskにて、自分のNFTならば、コントラクトアドレスとトークンIDでインポートができるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/ce763cd3-710a-4426-3c2d-0bada7ae3803.png)

よし、無事にNFTが表示されました！でも、せっかくのNFTなのに画像が表示されませんorz
これも調べてみたところ、NFTでは操作APIについては規格化されていますが、メタデータについては標準化されていないようです。OpenSea互換のメタデータであればMetaMaskで内容を表示できそうですが、恐らく、TOFUNFTにて公開されていたこのNFTのメタデータはMetaMaskでは対応できていなかったのでしょう。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/f7404d02-cd38-13ce-604b-75fc5ce907b4.png)

2枚目のShinoViさんのNFTは、Polygon Mainnetネットワークでの配布でした。そこで、MetaMaskの表示ネットワークをPolygonに切り替えると、こちらは無事に表示することができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/2f9a9ec2-fc8c-ee59-7d07-fe16e5cf059b.png)

でも、MetaMask拡張機能では、ネットワークを切り替えないとそれぞれのNFTが表示できず、「並べてニマニマする」という当初の目的は達成できていません。


# 7. MetaMask Portfolioで並べてニマニマする

調べてみたところ、MetaMaskの新機能として、MetaMask PortfolioというMetaMask本体の補完サイトがあるようです。こちらでは、ネットワーク横断にて各種の情報が閲覧できるとのこと。
なので、MetaMask PotfolioでNFTを並べてニマニマしましょう！
・・・1枚しか表示されていないorz
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/1c4b18aa-5c10-03d6-33a6-338cc6c67e7b.png)

こちらも、Asterネットワークがリストにはないようです。それに加え、MetaMask Portfolioには、まだネットワークの追加機能が存在していない模様。う～ん、この機能ができるまで、並べてニマニマするのは持ち越しですね、残念。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457739/1a624448-6ff3-f652-ed6b-6ff867ceffc2.png)


# 8. 2023/6時点のNFTの難しいところ

今回、ブロックチェーンEXPOへの参加を切っ掛けに、NFTについて実際に色々と触ってみました。その中で、難しいなと感じたところを最後に並べておきます。

- ウォレットが乱立しすぎていて、どれを使ったら良いのかがパッとはわからない。
- ウォレットの機能として、そのままズバリの財布機能と、マーケットの裏で使用されるプロバイダ的な機能の二通りあり、これがまだ広く伝わっていないので感覚として掴むのが難しい。
- ネットワークが乱立しており、各サービスがデフォルトでは対応していないネットワークへの設定が結構な頻度で入る。
- NFTのメタデータが統一されていないので、マーケット間での相互やり取りなどはまだ不安である。

まだNFTは黎明期かと思いますが、こういった点が改善されていけば、誰でも気軽にNFTを扱える日が来るのかな（逆に言えば、もう少し先かな）と感じた次第でした。

まずは並べてニマニマすることを目的としましたが、次は、実際にNFTをマーケットで購入することにチャレンジしてみたいと思います。