가이드

Studio 721가이드에서는 NFT생성을 시작하기 위해 알아야할 모든 것을 다룹니다.
그리고 해당 가이드 전체에서 사용되는 개발자 용어(ex: JSON)도 볼 수 있으며, NFT를 만들기 위해 전문 개발자가 될 필요는 없으나 NFT를 만드는 것은 근본적으로 기술적인 작업입니다.
개요
NFT 또는 대체 불가능한 토큰이 작동하는 방식을 검토하는 것으로 시작하겠습니다.
일반적으로는 모든 NFT는 3가지의 중요한 구성요소를 가집니다.
- 스마트 계약 - NFT는 블록체인에 어떤 방식으로 저장되는가?
- 메타데이터 - 이 NFT와 연결된 멀티미디어 자산 및 모든 속성/특성에 대한 링크
- 멀티미디어 자산 - NFT 메타 데이터에서 참조하는 멀티미디어 자산 파일(이미지, 비디오 등) 입니다.
각각에 대해 더 자세히 살펴보면 다음과 같습니다.
스마트 계약
스마트계약은 블록체인에서 실행되는 어플리케이션 입니다.
다양한 종류의 스마트 계약이 있지만, 특히 NFT 스마트 계약에 중점을 둘 것입니다.
NFT 스마트 계약
NFT스마트 계약은 숫자 목록을 저장하는 애플리케이션입니다.
토큰 id(식별자[약어])라고 하는 각 숫자에는 owner 및 token uri와 연관되어 있습니다.
예를 들어, 계약은 다음과 같이 3개의 토큰 ID를 소유자 및 URI와 연결할 수 있습니다.

NFT(ex: OpenSea)를 구매하면 지갑 주소가 특정 ID의 소유자로 나열되도록 스마트 계약이 업데이트 됩니다.
토큰 uri는 멀티미디어 자산을 포시하는 데 사용할 수 있는 이 토큰과 관련된 메타데이터를 찾을 위치를 OpenSea에 알려줍니다.
일반적으로 각 스마트 계약에 대해 첫 번째 NFT는 id 0 또는 1로 표시되고 다음은 2, 그 다음은 3등입니다. 예를 들어서 CryptoPunks 또는 Bored Ape Yacht Club과 같은 NFT 컬렉션에는 총 10000개의 NFT가 있으며 각각 고유한 ID가 0에서 9999까지 있습니다.
이제 이더리움에 NFT 계약을 배포하면 OpenSea가 자동으로 이를 감지하여 웹사이트에 추가합니다.
그러나 계약이 NFT 계약인지는 아직 알 수 없습니다.
프로토콜
NFT 스마트 계약으로 간주되기 위해서는 스마트 계약에 특정 기능이 있어야 합니다.
그리고 이 기능 집합을 protocol이라고 합니다.
ERC-721 - 대체 불가능한 토큰 표준에 정의된 가장 간단한 NFT 프로토콜
https://eips.ethereum.org/EIPS/eip-721
ERC-1155 - 다중 토큰 표준에 정의된 대체 가능 및 대체 불가능 토큰을 모두 허용하는 더 복잡한 프로토콜
https://eips.ethereum.org/EIPS/eip-1155
두 프로토콜은 걔념적으로 상당히 유사하며 표준 NFT에서도 똑같이 잘 작동합니다. 이제 막 시작하는 경우 간단하기 때문에 ERC-721을 사용하는 것이 좋습니다. 이 사이트의 도구는 ERC-721에 중점을 두고 있습니다.
supportsInterface OpenSea와 같은 사이트에서 특정 계약이 NFT 계약인지, 즉 ERC-721 또는 ERC-1155를 지원하는지 확인하기 위해 호출할 수 있는 스마트 계약 기능이 있습니다. 이것이 OpenSea가 배포한 계약을 자동으로 감지하는 방법입니다.
기능
프로토콜은 스마트 계약 세트를 정의합니다(함수로).
NFT 프로토콜에서 기능을 구현하는 모든 계약은 정의상 NFT 스마트 계약입니다.
ERC-721은 꽤 많은 기능을 정의하고 있으며 기술적인 세부 사항 중 일부는 상당히 복잡합니다.
이러한 이유로 대부분의 NFT 개발자는 NFT 스마트 계약을 처음부터 구현하지 않습니다. 대신 스마트 계약 개발자의 광범위한 커뮤니티에서 만들고 테스트한 오픈 소스 구현에 의존합니다.
지금까지 가장 일반적으로 구현된 버전으로는 OpenZeppelin 버전이 있습니다.
OpenZeppelin은 대부분의 고급 코드를 처리하지만 여전히 이해해야 할 몇 가지 기능이 있습니다.
두 가지 주요기능을 살펴보면 다음과 같습니다.
- ownerOf - 이 함수는 특정 토큰 ID를 소유한 지갑 주소를 반환합니다.
- tokenURI - 이 함수는 특정 토큰 ID에 대한 메타데이터 URI를 반환합니다.
ERC-721을 구현하는 모든 NTF 스마트 계약에는 이 두 가지 기능이 포함됩니다.
이러한 기능은 OpenSea와 같은 플랫폼에서 NFT를 소유한 사람과 해당 NFT에 대해 표시할 이미지를 표시하는 데 사용됩니다.
CryptoPunks와 같은 오래된 NFT 계약은 ERC-721 또는 ERC-1155를 준수하지 않을 수 있습니다.
OpenSea에는 이러한 계약에 대한 맞춤형 통합이 있습니다.
이더스캔
Etherscan은 거래, 주소, 스마트 계약 및 기타 이더리움 정보를 탐색하는 데 매우 유용한 웹사이트입니다.
우리는 종종 스마트 계약 코드를 보고 EtherScan을 사용하여 스마트 계약 기능을 호출할 수 있습니다.
스마트 계약 작성자는 Etherscan 웹 사이트에 표시되도록 소스 코드를 "확인"해야 하므로 모든 계약을 볼 수 있는 것은 아닙니다. 그러나 대부분의 NFT 스마트 계약 작성자는 NFT와 상호 작용하는 사람들로부터 신뢰를 얻기 위해 계약을 확인합니다.
예시
계약을 맺고 Etherscan에 ownerOf를 요청하면 다음과 같습니다.
tokenURI 에서 Etherscan의 Bored ApeYacht Club 스마트 계약으로 이동할 수 있습니다.
이를 위해 지갑을 연결할 필요는 없습니다.
함수를 호출하여 ownerOf 토큰 10을 소유한 주소를 찾을 수 있습니다.

숫자 "10"을 입력하고 "query" 버튼을 클릭하면 지갑 주소가 표시됩니다.
tokenURI 함수에 대해 동일한 작업을 수행합니다.

이 경우에는 uri가 표시됩니다.
ipfs://Qmes ...aWtq/10
이 URI는 Bored Ape #10의 메타데이터에 대한 링크입니다.
이것이 무엇을 의미하는 지는 다음 섹션에서 살펴보겠습니다.