🐬

Metadata Standards for OpenSea(日本語)

2021/11/07に公開

ERC721とERC1155規格のNFTにおけるメタデータのデファクトスタンダードをOpenSeaの公式ドキュメントを読みながら最低限のところだけ書いていきます。(随時更新)

https://docs.opensea.io/docs/metadata-standards

Metadataの埋め込みURI

ERC721規格ではtokenURIメソッド、ERC1155規格ではuriメソッドでURIが帰ってきます。

/**
  * @dev Returns an URI for a given token ID
  */
  function tokenURI(uint256 _tokenId) public view returns (string) {
    return Strings.strConcat(
      baseTokenURI(),
      Strings.uint2str(_tokenId)
    );
  }

たとえば、以下の画像のような内容だとこのようなメタデータを利用します。

https://opensea-creatures-api.herokuapp.com/api/creature/3

{
  "attributes":[
    {
      "trait_type":"base",
      "value":"narwhal"
    },
    {
      "trait_type":"eyes",
      "value":"sleepy"
    },
    {
      "trait_type":"mouth",
      "value":"cute"
    },
    {
      "trait_type":"level",
      "value":4
    },
    {
      "trait_type":"stamina",
      "value":90.2
    },
    {
      "trait_type":"personality",
      "value":"boring"
    },
    {
      "display_type":"boost_number",
      "trait_type":"aqua_power",
      "value":10
    },
    {
      "display_type":"boost_percentage",
      "trait_type":"stamina_increase",
      "value":5
    },
    {
      "display_type":"number",
      "trait_type":"generation",
      "value":1
    }
  ],
  "description":"Friendly OpenSea Creature that enjoys long swims in the ocean.",
  "external_url":"https://example.com/?token_id=3",
  "image":"https://storage.googleapis.com/opensea-prod.appspot.com/creature/3.png",
  "name":"Dave Starbelly"
}

Metadataの構成

Openseaは、ERC721の公式のメタデータスタンダード、またはEnjin Metadata suggestionsをサポートしています。

そして、複数のアタッチメントに対応しており、音声ファイル、動画ファイル、3Dメディアを含むことができます。

プロパティ毎の特性 (後ほど翻訳)

Discussion