コンテンツにスキップ

拡張API

拡張APIは、標準(ERC-721)APIが提供しない機能を提供します。

NFTロイヤリティ情報を取得

トークンID(tokenId)とNFTの販売価格(salePrice)を介して、ロイヤリティとこのロイヤリティを受け取るアドレスを取得します。ロイヤリティは、ERC-2981/CW-2981インターフェースが実装された契約でNFTをミントする際に設定できます。

リクエストURL

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

パスパラメータ

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

ヘッダーパラメータ

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

クエリパラメータ

フィールド名 説明 必須
salePrice NFT販売の金額 文字列 Y

応答

フィールド名 説明 タイプ
code APIリクエスト結果コード、0: 成功 数字
message 結果メッセージ 文字列
data APIレスポンスデータ JSON
data.receiver ロイヤリティを受け取るウォレットアドレス 文字列
data.amount ロイヤリティの金額 文字列

リクエストサンプル

curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/nft/extension/0xA3F4308Ed655f962dD7CA180545c21718fAE49AD/royalty/1?salePrice=0.5' 
  -H 'accept: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb...' 
  -H 'x-network: polygon' 

応答サンプル

{
  "code": 0,
  "message": "success",
  "data": {
    "receiver": "0xD6e69da7f1be111394dfef4C48eaC9b52ddf2Fd0",
    "amount": "0.0375"
  }
}

NFTをミントする

特定のアドレス(to)にトークンをミントするトランザクションを作成します。このAPIを呼び出すには、必要なNFT情報(mintMsg.tokenIdmintMsg.metadataなど)を配列に読み込み、このAPIがNFT情報をIPFS(InterPlanetary File System)にアップロードし、NFTをミントします。このAPIはNFT APIの機能を拡張し、最大200トークンを同時にミントでき、ロイヤリティを設定することができます。fromはミントする権利を持つアカウントでなければなりません。

Note
  • APIを介して作成されたデジタル資産とそのメタデータ(mintMsg.metadata)は、パブリックIPFS(InterPlanetary File System)に登録されます。
  • Extension APIのMint NFT APIは、複数のアカウントに同時にNFTをミントできます。1アカウントに1NFTをミントする場合、XPLAでは最大200アカウント、Polygonでは50アカウントにNFTをミントできます。50アカウントにNFTをミントする場合、XPLAではアカウントごとに4NFT、Polygonではアカウントごとに1NFTをミントできます。

リクエストURL

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

パスパラメータ

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

ヘッダーパラメータ

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

リクエストボディ

フィールド名 説明 タイプ 必須
from NFTをミントするアカウントアドレス string Y
mintMsg これはミントに必要な情報です。JSON配列形式で、複数のアカウントにNFTをミントできます。 array Y
mintMsg.to NFTを受け取るウォレットアドレス string Y
mintMsg.tokenId これはNFT IDです。NFT IDは一意である必要があり、NFTミンターによって定義されます。
  • Polygon: 文字列と整数(0~2256-1)のみが許可されています。
  • XPLA: 文字列のみが許可されています。
string Y
mintMsg.royaltyPercentage これはロイヤリティのパーセンテージです。NFTが販売または再販売されるたびに、NFTのクリエイターまたは請求者に支払われる金額です。ロイヤリティ率は販売の合計金額に適用されます。この機能は、アーティストやNFTクリエイターを継続的に支援する意欲のあるNFTマーケットプレイスでサポートされています。マーケットプレイスはNFTロイヤリティを確認し、受取人に支払います。NFTが販売(譲渡)されたときにロイヤリティは直接受取人に支払われません。この機能はOpenSeaで採用されています。
  • Polygon: 小数点以下2桁まで許可されています。
  • XPLA: 整数のみが許可されています。
number N
mintMsg.metadata メタデータ
  • 型とurl(animationUrlyoutubeUrlexternalUrl)の形式を確認する必要があります。このデータが不正確な場合、APIリクエストが失敗する可能性があります。
  • メタデータは、IPFSに保存されるときにスネークケースで保存されます(例: animationUrlanimation_url
json Y
mintMsg.metadata.name NFT名 string Y
mintMsg.metadata.description NFTの説明 string N
mintMsg.metadata.image これはNFT画像のアドレスです。これは、画像をIPFSにアップロードするための公開ウェブサイトアドレスまたは公開IPFSアドレスです。 string Y
mintMsg.metadata.animationUrl NFTアニメーションのアドレス string N
mintMsg.metadata.youtubeUrl Youtubeアドレス string N
mintMsg.metadata.imageData NFT画像情報 string N
mintMsg.metadata.externalUrl 外部url string N
mintMsg.metadata.backgroundColor トークンの背景色情報(OpenSea) string N
mintMsg.metadata.attributes これらはメタデータ属性の情報です。これには、メタデータに記載されていない追加情報が含まれます。 json N
mintMsg.metadata.attributes.traitType 属性を構成するアイテムの名前 string N
mintMsg.metadata.attributes.maxValue 特性の最大値 number N
mintMsg.metadata.attributes.value これは特性の値です。mintMsg.metadata.attributes.maxValueより小さい必要があります。mintMsg.metadata.attributes.displayTypeが日付の場合、この値はUnixタイムスタンプ(秒)形式に従って設定します。 string or number N
mintMsg.metadata.attributes.displayType これは特性の表示タイプです。デフォルト値は文字列です。
  • number: 数値タイプ
  • boost_percentage: パーセンテージ(OpenSea Boosts)
  • boost_number: 数値(OpenSea Boosts)
  • date: 日付タイプ(例: 2019年1月1日火曜日)
string N
encoded 戻されるトランザクションがエンコードされているかどうか
  • true: エンコードされた生トランザクション文字列(data.rawTx)を受け取ります。
  • false: デコードされたdata.rawTx(JSON)を受け取ります。
boolean 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/extension/0xA3F4308Ed655f962dD7CA180545c21718fAE49AD/mint' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb...' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Content-Type: application/json' 
  -d '{
  "from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
  "mintMsg": [
    {
      "to": "0xFBd488D1b00604d3b05124d80E35FeA9A39C3296",
      "tokenId": "101",
      "metadata": {
        "name": "Arbiter'''s Robe",
        "description": "desc",
        "image": "https://image01.c2x.world/equip_92053030.gif",
        "animationUrl": "https://image01.c2x.world/equip_92053030.gif",
        "externalUrl": "https://dex.c2xnft.com/market?key=4423",
        "attributes": [
          {
            "traitType": "Category",
            "value": "Game",
          }
        ]
      },
      "royaltyPercentage": 12
    }
  ],
  "encoded": true
}'

応答サンプル

{
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": "02f8f3830138810b8459682f008459682f1083023...",
    "hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
    "requestId": "6fb62650-d52e-4bec-bb91-dd081813d7f1"
  }
}

NFTコントラクトをデプロイ

NFTコントラクトをデプロイするトランザクションを作成します。デプロイされたコントラクトはERC-721/CW-721標準と拡張機能をサポートしています。

  • バルクミンティング
  • ロイヤリティ (ERC-2981/CW-2981)

リクエストURL

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

ヘッダーパラメータ

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

リクエストボディ

フィールド名 説明 タイプ 必須
from コントラクトをデプロイするウォレットアドレス 文字列 Y
name NFTコントラクト名 文字列 Y
symbol NFTコントラクトシンボル 文字列 Y
minter このNFTコントラクトでNFTをミントできるアカウントのウォレットアドレス 文字列 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/extension/contract' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb...' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Content-Type: application/json' 
  -d '{
  "encoded": true,
  "from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
  "name": "Extension NFT",
  "symbol": "ENFT",
  "minter": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765"
}'

レスポンスサンプル

{
  "code": 0,
  "message": "success",
  "data": {
    rawTx: "02f8f3830138810b8459682f008459682f108302...",
    "hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
    "requestId": "6fu656d0-t52q-2bdc-ba93-dd063815s7e1"
  }
}