擴展 API
擴展 API 提供標準 (ERC-721) API 不提供的功能。
獲取 NFT 版稅資訊
透過代幣 ID (tokenId
) 和 NFT 銷售 (salePrice
) 獲取版稅及接收該版稅的地址。版稅可以在鑄造 NFT 時設置,合約實現了 ERC-2981/CW-2981 接口。
請求網址
路徑參數
欄位名稱 | 描述 | 類型 | 必填 |
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.tokenId
、mintMsg.metadata
等)加載到數組中,然後此 API 將把 NFT 信息上傳到 IPFS(星際文件系統)並鑄造 NFT。此 API 擴展了 NFT API 的功能,能夠同時鑄造最多 200 個代幣並設置版稅。from
必須是擁有鑄造權限的帳戶。
Note
- 透過 API 創建的數字資產及其元數據 (
mintMsg.metadata
) 將在公共 IPFS(星際文件系統)上註冊。 - 擴展 API 的 Mint NFT API 可以一次性為多個賬戶鑄造 NFT。如果您為每個賬戶鑄造 1 個 NFT,則最多可以為 XPLA 鑄造 200 個賬戶,為 Polygon 鑄造 50 個賬戶。如果您為 50 個賬戶鑄造 NFT,則可以為 XPLA 每個賬戶鑄造 4 個 NFT,為 Polygon 每個賬戶鑄造 1 個 NFT。
請求 URL
路徑參數
欄位名稱 | 描述 | 類型 | 必需 |
contract | NFT 合約地址 | 字串 | Y |
標頭參數
欄位名稱 | 描述 | 類型 | 必填 |
授權 | 認證令牌,需用於調用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: 成功 | 數字 |
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
標頭參數
欄位名稱 | 描述 | 類型 | 必需 |
授權 | 認證令牌,呼叫 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"
}
}