Akihito Ikeda

全てのNFTがERC721のtokenURI()を実装してるわけじゃない

posts/2022-02-13diary

NFTの画像を取得したいと思ったとき、NFTのコントラクトアドレスがわかっていれば、何らかのweb3プロバイダーを介してコントラクトのtokenURI()をコールすることでNFTのメタデータを取得することができる。そしてそのメタデータに画像のURIが含まれている。

しかしこれが可能なのは当然ERC721に準拠したNFTだけ。ERC1155だと取得できないし独自の実装になっているNFTも当然取得できない(運よくtokenURI()というメソッドが実装されてない限りは)。例えばCryptoKittiesみたいに、ERC721で実装されると思いきやtokenURI()メソッドが存在しないケースもある。

となると、世の中にある任意のNFTの画像を簡単に取得するというのは現実的に無理で、ERC721やERC1155やその他の有名な規格に準拠していないものについては事前にコントラクトABIを知っていないといけない。これって普通に不便でコンポーザビリティ低いんじゃない?と思うけど、まだ過渡期だからしょうがない感じなのかな。一応ERC721やERC1155が出てきてからはそれに準拠するNFTが多いんだろうか?しかし現実的には任意のNFTを統一的に扱うケースは以外と少なくて、例えば特定のシリーズもの(コレクティブル)を対象にした限定的なコンポーザビリティがあれば今は十分なのかもしれない。このあたりの問題ってOpenSeaみたいなマケプレはどうやってるんだろう…?泥臭く個別のNFTごとに対応していってるんだろうか。

今回はたった数個のNFTのコントラクトを確認した程度で、世の中に流通してるNFTの実装について実勢を把握できてるわけではないので、もしかしたら全く見当違いこと書いてるかもしれない。なんかわかったらまた書く。

© Akihito Ikeda - Last update 04.03.2024 00:58.