인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

setung님의 프로필 이미지
setung

작성한 질문수

[D.P.(DappProject)] 디앱 프로젝트(NFT 생성, NFT 구매 및 판매)

보유한 NFT를 조회하는 방법이 없을까요?

작성

·

696

1

안녕하세요.
 
다름이 아니라 여러 컨트랙을 통해 NFT를 발급을 해보았는데요.
지갑 계정을 통해 보유하고 있는 NFT들을 조회하는 방법이 없을까요?
 
rinkeby 환경에서 테스트를 하고 있는데 이더스캔에서는 별도의 api가 없네요.
 
답변 부탁드리겠습니다.

답변 1

1

h662님의 프로필 이미지
h662
지식공유자

단순 토큰 ID만을 조회하는 거라면 balanceOf(지갑주소) 함수로 조회가 가능합니다.

그 외에 메타데이터같은 추가 정보를 같이 조회하려는 거라면 스마트컨트랙트에서 새로운 함수를 구성하셔야 합니다.

setung님의 프로필 이미지
setung
질문자

답변 감사드립니다. ^^

balanceOf 함수는 계정이 보유하고 있는 토큰 아이디가 아니라 갯수를 반환 하는것 같습니다.

 

제가 만든 스마트 컨트랙의 NFT를 조회하는건 문제가 없습니다.

문제는 예를들면 메타콩즈나 크립토펑크와 같은 다른 스마트 컨트랙의 NFT도 제가 소유하고 있다고 했을 때,

제가 개발하고 있는 사이트에서 제가 가지고 있는 NFT를 뿌려주고 싶습니다.

 

현재 제가 생각한 방법으로는 etherscan api에서 제공하는 

Get a list of 'ERC721 - Token Transfer Events' by Address API를 호출해

특정 계정의 NFT event를 모두 조회하고, 그 중에 NFT를 보내고 받은 event를 식별하고

처리해 보여주려고 하고 있습니다.

이때 메타데이터를 불러오는 call이 별도로 필요한데요..

 

제가 생각한 방법이 다소 복잡해서, 간단한 방법이 없나 여쭤보았습니다.
OpenaSea는 어떻게 잘 뿌려주는지 궁금하네요 ㅠㅠ

 

h662님의 프로필 이미지
h662
지식공유자

아 질문을 잘못 이해했었네요

말씀하신대로 이더스캔 같은 블록체인 네트워크에서 제공하는 API를 활용하셔야 할 것 같습니다.

오픈씨 정도의 서비스가 될려면 아마 데이터를 캐싱하는 부분이 필요할 것 같네요

Moralis 같은 web3 개발 서비스를 이용하시거나 https://moralis.io/

조회하시려는 nft의 종류가 직접 만든 프로젝트들 뿐이라면 저라면 스마트 컨트랙트를 하나 만들어서 구현할 것같습니다.

setung님의 프로필 이미지
setung
질문자

오 Moralis같은 서비스들도 있군요. 

감사합니다!

 

setung님의 프로필 이미지
setung

작성한 질문수

질문하기