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 | 반환받을 트랜잭션의 인코딩 여부
|
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
1 2 3 4 5 6 7 8 9 10 11 |
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
1 2 3 4 5 6 7 8 9 |
{ "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 | 반환받을 트랜잭션의 인코딩 여부
|
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
1 2 3 4 5 6 7 8 9 10 11 12 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// 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 | 반환받을 트랜잭션의 인코딩 여부
|
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
1 2 3 4 5 6 7 8 9 10 11 12 |
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
1 2 3 4 5 6 7 8 9 |
{ "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
1 2 3 4 5 |
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
1 2 3 4 5 6 7 |
{ "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
1 2 3 4 5 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "code": 0, "message": "success", "data": { "tokens": [ { "owner": "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463", "nftAddress": "0xeBd9144485089EbE248f8490984A60579407c262", "tokenId": "2" } ] } } |