コンテンツにスキップ

ロックAPI

ロックAPIは、NFTの取引をロックしたり、再度取引できるように解放したりする機能を提供します。

デプロイロック契約

ロック契約をデプロイするトランザクションを作成します。ロック契約は、NFTをウォレットにロックし、他のアカウントと取引されるのを防ぐか、再び取引できるように解放します。

リクエストURL

ライブURL https://bc-api.qpyou.cn/core/v1/lock/contract
サンドボックスURL https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract
HTTPメソッド POST
コンテンツタイプ application/json

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
x-network ブロックチェーンネットワーク 文字列 Y
Authorization APIを呼び出すために必要な認証トークン 文字列 Y

リクエストボディ

フィールド名 説明 タイプ 必須
name ロック契約の名前 文字列 Y
from ロック契約をデプロイするウォレットアドレス 文字列 Y
executer これはロックされたNFTをアンロックできるウォレットアドレスです。デフォルト値はfromアドレスです。 文字列 N
encoded 戻されるトランザクションがエンコードされているかどうか true: エンコードされた生トランザクション文字列(data.rawTx)を受け取ります。 false: デコードされたdata.rawTx(JSON)を受け取ります。 ブール値 N

応答

フィールド名 説明 タイプ
code APIリクエスト結果コード、0: 成功 数字
message 結果メッセージ 文字列
data APIレスポンスデータ json
data.rawTx トランザクションデータ 文字列またはjson
data.hashedTx これはハッシュ化された data.rawTx です。この値は、APIヘッダー x-network が "polygon" であり、リクエストボディ from がマルチシグウォレットアドレスの場合にのみ返されます。 文字列
data.requestId 各APIリクエストを識別できる一意の値 文字列

リクエストサンプル

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"
}'

レスポンスサンプル

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

ロックNFT

NFT所有者アカウント(from)がNFT(tokenId)をロック契約に送信するトランザクションを作成します。NFTがロック契約に送信されると、このNFTの所有権はロック契約に移転し、以前の所有者はこのNFTを別のアカウントに送信できなくなります。

リクエストURL

ライブURL https://bc-api.qpyou.cn/core/v1/nft/contract/{contract}/lock
サンドボックスURL https://sandbox-bc-api.qpyou.cn/core/v1/nft/contract/{contract}/lock
HTTPメソッド POST
コンテンツタイプ application/json

パスパラメータ

フィールド名 説明 タイプ 必須
contract NFTコントラクトアドレス 文字列 Y

ヘッダー パラメータ

フィールド名 説明 タイプ 必須
x-network ブロックチェーンネットワーク 文字列 Y
Authorization APIを呼び出すために必要な認証トークン 文字列 Y

リクエストボディ

フィールド名 説明 タイプ 必須
from NFT所有者のウォレットアドレス 文字列 Y
lockContract NFTロック契約のアドレス 文字列 Y
tokenId NFT ID 文字列 Y
encoded 戻り値のトランザクションがエンコードされているかどうか true: エンコードされた生トランザクション文字列(data.rawTx)を受け取ります。 false: デコードされた data.rawTx(JSON)を受け取ります。 ブール値 N

応答

フィールド名 説明 タイプ
code APIリクエスト結果コード、0: 成功 数字
message 結果メッセージ 文字列
data APIレスポンスデータ json
data.rawTx トランザクションデータ 文字列またはjson
data.hashedTx これはハッシュ化されたdata.rawTxです。この値は、APIヘッダーx-networkが「polygon」で、リクエストボディfromがマルチシグウォレットアドレスのときのみ返されます。 文字列
data.requestId 各APIリクエストを識別できるユニークな値 文字列

リクエストサンプル

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
}'

レスポンスサンプル

// 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)をNFT所有者アカウントに返送するトランザクションを作成します。NFTがNFT所有者アカウントに返送されると、このアカウントはこのNFTの取引を再開できます。

リクエストURL

ライブURL https://bc-api.qpyou.cn/core/v1/lock/contract/{contract}/unlock
サンドボックスURL https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/{contract}/unlock
HTTPメソッド POST
コンテンツタイプ application/json

パスパラメータ

フィールド名 説明 タイプ 必須
contract NFTロック契約のアドレス 文字列 Y

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
x-network ブロックチェーンネットワーク 文字列 Y
Authorization APIを呼び出すために必要な認証トークン 文字列 Y

リクエストボディ

フィールド名 説明 タイプ 必須
nftContract NFTコントラクトアドレス 文字列 Y
from ロックコントラクトをデプロイしたアカウント(ロックコントラクトの所有者)のウォレットアドレス 文字列 Y
tokenId NFT ID 文字列 Y
encoded 戻り値のトランザクションがエンコードされているかどうか true: エンコードされた生トランザクション文字列(data.rawTx)を受け取ります。 false: デコードされた data.rawTx(JSON)を受け取ります。 ブール値 N

応答

フィールド名 説明 タイプ
code APIリクエスト結果コード、0: 成功 数字
message 結果メッセージ 文字列
data APIレスポンスデータ JSON
data.rawTx トランザクションデータ 文字列またはJSON
data.hashedTx これはハッシュ化されたdata.rawTxです。この値は、APIヘッダーx-networkが「polygon」で、リクエストボディfromがマルチシグウォレットアドレスのときのみ返されます。 文字列
data.requestId 各APIリクエストを識別できるユニークな値 文字列

リクエストサンプル

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
}'

応答サンプル

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

ロックされたNFTの所有者情報を取得する

ロックされたNFT(tokenId)を所有するアカウントの情報を返します。

リクエストURL

ライブURL https://bc-api.qpyou.cn/core/v1/lock/contract/{contract}/token/{tokenId}/account
サンドボックスURL https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/{contract}/token/{tokenId}/account
HTTPメソッド GET
コンテンツタイプ application/json

パスパラメータ

フィールド名 説明 タイプ 必須
contract NFTロック契約のアドレス 文字列 Y
tokenId NFT ID 文字列 Y

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
x-network ブロックチェーンネットワーク 文字列 Y
Authorization APIを呼び出すために必要な認証トークン 文字列 Y

クエリパラメータ

フィールド名 説明 タイプ 必須
nftContract NFTコントラクトアドレス 文字列 Y

応答

フィールド名 説明 タイプ
code APIリクエスト結果コード、0: 成功 数字
message 結果メッセージ 文字列
data APIレスポンスデータ JSON
data.owner NFT所有者のアドレス 文字列

リクエストサンプル

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

応答サンプル

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

ロックされたNFT情報を取得

ロック契約(contract)にあるオーナー(owner)のロックされたNFTの情報を取得します。

リクエストURL

ライブURL https://bc-api.qpyou.cn/core/v1/lock/contract/{contract}/account/{owner}/tokens
サンドボックスURL https://sandbox-bc-api.qpyou.cn/core/v1/lock/contract/{contract}/account/{owner}/tokens
HTTPメソッド GET
コンテンツタイプ application/json

パスパラメータ

フィールド名 説明 タイプ 必須
contract NFTロック契約のアドレス 文字列 Y
owner NFT所有者のアドレス 文字列 Y

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
x-network ブロックチェーンネットワーク 文字列 Y
Authorization APIを呼び出すために必要な認証トークン 文字列 Y

応答

フィールド名 説明 タイプ
code APIリクエスト結果コード、0: 成功 数値
message 結果メッセージ 文字列
data APIレスポンスデータ JSON
data.tokens ロックされたNFTのリスト 配列
data.tokens.owner NFT所有者のウォレットアドレス 文字列
data.tokens.nftAddress NFT契約アドレス 文字列
data.tokens.tokenId NFT ID 文字列

リクエストサンプル

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

応答サンプル

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