Extension API는 표준(ERC-721) API가 지원하지 않는 기능들을 제공합니다.

NFT 로열티 정보 조회

토큰 ID(tokenId)와 NFT 판매금액(salePrice)을 사용해 로열티를 지급받을 계정 주소와 로열티 금액을 조회합니다. 로열티는 ERC-2981/CW-2981 인터페이스를 구현한 컨트랙트에서 NFT 발행 시 설정할 수 있습니다.

Request URL

Live URL https://bc-api.qpyou.cn/core/v1/nft/extension/{contract}/royalty/{tokenId}
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/nft/extension/{contract}/royalty/{tokenId}
HTTP Method GET
Content-Type application/json

Path Parameters

필드명 설명 타입 필수 여부
contract NFT 컨트랙트 주소 string Y
tokenId NFT ID string Y

Header Parameters

필드명 설명 타입 필수 여부
x-network 블록체인 네트워크{ploygon, xpla} string Y
Authorization API를 호출하기 위한 인증 토큰 string Y

Query Parameters

필드명 설명 타입 필수 여부
salePrice NFT 판매금액 string Y

Responses

필드명 설명 타입
code api 호출 결과 코드, 0:성공 number
message 결과 메시지 string
data API 응답 데이터 json
data.receiver 로열티를 받을 지갑 주소 string
data.amount 로열티 금액 string

Request Sample

Response Sample

NFT 발행

특정 주소(to)로 토큰을 발행하는 트랜잭션을 생성합니다. 발행할 NFT 정보(mintMsg.tokenId, mintMsg.metadata 등)를 배열에 담아 호출하며, NFT 정보를 IPFS(InterPlanetary File System)에 업로드한 후 토큰으로 발행합니다. NFT API 기능을 확장한 API로 한 번에 최대 200개 토큰을 발행할 수 있고 로열티를 설정할 수 있습니다. from은 발행 권한을 가진 계정이어야 합니다.

Request URL

Live URL https://bc-api.qpyou.cn/core/v1/nft/extension/{contract}/mint
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/nft/extension/{contract}/mint
HTTP Method POST
Content-Type application/json

Path Parameters

필드명 설명 타입 필수 여부
contract NFT 컨트랙트 주소 string Y

Header Parameters

필드명 설명 타입 필수 여부
x-network 블록체인 네트워크{ploygon, xpla} string Y
Authorization API를 호출하기 위한 인증 토큰 string Y

Request Body

필드명 설명 타입 필수 여부
from NFT를 발행하는 계정 주소 string Y
mintMsg 발행 시 필요한 정보입니다. JSON 데이터 array 형식이므로 여러 계정에게 발행할 수 있습니다. array Y
mintMsg.to NFT를 받을 지갑 주소 string Y
mintMsg.tokenId NFT ID입니다. NFT 발행자가 지정하며 중복을 허용하지 않습니다.

  • Polygon: 문자열, 정수(0~2256-1)만 사용 가능
  • XPLA: 문자열만 사용 가능
string Y
mintMsg.royaltyPercentage 로열티 비율입니다. NFT가 판매 또는 재판매될 때마다 NFT 작성자 또는 권리를 가진 보유자에게 지불할 금액입니다. 총 판매금액에 로열티로 지불할 비율이 설정됩니다. 아티스트 및 기타 NFT 제작자에게 지속적인 자금을 지원하려는 NFT 마켓 플레이스를 위한 기능입니다. NFT 전송 시 수취인에게 로열티가 자동으로 지불되지 않으며, 마켓 플레이스에서 NFT 로열티를 확인하고 수취인에게 지불합니다. OpenSea에 적용된 기능입니다.

  • Polygon: 소수점 둘째자리까지 허용합니다.
  • XPLA: 소수점을 허용하지 않습니다.
number N
mintMsg.metadata 메타데이터

  • 메타데이터 입력 시 타입 및 url(animationUrl, youtubeUrl, externalUrl) 포맷을 확인합니다. 정확하지 않은 데이터 전송 시 API가 정상 작동하지 않습니다.
  • 메타데이터가 IPFS에 저장될 때는 OpenSea와 연동 가능한 snake case로 저장됩니다(예시: animationUrlanimation_url)
json Y
mintMsg.metadata.name NFT 이름 string Y
mintMsg.metadata.description NFT 설명 string N
mintMsg.metadata.image NFT 이미지 주소입니다. IPFS에 업로드하기 위한 외부에서 접근 가능한 웹사이트 주소 또는 Public IPFS 주소입니다. string Y
mintMsg.metadata.animationUrl NFT 관련 애니메이션 주소 string N
mintMsg.metadata.youtubeUrl 유투브 주소 string N
mintMsg.metadata.imageData NFT 이미지 정보 string N
mintMsg.metadata.externalUrl 외부로 연결되는 주소 string N
mintMsg.metadata.backgroundColor OpenSea에서 토큰의 배경색 정보 string N
mintMsg.metadata.attributes 메타데이터 속성 정보입니다. 메타데이터에 명시하지 않았던 부가적인 정보입니다. json N
mintMsg.metadata.attributes.traitType attributes를 구성하는 항목명입니다. string N
mintMsg.metadata.attributes.maxValue trait 최대값 number N
mintMsg.metadata.attributes.value trait값입니다. mintMsg.metadata.attributes.maxValue보다 작아야 합니다. mintMsg.metadata.attributes.displayType이 date이면 value에 unix timestamp (seconds)를 입력합니다. string 또는 number N
mintMsg.metadata.attributes.displayType trait 노출 유형입니다. 기본값은 string 타입입니다.

  • number: Number 타입
  • boost_percentage: OpenSea Boosts에 % 정보로 노출
  • boost_number: OpenSea Boosts에 노출
  • date: 날짜 형식으로 노출(예시: Tuesday, January 1st, 2019)
string N
encoded 반환받을 트랜잭션의 인코딩 여부

  • true: data.rawTx으로 인코딩된 Raw Transaction String을 받습니다.
  • false: data.rawTx으로 인코딩을 디코딩한 JSON 결과값을 받습니다.
boolean N

Responses

필드명 설명 타입
code api 호출 결과 코드, 0:성공 number
message 결과 메시지 string
data API 응답 데이터 json
data.rawTx 트랜잭션 데이터 string 또는 json
data.hashedTx 해시한 data.rawTx입니다. API 헤더 x-network가 polygon이고 Request Body from이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. string
data.requestId API 요청을 식별할 수 있는 고유값 string

Request Sample

Response Sample

NFT 컨트랙트 배포

NFT 컨트랙트를 배포하는 트랜잭션을 생성합니다. 배포할 컨트랙트는 ERC-721/CW-721 표준을 지원하며 아래 확장 기능들도 지원합니다.

  • Bulk Minting
  • Royalty (ERC-2981/CW-2981)

Request URL

Live URL https://bc-api.qpyou.cn/core/v1/nft/extension/contract
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/nft/extension/contract
HTTP Method POST
Content-Type application/json

Header Parameters

필드명 설명 타입 필수 여부
x-network 블록체인 네트워크{ploygon, xpla} string Y
Authorization API를 호출하기 위한 인증 토큰 string Y

Request Body

필드명 설명 타입 필수 여부
from NFT 컨트랙트를 배포하는 계정 지갑 주소 string Y
name NFT 컨트랙트 이름 string Y
symbol NFT 컨트랙트 심볼 string Y
minter NFT 컨트랙트에서 NFT를 발행할 수 있는 계정 지갑 주소 string Y
encoded 반환받을 트랜잭션의 인코딩 여부

  • true: data.rawTx으로 인코딩된 Raw Transaction String을 받습니다.
  • false: data.rawTx으로 인코딩을 디코딩한 JSON 결과값을 받습니다.
boolean N

Responses

필드명 설명 타입
code api 호출 결과 코드, 0:성공 number
message 결과 메시지 string
data API 응답 데이터 json
data.rawTx 트랜잭션 데이터 string 또는 json
data.hashedTx 해시한 data.rawTx입니다. API 헤더 x-network가 polygon이고 Request Body from이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. string
data.requestId API 요청을 식별할 수 있는 고유값 string

Request Sample

Response Sample