이 글에선 초급 개발자분들 및 코딩에 대한 기본적인 지식을 가지고 계신 일반인 분들도 5분만에 NFT 지갑 API를 만들 수 있는 방법에 대해 소개해드리고자 합니다.
NFT란?
먼저 NFT란 Non-Fungible Token의 줄임말로 대체 불가능한 토큰이라는 뜻을 가지고 있습니다. 디지털 자산, 즉 사진, 비디오, 오디오파일에 대한 저작권 및 소유권 증명에도 사용되고 있으며, 누가 제작하였는지부터 누구에게 거래되었는지에 대한 모든 거래 기록이 블록체인상에 기록되기 때문에 타인이 복제를 하여도 소유권을 증명할 수 없다는 장점이 있습니다.
이러한 NFT의 프로젝트들중 가장 규모가 큰 프로젝트들 중 하나인 BAYC프로젝트에 대해 소개해 드리고자 합니다. BAYC란 Bored Ape Yacht Club의 줄임말로 직역하자면 ‘지루한 유인원들의 요트 클럽'이라는 뜻을 가지고 있습니다. 유가랩스(Yuga Labs)라는 회사에서 만든 브랜드로, 2012년 4월 28일 총 1만 개의 BAYC NFT를 발행하며 시작되었습니다.
출처: https://boredapeyachtclub.com/#/gallery
위 사진에 있는 그림들을 보시면 아실 수 있듯이, 유인원 캐릭터를 바탕으로 하였으며, 배경, 옷, 귀걸이, 털 등에서 서로 조금씩 다른 특징과 모습을 띠고 있으며, 각 개체는 오로지 1종만 존재한다는 특징을 가지고 있습니다.
이 프로젝트를 왜 소개해드렸느냐면 NFT지갑을 만드는 것을 쉽게 할 수 있게 해주는 제품을 이 프로젝트의 NFT를 가져오는 예시를 통해 소개해드리고자 함입니다.
이 제품은 SendInAir이며, https://github.com/sendinair에서 제품의 세부 내용을 볼 수 있습니다. NFT지갑 외에도 NFT, WEB3, Blockchain에 관련된 많은 제품들이 있습니다.
준비물
- MetaMask
- 코드 편집기(Visual Studio Code 추천)
- 터미널
- Docker
- Docker-compose
- Git
- 구축된 스마트 컨트랙트 주소
- Insomnia (API 테스트 도구)
! 이 예시는 맥북 M1 PRO에서 크롬 브라우저, Visual Studio Code 그리고 이더리움 네트워크 기준으로 작성되었습니다.
! 혹시 아직 스마트 컨트랙트를 해본 적이 없으신 분들은 마지막에 하는 방법이 소개되어 있으니 이를 참조해주시기 바랍니다.
준비가 다 되신 분들은 순서대로 따라해주시기 바랍니다!
- 제품을 받기 원하시는 폴더로 들어가서 터미널을 실행시켜주시기 바랍니다. (저같은 경우엔 Misc란 이름의 폴더 안에서 작업했습니다.)
- 명령어 git clone git@github.com:sendinair/sendinair-nft-server.git 를 입력해주세요.
- Docker를 켜주신 후에 프로젝트 폴더에서 docker-compose -f production.yml up --build -d 를 입력해주시면 실행됩니다.
- 축하드립니다! API를 사용하시기 위한 준비가 완료되었습니다!
API사용법
여기를 통해 테스트용 API들을 받으실 수 있습니다.
링크로 들어가셔서 RUN SENDINAIR-NFT-SERVER를 받으시면 나오는 Insomnia에서 OK해주시고
sendinair-nft-server 콜렉션으로 들어가주시면 됩니다
저희 API는 이더리움과 클레이튼을 지원합니다.
API 목록
이더리움
- get token info
: 해당 tokenId의 정보를 가져옵니다.
- get token uri
: 해당 tokenId의 uri를 가져옵니다.
- ownerOf
: 해당 tokenId의 소유주를 알려줍니다.
- eth nft balance - addr1
: 해당 address의 지갑에 있는 NFT목록을 가져옵니다.
- eth nft balance - addr2
: 해당 address의 지갑에 있는 NFT목록을 가져옵니다.
- mint eth nft - addr1
: 해당 tokenUri(json파일)를 recipient의 주소의 지갑에 생성합니다
- transfer eth nft - add1 -> add2
: 해당 privateKey의 지갑에서 toAddr에 tokenId에 해당하는 ETH NFT를 전송합니다.
- transfer eth nft - add2 -> add1
: 해당 privateKey의 지갑에서 toAddr에 tokenId에 해당하는 ETH NFT를 전송합니다.
- transfer eth nft - master -> add1
: 해당 privateKey의 지갑(master)에서 to에 amount만큼의 ETH를 전송합니다.
이제 이 API들을 활용하여 BAYC의 NFT를 조회해보겠습니다.
Ethereum 폴더를 선택하신 후 get token info선택 하시고, Send버튼을 눌러주시면 BAYC의 토큰 id가 1인 NFT를 조회하실 수 있습니다!
이 외에도 다른 id의 NFT를 조회하고 싶으시다면 tokenId 우측의 숫자를 조절해주시면 되는데, 최소 0부터 최대 9999까지의 숫자를 넣어주시면 됩니다.
또한 BAYC외에도 다른 프로젝트의 NFT또한 조회하실 수 있습니다! 원하시는 프로젝트의 Contract Address만 있으면 가능합니다.
OpenSea에 들어가셔서 원하시는 프로젝트에 들어가셔서 밑의 사진과 같은 버튼을 클릭후
출처: https://opensea.io/collection/azuki
이동된 사이트에서 밑의 사진과 같은 버튼을 클릭해주시면 Contract Address가 복사됩니다.
출처: https://etherscan.io/address/0xed5af388653567af2f388e6224dc7c4b3241c544
그 주소를 git clone으로 받으셨던 파일들 중 docker-compose.env로 들어가셔서 NFT_CONTRACT_ADDRESS_ETH의 “=” 오른쪽 값을 수정해주신 후 저장하신 다음
docker-compose -f production.yml down로 서버를 종료하신 후 docker-compose -f production.yml up --build -d로 다시 키신 후 다시 조회해주시면 됩니다.
이렇게 BAYC 외에도 원하시는 프로젝트의 NFT를 조회하실 수 있으며, 이를 통해 원하시는 NFT를 만드실 수 있습니다.
센디네어는 BaaS(Blochchain as a service) 스타트업으로서 블록체인과 기업간의 간극을 줄여, 더 많은 사람들이 블록체인 서비스를 접할 수 있고자 하는 기술을 연구하고 있습니다.
회사 홈페이지: https://sendinair.com
회사 Twitter :https://twitter.com/sendinair
Aptos NFT marketplace: nodegen.xyz
NODEGEN Twitter: https://twitter.com/NODEGEN
'SendInAir' 카테고리의 다른 글
Klaytn vs Aptos 어떤 블록체인을 활용해야 될까? (1) | 2023.03.06 |
---|---|
블록체인/Web3 스타트업 센디네어(Sendinair) (4) | 2022.09.23 |
Docker (0) | 2022.08.23 |
댓글