扩展 API
扩展 API 提供标准 (ERC-721) API 不提供的功能。
获取 NFT 版权信息
通过令牌 ID (tokenId
) 和 NFT 销售 (salePrice
) 获取版税和接收该版税的地址。版税可以在铸造 NFT 时设置,使用实现的 ERC-2981/CW-2981 接口的合约。
请求 URL
路径参数
字段名称 | 描述 | 类型 | 必需 |
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.tokenId
、mintMsg.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
路径参数
字段名称 | 描述 | 类型 | 必需 |
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(
animationUrl ,youtubeUrl ,externalUrl )格式。如果此数据不正确,API请求可能会失败。
- 元数据将以蛇形命名法保存,以便在IPFS中保存时用于OpenSea(示例:
animationUrl → animation_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
头部参数
字段名称 | 描述 | 类型 | 是否必需 |
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"
}
}