콘텐츠로 이동

Lock API

Lock API는 NFT 토큰을 거래할 수 없도록 잠그거나 다시 거래할 수 있도록 잠금 해제하는 기능을 제공합니다.

잠금 컨트랙트 배포

잠금 컨트랙트를 배포하는 트랜잭션을 생성합니다. 잠금 컨트랙트는 지갑에 있는 NFT 토큰을 거래할 수 없도록 잠그거나 다시 거래할 수 있도록 잠금 해제하는 기능을 제공합니다.

Request URL

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

Header parameters

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

Request body

필드명 설명 타입 필수 여부
name 잠금 컨트랙트 이름 string Y
from 잠금 컨트랙트를 배포할 지갑 주소 string Y
executer 잠긴 NFT를 잠금 해제할 수 있는 지갑 주소입니다. 기본값은 from에 입력한 주소입니다. 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

curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'Content-Type: application/json' 
  -d '{
  "encoded": true,
  "name": "lock_test",
  "from": "0xdcd51770d06B54204abd8c30A25b4583D4cABa39"
}'

Response sample

{
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": "02f8738301388181c2846fc23ac0846fc23ad882cdc49494853bdc9c6add50d7842d1a3117fab38545747080b8...",
    "hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
    "requestId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
  }
}

NFT 잠금

NFT 잠금이란 발행한 NFT를 거래할 수 없도록 잠그는 것입니다. 게임 유저가 게임 아이템을 민팅해서 NFT를 얻은 후 다시 게임에서 해당 아이템 사용을 원할 경우 NFT를 거래할 수 없도록 잠급니다. NFT 소유자(owner)는 보유한 NFT(tokenId)를 사용할 수 없도록 잠금 설정 트랜잭션을 생성합니다.

Request URL

Live URL https://bc-api.qpyou.cn/core/v1/nft/contract/{contract}/lock
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/nft/contract/{contract}/lock
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
lockContract 잠금 컨트랙트 주소 string Y
tokenId NFT ID 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

curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/nft/contract/0x777358b228a4720ffa088516294b324f8d24639c/lock' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'Content-Type: application/json' 
  -d '{
  "from": "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463",
  "lockContract": "0xD6e69da7f1be111394dfef4C48eaC9b52ddf2Fd0",
  "tokenId": "1",
  "encoded": true
}'

Response sample

// When the encoded is set to true 
{
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": "02f8d3830138810b8458e948068458e948168302e71494ebd9144485089ebe248f8490...",
    "hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
    "requestId": "5743f0aa-0323-47fc-a3da-173eee27bbe4"
  }
}
// When the encoded is set to false
{
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": {
      "from": "0xdcd51770d06B54204abd8c30A25b4583D4cABa39",
      "to": "0xebd9144485089ebe248f8490984a60579407c262",
      "data": "0xb88d4fde000000000000000000000000dcd51770d06b54204abd8c30a25b4583d4cab...",
      "nonce": 11,
      "chainId": 80001,
      "gas": 190228,
      "maxFeePerGas": 1491259270,
      "maxPriorityFeePerGas": 1491259255
    },
    "hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
    "requestId": "dd33ddd8-31fa-4491-9c3c-2f912f7059bc"
  }
}

NFT 잠금 해제

NFT(tokenId)를 사용할 수 있도록 토큰 소유자(owner)가 잠금 설정을 해제하는 트랜잭션을 생성합니다.

Request URL

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

Path parameters

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

Header parameters

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

Request body

필드명 설명 타입 필수 여부
nftContract NFT 컨트랙트 주소 string Y
from 잠금 컨트랙트를 배포한 계정(잠금 컨트랙트 소유자) 지갑 주소 string Y
tokenId NFT ID 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

curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/0xa245824a24daf3b312d3f59c7debf162c4993e8b/unlock' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'Content-Type: application/json' 
  -d '{
  "nftContract": "0xdcd51770d06B54204abd8c30A25b4583D4cABa39",
  "from": "0xdcd51770d06B54204abd8c30A25b4583D4cABa39",
  "tokenId": "1",
  "encoded": true
}'

Response sample

{
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": "02f873830138810c8451f4d5c08451f4d5cf83018c0694572f47db51a98...",
    "hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
    "requestId": "0e40db96-8964-410f-81e2-a968269872d4"
  }
}

잠금 설정한 NFT를 소유한 계정 조회

잠금 설정한 NFT(tokenId)의 소유자 계정을 조회합니다.

Request URL

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

Path parameters

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

Header parameters

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

Query parameters

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

Responses

필드명 설명 타입
code api 호출 결과 코드, 0:성공 number
message 결과 메시지 string
data API 응답 데이터 json
data.owner NFT 소유자 계정 주소 string

Request sample

curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/0xa245824a24daf3b312d3f59c7debf162c4993e8b/token/1/account?nftContract=0x777358b228a4720ffa088516294b324f8d24639c' 
  -H 'accept: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'x-network: polygon'

Response sample

{
  "code": 0,
  "message": "success",
  "data": {
    "owner": "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463"
  }
}

잠금 설정한 NFT 조회

잠금 컨트랙트(contract) 주소에서 특정 소유자(owner)의 잠금 설정한 NFT를 조회합니다.

Request URL

Live URL https://bc-api.qpyou.cn/core/v1/lock/contract/{contract}/account/{owner}/tokens
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/{contract}/account/{owner}/tokens
HTTP Method GET
Content-Type application/json

Path parameters

필드명 설명 타입 필수 여부
contract 잠금 컨트랙트 주소 string Y
owner NFT 소유자 주소 string Y

Header parameters

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

Responses

필드명 설명 타입
code api 호출 결과 코드, 0:성공 number
message 결과 메시지 string
data API 응답 데이터 json
data.tokens 잠금 설정한 NFT 목록 array
data.tokens.owner NFT 소유자 지갑 주소 string
data.tokens.nftAddress NFT 컨트랙트 주소 string
data.tokens.tokenId NFT ID string

Request sample

curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/0xa245824a24daf3b312d3f59c7debf162c4993e8b/account/0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765/tokens' 
  -H 'accept: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'x-network: polygon'

Response sample

{
  "code": 0,
  "message": "success",
  "data": {
    "tokens": [
      {
        "owner": "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463",
        "nftAddress": "0xeBd9144485089EbE248f8490984A60579407c262",
        "tokenId": "2"
      }
    ]
  }
}