跳转至

扩展 API

扩展 API 提供标准 (ERC-721) API 不提供的功能。

获取 NFT 版权信息

通过令牌 ID (tokenId) 和 NFT 销售 (salePrice) 获取版税和接收该版税的地址。版税可以在铸造 NFT 时设置,使用实现的 ERC-2981/CW-2981 接口的合约。

请求 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 合约地址 字符串
tokenId NFT ID 字符串

头部参数

字段名称 描述 类型 必需
Authorization 调用 API 所需的身份验证令牌 字符串
x-network 区块链网络 字符串

查询参数

字段名称 描述 类型 必需
salePrice NFT 销售金额 字符串

响应

字段名称 描述 类型
code API请求结果代码,0:成功 number
message 结果消息 String
data API响应数据 json
data.receiver 接收版权费的钱包地址 string
data.amount 版权费金额 string

请求示例

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)。您可以通过将所需的NFT信息(mintMsg.tokenIdmintMsg.metadata等)加载到数组中来调用此API,此API将把NFT信息上传到IPFS(星际文件系统)并铸造NFT。此API扩展了NFT API的功能,能够同时铸造最多200个代币并设置版税。from必须是有权铸造的账户。

Note
  • 通过 API 创建的数字资产及其元数据 (mintMsg.metadata) 将在公共 IPFS(星际文件系统)上注册。
  • 扩展 API 的铸造 NFT API 可以一次性铸造 NFT 到多个账户。如果您每个账户铸造 1 个 NFT,则 XPLA 最多可以铸造 200 个账户,Polygon 最多可以铸造 50 个账户。如果您铸造 NFT 到 50 个账户,则 XPLA 每个账户可以铸造 4 个 NFT,Polygon 每个账户可以铸造 1 个 NFT。

请求 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 合约地址 字符串

头部参数

字段名称 描述 类型 必需
授权 调用API所需的身份验证令牌 字符串
x-network 区块链网络 字符串

请求体

字段名称 描述 类型 必需
from 生成NFT的账户地址 字符串 Y
mintMsg 这是铸造所需的信息。它是JSON数组格式,因此您可以将NFT铸造到多个账户。 数组 Y
mintMsg.to 接收NFT的钱包地址 字符串 Y
mintMsg.tokenId 这是NFT ID。NFT ID应该是唯一的,由NFT铸造者定义。
  • Polygon: 仅允许字符串和整数(0~2256-1)。
  • XPLA: 仅允许字符串。
字符串 Y
mintMsg.royaltyPercentage 这是版权费百分比。每次NFT被出售或转售时,都会给予NFT创作者或索赔者的款项。版权费率适用于销售总额。此功能支持愿意持续资助艺术家和NFT创作者的NFT市场。市场检查NFT版权费并支付给接收者。NFT出售(转让)时,版权费不会直接支付给接收者。此功能已被OpenSea采用。
  • Polygon: 允许到小数点后2位。
  • XPLA: 仅允许整数。
数字 N
mintMsg.metadata 元数据
  • 您需要检查类型和url(animationUrlyoutubeUrlexternalUrl)格式。如果此数据不正确,API请求可能会失败。
  • 元数据将以蛇形命名法保存,以便在IPFS中保存时用于OpenSea(示例:animationUrlanimation_url
json Y
mintMsg.metadata.name NFT名称 字符串 Y
mintMsg.metadata.description NFT描述 字符串 N
mintMsg.metadata.image 这是NFT图像地址。这是公共网站地址或公共IPFS地址,用于将图像上传到IPFS。 字符串 Y
mintMsg.metadata.animationUrl NFT动画的地址 字符串 N
mintMsg.metadata.youtubeUrl Youtube地址 字符串 N
mintMsg.metadata.imageData NFT图像信息 字符串 N
mintMsg.metadata.externalUrl 外部url 字符串 N
mintMsg.metadata.backgroundColor 代币的背景颜色信息(OpenSea) 字符串 N
mintMsg.metadata.attributes 这些是元数据属性的信息。这些包含附加信息,在元数据中未描述。 json N
mintMsg.metadata.attributes.traitType 构成属性的项目名称 字符串 N
mintMsg.metadata.attributes.maxValue 特征的最大值 数字 N
mintMsg.metadata.attributes.value 这是特征值。它应小于mintMsg.metadata.attributes.maxValue。如果mintMsg.metadata.attributes.displayType是日期,则将此值设置为unix时间戳(秒)格式。 字符串或数字 N
mintMsg.metadata.attributes.displayType 这是特征的显示类型。默认值为字符串。
  • 数字: 数字类型
  • boost_percentage: 百分比(OpenSea Boosts)
  • boost_number: 数字(OpenSea Boosts)
  • 日期: 日期类型(示例:2019年1月1日,星期二)
字符串 N
encoded 返回的交易是否被编码
  • true: 接收编码的原始交易字符串(data.rawTx)。
  • false: 接收解码的data.rawTx(JSON)。
布尔 N

响应

字段名称 描述 类型
code api请求结果代码,0:成功 number
message 结果消息 String
data API响应数据 json
data.rawTx 交易数据 string或json
data.hashedTx 这是哈希的data.rawTx。当API头x-network为“polygon”且请求体from为多签钱包地址时,仅返回此值。 string
data.requestId 可以识别每个API请求的唯一值 string

请求示例

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所需的身份验证令牌 字符串
x-network 区块链网络 字符串

请求体

字段名称 描述 类型 必需
from 部署合约的钱包地址 字符串 Y
name NFT 合约名称 字符串 Y
symbol NFT 合约符号 字符串 Y
minter 可以在此 NFT 合约中铸造 NFT 的账户的钱包地址 字符串 Y
encoded 返回的交易是否编码
  • true: 接收编码的原始交易字符串 (data.rawTx).
  • false: 接收解码的 data.rawTx (JSON).
布尔 N

响应

字段名称 描述 类型
code api 请求结果代码,0:成功 number
message 结果消息 String
data API 响应数据 json
data.rawTx 交易数据 string 或 json
data.hashedTx 这是哈希的 data.rawTx。当 API 头部 x-network 为 "polygon" 且请求体 from 为多重签名钱包地址时,此值才会返回。 string
data.requestId 可以唯一标识每个 API 请求的值 string

请求示例

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