본문 바로가기
SendInAir

SendInAir NFT API

by Sendinair 2022. 8. 23.

이 글에선 초급 개발자분들 및 코딩에 대한 기본적인 지식을 가지고 계신 일반인 분들도 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에 관련된 많은 제품들이 있습니다.

 

준비물

  1. MetaMask
  2. 코드 편집기(Visual Studio Code 추천)
  3. 터미널
  4. Docker
  5. Docker-compose
  6. Git
  7. 구축된 스마트 컨트랙트 주소
  8. Insomnia (API 테스트 도구)

 

! 이 예시는 맥북 M1 PRO에서 크롬 브라우저, Visual Studio Code 그리고 이더리움 네트워크 기준으로 작성되었습니다.

 

! 혹시 아직 스마트 컨트랙트를 해본 적이 없으신 분들은 마지막에 하는 방법이 소개되어 있으니 이를 참조해주시기 바랍니다.

 

준비가 다 되신 분들은 순서대로 따라해주시기 바랍니다!

 

  1. 제품을 받기 원하시는 폴더로 들어가서 터미널을 실행시켜주시기 바랍니다. (저같은 경우엔 Misc란 이름의 폴더 안에서 작업했습니다.)

 

  1. 명령어 git clone git@github.com:sendinair/sendinair-nft-server.git 를 입력해주세요.

 

  1. Docker를 켜주신 후에 프로젝트 폴더에서 docker-compose -f production.yml up --build -d 를 입력해주시면 실행됩니다.
  2. 축하드립니다! API를 사용하시기 위한 준비가 완료되었습니다!



API사용법

 

여기를 통해 테스트용 API들을 받으실 수 있습니다.

링크로 들어가셔서 RUN SENDINAIR-NFT-SERVER를 받으시면 나오는 Insomnia에서 OK해주시고

sendinair-nft-server 콜렉션으로 들어가주시면 됩니다

 

저희 API는 이더리움과 클레이튼을 지원합니다.

 

API 목록

 

이더리움

  1. get token info

: 해당 tokenId의 정보를 가져옵니다.

  1. get token uri

: 해당 tokenId의 uri를 가져옵니다.

  1. ownerOf

: 해당 tokenId의 소유주를 알려줍니다.

  1. eth nft balance - addr1

: 해당 address의 지갑에 있는 NFT목록을 가져옵니다.

  1. eth nft balance - addr2

: 해당 address의 지갑에 있는 NFT목록을 가져옵니다.

  1. mint eth nft - addr1

: 해당 tokenUri(json파일)를 recipient의 주소의 지갑에 생성합니다

  1. transfer eth nft - add1 -> add2

: 해당 privateKey의 지갑에서 toAddr에 tokenId에 해당하는 ETH NFT를 전송합니다.

  1. transfer eth nft - add2 -> add1

: 해당 privateKey의 지갑에서 toAddr에 tokenId에 해당하는 ETH NFT를 전송합니다.

  1. 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

댓글