본문으로 건너뛰기
0%

OpenSea API란?

Alchemy Team headshot

작성자 Alchemy Team

2023년 2월 2일에 게시됨7분 읽기

NFT 소개

NFT, 즉 대체 불가능한 토큰(non-fungible token)은 블록체인상에서 고유성이 증명되는 디지털 항목이다. 이 자산군은 처음 등장한 이후 이미지, 비디오, 오디오 형식의 수집품, 게임 아이템, 디지털 아트, 이벤트 티켓, 도메인 네임, 심지어 실물 자산의 소유권 기록까지 포함하도록 확장되었다. 그리고 그 활용 사례는 계속 늘어나고 있다.

주로 Ethereum 블록체인과 연관되는 NFT는 ERC-721 & ERC-1155 토큰 표준에 기반하며, 후자로 구축할 경우 준대체성(semi-fungibility)—발행 시점에는 교환 가능/대체 가능하지만 상환 시점에는 교환 불가능/대체 불가능해지는 토큰을 만드는 능력—을 지원한다. 준대체성 토큰의 예로는 콘서트 티켓, 상품권, 쿠폰 등이 있다. 최근에는 취득 시 양도가 불가능한 "소울바운드(soulbound)" NFT에 대한 논의도 있는데, 이는 개인이 신원을 증명하고, 이벤트 참석을 확인하며, 탈중앙화 조직(DAO)에서 참여 기반의 분산된 거버넌스 권한을 보유할 수 있게 해준다. Soulbound NFT는 현재 2차 시장에서의 거래 가능성으로 인해 지배적인 위치를 차지하고 있는 사회적 신호 및 금전적 인센티브를 넘어 NFT 영역을 확장하는 역할을 할 것이다.

한편, NFT를 사고파는 시장이 계속 성장하여 Web3 영역에서 큰 비중을 차지하게 되었고, 2021년 말 기준 거래량이 410억 달러를 넘어서면서, 개발자들이 이 고유한 자산군을 기반으로 무언가를 구축하기 위해 몰려들고 있다.

NFT는 애플리케이션 개발자와 스마트 컨트랙트 개발자 모두에게 특별한 기회를 제공한다. 구축하려는 프로젝트가 블록체인과 직접 상호작용해야 하는지 여부와 관계없이, 소유권, 컬렉션, 이벤트에 대한 상세 정보를 담은 NFT 생태계의 색인에 접근할 수 있는 것이 중요한 요구사항이다. 스마트 컨트랙트 개발자에게는 NFT의 매매를 가능케 하는 기능을 통해 네이티브 NFT 마켓플레이스를 구축하는 능력 역시 그만큼 가치가 있다.

NFT 및 기타 디지털 자산을 위한 주요 P2P 마켓플레이스인 OpenSea는 자사의 API & SDK를 통해 이러한 핵심 개발자 요구사항을 충족시킨다. 이 툴셋은 통합과 사용이 간단하며, 오늘날 NFT를 다루는 대부분의 주류 의 근간을 이미 이루고 있다. 하지만 시장의 이렇게 큰 부분이 이렇게 중앙화된 시스템에 의존하는 것은 문제가 없지 않으며, 특히 최근 OpenSea 플랫폼이 안정성 문제를 겪고 있는 만큼, OpenSea의 API에 대한 여러 실행 가능한 대안들이 존재한다.

OpenSea란 무엇인가?

OpenSea는 디지털 상품을 위한 수평적인 P2P 마켓플레이스 역할을 하며, 사용자가 NFT, 희귀 디지털 아이템, 크립토 수집품을 사고팔고 경매에 부칠 수 있게 해준다. 개발자를 위해 OpenSea는 NFT 영역의 앱을 위한 광범위한 통합과 툴링을 제공한다. 이들은 (최초의 프로젝트들이 등록된 이후 계속 존재해온 만큼) 가장 큰 규모의 NFT 데이터셋을 색인화하여 제공하고, 인기 있는 컬렉션과 프로젝트를 위한 2차 시장 역할을 한다.

OpenSea는 널리 사용되는 여러 토큰과 체인을 지원하며, 그 목록을 적극적으로 확장하고 있다. ERC-721 대체 불가능 토큰과 ERC-1155 준대체성 토큰을 모두 지원하며, 멀티체인 플랫폼으로서 Ethereum 외에 Polygon과 Klaytn을 위한 툴링도 제공한다.

마켓플레이스와 더불어, OpenSea의 API 플랫폼은 서드파티 툴링을 구동하며, 이들의 REST API는 MetaMask, Coinbase Wallet, Rainbow 등 Web3 커뮤니티의 여러 대형 프로젝트의 근간이 되고 있다.

OpenSea의 개발자 플랫폼

OpenSea의 개발자 툴링은 개발자가 NFT에 대한 메타데이터에 접근하고 표시할 수 있게 해주는 REST API와, 이 API를 기반으로 하여 디지털 자산의 매매를 통한 NFT 마켓플레이스 구축과 같이 블록체인과 직접 상호작용하는 개발을 가능케 하는 소프트웨어 개발 키트(SDK)로 구성된다. OpenSea의 개발자 플랫폼은 다음과 같은 여러 핵심 가치를 제공한다.

API를 통한 애플리케이션 개발의 경우:

  1. NFT와 컬렉션을 프론트엔드에 간단하게 노출할 수 있다.
  2. OpenSea 데이터베이스 내 각 자산과 컬렉션에 대한 거래, 소유권 및 기타 세부 정보 메타데이터에 접근할 수 있다.
  3. 모든 사용자의 지갑을 모니터링하여 NFT 거래를 확인하고, 사용자의 자산 정보를 조회할 수 있다.
  4. 카테고리별 필터링 및 통계를 포함한 강력한 데이터 관리 도구를 제공한다.
  5. OpenSea는 API 사용을 쉽게 시작할 수 있는 포괄적인 문서를 제공한다.

그리고 SDK를 통한 스마트 컨트랙트 상호작용의 경우:

  1. OpenSea의 익스체인지 컨트랙트를 통해 이 영역에서 가장 큰 규모의 수집가 및 판매자 커뮤니티에 접근할 수 있다.
  2. 자체 컨트랙트를 배포하지 않고도 블록체인에 읽고 쓰는 이커머스 기능을 구축할 수 있다.
  3. 다양한 기능과 결제 구조를 갖춘 NFT 매매를 위한 네이티브 마켓플레이스를 구축할 수 있다.
  4. OpenSea는 플랫폼 간 표준화된 로열티 레지스트리(Royalty Registry)를 통한 내장 로열티 지원을 제공한다.
  5. OpenSea SDK 문서는 최신 Solidity 표준을 준수하도록 정기적으로 업데이트된다.

1. API 툴링

OpenSea API는 OpenSea 플랫폼상의 다음 색인화된 모델들에 대한 엔드포인트를 제공한다: 자산(개별 ERC-721/ERC-1155 토큰), NFT 컬렉션, 이벤트, 주문, 계정, 자산 컨트랙트. SDK 기능의 일부로서, 주문 API는 NFT 주문의 조회(GET)와 제출(POST)을 지원한다. OpenSea는 Mainnet과 (Ethereum Rinkeby 네트워크를 통한) Testnet API에 대한 접근을 모두 제공하므로, 개발자는 실제 돈을 쓰지 않고도 구축하고 테스트할 수 있다.

일부 API 엔드포인트(주문 및 이벤트)는 오용을 방지하기 위해 OpenSea가 접근을 제한한다. 이러한 엔드포인트로 구축하려면 OpenSea 개발자 포털에서 API 키를 요청할 수 있다.

이제 OpenSea의 API 모델들을 더 자세히 살펴보고, 각각의 범위와 기능에 대해 논의한다. 자주 사용되는 엔드포인트 및 API 호출도 아래에 제공된다.

1. Contracts

컨트랙트는 Ethereum 네트워크에 배포된 스마트 컨트랙트다. 하나의 소유자 계정과 연결된다. 컨트랙트는 미리 정해진 조건이 충족되면 자동으로 실행된다—OpenSea의 경우, 이는 NFT 컬렉션의 구매자와 판매자 사이에 존재하며 거래를 실행하는 데 사용된다.

2. Assets

자산은 컨트랙트로부터 발생하는 개별 토큰을 나타낸다. 하나 이상의 계정이 소유할 수 있으며, 각 자산에 대한 메타데이터를 포함한다. 이 데이터에는 자산의 ID, 소유자, 이름, 소속 컨트랙트에 대한 정보뿐 아니라 미디어(자산이 나타내는 이미지 URL)와 제작자가 정의한 속성이 포함된다. 자산은 OpenSea가 NFT를 지칭하는 방식이다.

3. Orders

주문은 계정이 제출한 자산 매매 의사다. 온체인이 아닌 곳에 존재하며, bid 또는 ask라는 유형을 갖는다. 또한 온체인에서 NFT와 매칭하는 데 필요한 메타데이터를 포함한다. 주문에는 두 참여자가 있다: 매도 또는 매수/입찰 의사를 밝힘으로써 판매에서 유동성을 만들고 첫 움직임을 취하는 메이커(maker), 그리고 아이템을 구매하거나 입찰을 수락함으로써 유동성을 가져가고 판매에서 두 번째 움직임을 취하는 **테이커(taker)**다. 주문은 특정 컬렉션 내에서 묶일 수 있다.

4. Events

이벤트는 자산의 상태 변화를 나타낸다. 전송, 판매, 발행 같은 온체인 이벤트뿐 아니라 입찰, 등록 같은 오프체인 이벤트도 있다. 이벤트는 비공개일 수 있다.

5. Accounts

계정은 지갑 주소와 연결된 사용자명을 통해 OpenSea 마켓플레이스상의 사용자를 나타낸다. 하나 이상의 자산을 소유할 수 있으며, 주문에서 메이커 또는 테이커 역할을 할 수 있다.

6. Collections

컬렉션은 하나 이상의 컨트랙트에 속한 자산들의 그룹이다. 로열티 정보와 소셜 링크 같은 메타데이터를 포함하며, 하나 이상의 권한 있는 편집자를 갖는다. 컬렉션은 완전히 오프체인에 존재한다. 제작자 로열티, 설명 등의 메타데이터와 연결된다. 인기 있는 NFT 컬렉션으로는 Bored Ape Yacht Club, CryptoPunks, Crypto Coven 등이 있다.

자주 사용되는 엔드포인트 및 API 호출의 예:

  • GET /assets: (asset_contract_address나 collection_slug 같은) 필터링 조건에 따라 토큰 목록을 가져온다.

  • GET /asset/:contract_address/:token_id

    • 특정 토큰에 대한 상세 정보(ERC-1155 토큰의 소유자 목록 및 해당 토큰의 모든 미체결 주문 포함)를 가져온다.
  • GET /collections

    • 컬렉션 목록을 가져온다. asset_owner 같은 필터링 옵션도 지원한다.
  • GET /collections/:slug/stats

    • 최신 플로어 가격을 포함하여 특정 컬렉션에 대한 통계 정보를 가져온다.
  • GET /events

    • 필터에 따라 이벤트 목록을 가져온다.
    • API 키 헤더(X-API-KEY: {KEY})가 필요하다.
  • GET /orders

    • 주문 목록을 가져온다. 주문 유형이나 특정 메이커/테이커 같은 필터링 옵션으로 조정할 수 있다.

OpenSea API 호출 및 엔드포인트의 전체 목록은 여기에서 확인할 수 있다.

2. SDK 툴링

OpenSea의 SDK 툴링은 애플리케이션에 이커머스 기능을 구축하려는 웹 개발자를 위한 npm 패키지다. SDK JavaScript 라이브러리를 통해 스마트 컨트랙트나 백엔드 오더북을 배포할 필요 없이 NFT 매매를 위한 네이티브 마켓플레이스를 구축할 수 있다.

OpenSea의 SDK는 위에서 살펴본 REST API를 기반으로 하며, Web3.js(EVM 상호작용을 위한 인기 패키지)를 사용하여 NFT 주문의 생성과 이행을 위한 블록체인 상호작용을 구동한다.

SDK는 자산 조회, 오퍼 생성, 리스팅 생성 및 아이템 판매, 크라우드세일 운영, 주문 조회, 아이템 구매, 오퍼 수락, 아이템이나 코인 전송(선물) 같은 기능을 지원한다.

또한 향후 리스팅 예약, 다른 사용자를 대신한 아이템 구매, NFT 대량 전송, NFT 번들 생성, Ether 대신 ERC-20 토큰을 결제 수단으로 사용, 비공개 경매 생성, OpenSea와의 판매 수수료 공유, 이벤트 리스닝 등을 포함한 고급 기능 세트도 제공한다.

(npm install을 통해) 설정이 쉬우며, OpenSea의 익스체인지와 네이티브하게 통합되어 매수/매도 주문을 직접 생성하고 이행할 수 있다.

OpenSea의 JavaScript SDK 라이브러리의 기능은 여기에서 설치하고 살펴볼 수 있다.

커뮤니티의 채택 및 관점

OpenSea의 개발자 플랫폼은 Web3 커뮤니티 전반에 걸쳐 폭넓게 채택되어 왔다. Coinbase Wallet, MetaMask, Rainbow, 3Box, Opera Wallet, Trust Wallet, Editorial, Balance, CryptoGoods와 같은 제품들, 그리고 가장 최근에는 NFT 프로필 사진 지원을 추가한 Twitter에 통합되어 있다.

시장 전반에 걸쳐 OpenSea의 중앙화된 API 색인에 이렇게 의존하는 것은 문제가 있는 것으로 드러났다. 최근 몇 주간 OpenSea는 일련의 "데이터베이스 장애"를 겪었고, 그 결과 OpenSea의 API에 의존하는 여러 서비스가 NFT를 표시하지 못했다. 이는 기초가 되는 토큰이나 블록체인 자체에는 영향을 미치지 않지만, OpenSea의 장애가 지속되는 동안 NFT 데이터에 의존하는 모든 사용자 대상 서비스에 지속적인 다운타임을 초래한다.

이러한 장애들은 NFT 영역, 그리고 더 넓게는 Web3 생태계 전반의 서비스들의 탈중앙화 부족에 대한 추가적인 논의로 이어졌다. 이와 관련하여 NFT 색인의 다양한 수준의 탈중앙화를 목표로 하는 프로젝트들이 진행 중이지만, 아직 시장에 완전히 탈중앙화된 플레이어는 없다.

그럼에도 불구하고, 최근 사건들은 개발자가 OpenSea를 사용할지 결정하기 전에 주요 NFT API 제공업체를 모두 고려해야 함을 시사한다.

OpenSea의 대안들

OpenSea 외에, 가장 널리 사용되고 기능이 풍부한 NFT API 몇 가지를 아래에 자세히 설명한다. 현재 NFT 마켓플레이스 및 관련 기능 생성에 있어 OpenSea의 SDK에 상응하는 서비스는 없다는 점에 유의해야 한다.

1. Alchemy NFT API

Web3 개발 인프라 플랫폼인 Alchemy는 최근 자사의 NFT API 출시를 발표했으며, 이는 OpenSea와 거의 같은 방식으로 ERC-721과 ERC-1155 양쪽에 걸쳐 NFT 메타데이터에 대한 접근을 제공한다. 현재 여러 블록체인에서 NFT 메타데이터에 접근하는 기능, NFT 소유자를 찾는 기능, 실시간 정보 업데이트 등을 지원한다. Alchemy의 API는 Ethereum, Polygon, Flow Mainnet에서 사용 가능하며, Solana와 Avalanche를 시작으로 다른 체인에 대한 지원도 계획되어 있고, Ethereum과 Polygon Testnet에서도 사용 가능하다. 현재 Adobe Behance, Shopify, Dapper Labs, SuperRare 등의 NFT 플랫폼을 구동하고 있다.

Alchemy의 NFT API에 대해 더 알아보려면 여기를, 문서는 여기를 참고하라.

2. NFT port

또 다른 NFT API 제공업체는 NFT 인프라 플랫폼인 NFTPort로, 다음과 같은 기능을 지원한다:

  • Polygon 체인에서의 NFT 발행.
  • 동적 NFT를 지원하는 OpenSea 호환 컨트랙트 배포, 그리고 프로그래매틱 로열티 관리에 대한 계획된 지원.
  • 온체인 거래/주문 데이터를 포함한 NFT 데이터의 실시간 색인화 및 캐싱.
  • 멀티체인 NFT 검색, NFT 추천, 위조 NFT 탐지를 포함한 더 고급 API.

NFTPort에 대해 더 알아보려면 여기를, 문서는 여기를 참고하라.

3. Uniswap token lists

NFT 데이터를 위한 완전히 탈중앙화된 색인이라는 아이디어를 선호하는 개발자를 위해, Uniswap의 Token Lists는 OpenSea 수준의 중앙화와, 네트워크의 개별 사용자가 지갑에 개인적으로 큐레이션한 NFT 컬렉션 사이의 중간 지점 역할을 한다. Uniswap의 방식에서는 커뮤니티가 함께 모여 NFT 컬렉션을 등록함으로써, 탈중앙화를 만들어내고 색인화 과정에 신뢰를 더할 수 있다.

NFT 인터페이스를 더욱 탈중앙화하려는 Uniswap의 시도에 대해 더 알아보려면 여기를, 직접 토큰 목록을 만들어보려면 여기를 참고하라.

4. 완전한 탈중앙화 색인화... 머지않아 실현될까?

최근의 OpenSea 장애에 대응하여, MetaMask의 창립자 중 한 명인 Dan Finlay는 OpenSea에 대한 중앙화된 의존에서 벗어날 수 있는 몇 가지 대안을 여기에서 설명했다.

그는 글에서 다음과 같이 주장한다: "더 나은 해법은 자산 탐지를 클라이언트 중심의 동의 행위로 만드는 것이다."

EIP-747을 통해 MetaMask는 이미 사이트가 사용자의 지갑에 커스텀 자산을 제안할 수 있게 하며, 이때 지갑 자체가 자산의 색인이 되어 중앙 서버가 필요 없어진다. MetaMask는 이 기능을 NFT까지 확장하여 성능도 개선하는 완전히 탈중앙화된 시스템을 만들려는 것으로 보인다.

이러한 NFT API가 점점 더 많이 시장에 나오면서, 개발자들은 자신과 프로젝트에 가장 적합한 탈중앙화 수준뿐 아니라 이러한 서비스의 제공업체를 선택하는 데 있어서도 더 많은 선택지를 갖게 되며, 그 결과 시장 전반의 장애도 줄어들게 된다.

마치며

OpenSea의 NFT 개발자 플랫폼은 견고하고 기능이 완비되어 있으며 배포와 사용이 쉽다. 스마트 컨트랙트와 직접 상호작용하고자 하는지 여부와 관계없이 NFT 영역에 진입하려는 개발자에게 광범위한 데이터 읽기/쓰기 기능을 제공한다. NFT API 서비스 시장을 선도하는 제공업체이며, 거기에는 그럴 만한 이유가 있다.

OpenSea의 API 자체는 비교적 안정적이지만, 이 회사의 툴링에 대한 폭넓은 의존은 최근 몇 주간 그랬듯이 만약 장애가 발생하면 NFT 시장의 상당 부분을 함께 무너뜨린다는 것을 의미한다. 이 영역의 위험을 충분히 낮추려면, 개발자는 자신의 프로젝트를 구축할 다양한 탈중앙화 및 중앙화 옵션을 계속 탐색해야 하며, 인프라 제공업체는 OpenSea의 강력한 기능 세트에 맞서고 경쟁하기 위해 노력해야 한다.

개발자가 어떤 API를 선택하든, 이 자산군을 둘러싼 생태계와 툴링이 계속 성장함에 따라 NFT 영역은 빠르게 광범위한 채택과 지속적인 혁신을 향해 나아가고 있다. Web3 개발자로 시작하기에 지금보다 더 좋은 때는 없었다!

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.