NFT Metadata Standard

NFT 메타데이터 표준

토큰 URI 구현

마켓플레이스가 ERC721 자산에 대한 오프체인 메타데이터를 가져올 수 있도록 하려면 NFT 계약에서 메타데이터를 찾을 수 있는 URI를 반환해야 합니다. 이 URI를 찾기 위해 ERC721의 tokenURI 메소드와 ERC1155의 URI 메소드를 사용하여 NFT를 추적합니다. 계약에서 기능을 구현해야 합니다.

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

계약의 tokenURI 함수는 HTTP 또는 IPFS URL을 반환해야 합니다. 쿼리할 때 이 URL은 토큰에 대한 메타데이터가 포함된 JSON 데이터 blob을 반환해야 합니다.

메타데이터 구조

마켓플레이스 는 공식 ERC721 메타데이터 표준 에 따라 구조화된 메타데이터를 지원합니다. 또한 항목에 대한 여러 속성이 지원되어 마켓플레이스에서 모든 정렬 및 필터링 기능을 제공합니다. 아래 메타데이터 구조를 통해 BizNet Marketplace는 NFT가 나타내는 자산에 대한 세부 정보를 읽고 표시할 수 있습니다.

{
    "name":"NFT Name",
    "description":"NFT Description",
    "image":"https://somedomain.com/pic/xxxx.jpg",
    "external_url":"https://originalsite.io/2",
    "attributes":[...]
}

이러한 각 속성의 작동 방식은 다음과 같습니다.

속성

NFT 특성을 표시하려면 메타데이터에 다음 배열을 포함합니다.

{
    "attributes":[
        {
            "trait_type":"Rarity Class",
            "value":"Normal"
        },
        {
            "trait_type":"Type",
            "value":"Male"
        },
        {
            "trait_type":"Face",
            "value":"Mole"
        },
        {
            "trait_type":"Beard",
            "value":"Chinstrap"
        },
        {
            "display_type":"boost_number",
            "trait_type":"Power",
            "value":"Power"
        },
        {
            "display_type":"boost_percentage",
            "trait_type":"Health Increase",
            "value":"20"
        },
        {
            "display_type":"number",
            "trait_type":"Generation",
            "value":"3"
        }
    ]
}

다음 trait_type 은 특성의 이름이고, value는 특성의 값이며, display_type는 숫자 값을 표시하는 방법을 나타내는 필드입니다. display_type 대해서는 value가 문자열일 경우에는 걱정할 필요가 없습니다. 속성에 포함된 모든 특성은 에 표시됩니다 Attribute. 특정 트레이트에 대한 속성 을 원하지 않는 경우 trait_type을 사용하지 않고 value만을 포함하면 일반 속성으로 설정됩니다.

숫자 특성

3가지 지원 옵션이 있습니다. display_type: number - 순수한 숫자로 값 display_type: boost_number - 더하기 또는 빼기 기호로 숫자를 표시할 수 있습니다. display_type: boost_percentage - boost_number와 유사하지만 숫자 뒤에 퍼센트 기호를 표시합니다.

날짜

마켓플레이스에서는 날짜 특성도 지원합니다. UNIX 타임스탬프를 값으로 전달합니다.

   {
      "display_type": "date", 
      "trait_type": "birthday", 
      "value": 1608490000
    }
    

Last updated