跳轉至

銷毀

燒毀是一個功能,允許用戶燒毀已發行的NFT並將其轉換為可以在遊戲中使用的物品。用戶將NFT轉換為物品的過程大致如下。

  1. 用戶在 NFT 查看頁面檢查他們擁有的 NFT。
  2. 用戶選擇已勾選的 NFT,並將其轉換為可在遊戲中重用的物品(= NFT 燒毀)。

燃燒功能的實現流程

以下是燃燒功能的實現過程。要實現燃燒功能,請按照流程圖圖像和指南內容在遊戲客戶端 (Hive SDK,遊戲客戶端) 和遊戲服務器區域中實現代碼。下圖中標有藍色星號的部分是開發人員需要工作的區域。有關主要任務的更多詳細信息,請參閱下面的指南。

Note

首先,您需要在实现 Burn 功能之前完成准备工作

Note

要实现 Burn 功能,您需要使用Hive SDK

在 hive SDK 中實現登錄

在遊戲客戶端實現代碼,允許用戶使用IdP 登錄和Hive SDK 認證功能登錄。也支持網頁登錄作為登錄方法。

實現 nft 查詢按鈕

實現一個用戶界面,允許用戶在遊戲客戶端中打開他們的NFT列表。例如,在用戶角色的庫存中實現一個查看擁有的NFT列表按鈕。當按下此按鈕時,您需要根據以下內容實現NFT查看頁面的打開。

NFT 查詢請求

實現從遊戲客戶端向遊戲伺服器請求用戶的NFT的代碼。這是為了實現用戶選擇NFT查詢按鈕時的操作。當遊戲伺服器收到遊戲客戶端的請求時,它會調用NFT查詢頁面鏈接創建API以顯示用戶的NFT列表。

NFT 查看頁面是一個用戶可以查看他們擁有的 NFT 列表的網頁。這個網頁由 Hive 區塊鏈伺服器提供。遊戲伺服器調用鏈接生成 API 以獲取此網頁 URL (webLinkUrl)。當用戶訪問此網頁時,他們可以查看自己擁有的 NFT 列表並在區塊鏈上燒毀(銷毀)特定的 NFT。

註解

以下是開發者在進行API調用時的注意事項。

遊戲伺服器網址

gameServerUrl 用作 Hive 區塊鏈伺服器調用遊戲伺服器的 請求 URL,包括 項目驗證 API結果檢查 API

遊戲伺服器網址和令牌

當 Hive 區塊鏈伺服器呼叫 項目驗證 API結果檢查 API 時,遊戲伺服器可以使用身份驗證令牌(標頭參數)進行 API 呼叫,這對開發者來說是可選的。如果要在 API 呼叫中使用身份驗證令牌,遊戲伺服器必須將此身份驗證令牌作為 token(查詢參數)附加到 gameServerUrl,並在呼叫 NFT 查詢頁面鏈接生成 API 時提前發送到 Hive 區塊鏈伺服器。以下是示例。

"gameServerUrl": "https://api.com2us.com/hive?token=sInR5cCI6IkpXVC..."

NFT 查詢頁面鏈接有效期

一個創建過的頁面的鏈接僅在10分鐘內有效,基於第一次訪問的會話。

請求 URL

項目
直播網址 https://bc-platform-api.withhive.com/web3/v1/web-link
沙盒網址 https://sandbox-bc-platform-api.withhive.com/web3/v1/web-link
HTTP 方法 POST
內容類型 application/json

標頭參數

欄位名稱 描述 類型 必需
授權 API 呼叫的身份驗證令牌 字串

請求主體

欄位名稱 描述 類型 必需
類型 HOME 字串
玩家ID 玩家ID 數字
角色ID 角色ID 字串
遊戲伺服器網址 接收項目驗證和功能執行後成功/失敗結果的地址。將身份驗證令牌作為token查詢參數發送到項目驗證/結果確認API標頭 字串

請求範例

curl -X 'POST' \
  'https://sandbox-bc-platform-api.withhive.com/web3/v1/web-link' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6NiwiaWQiOiIvVWpXN....' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "HOME",
  "playerId": 1276814678,
  "characterId": "zeratu",
  "gameServerUrl": "https://api.com2us.com/hive" //인증 토큰 전송 시: "gameServerUrl": "https://api.com2us.com/hive?token=sInR5cCI6IkpXVC..."
}'

回應

欄位名稱 描述 類型
code API 呼叫結果代碼,0:成功 數字
message 結果訊息 字串
data API 回應資料 json
data.webLinkId 網頁連結 ID (UUID) 字串
data.webLinkUrl 生成的一次性網頁連結 (URL) 字串
data.expiration 網頁連結到期日期 (ISO 8601) 字串

回應範例

{
  "code": 0,
  "message": "success",
  "data": {
    "webLinkid": "b6d2ca1b-b43a-4129-bf54-9a189e3aa664",
    "webLinkUrl": "https://sandbox-xpla-platform.withhive.com/api/v1/web-link/redirect?token=b256c85c-aee8-4837-b54d-9a03fe8a7435.f94140b71c9ebf058956547753131adde9968a0266f208d7e3059bbb6dd0c7bc",
    "expiration": "2024-08-05T08:33:15.448Z"
  }
}

使用 Hive SDK 實現 NFT 瀏覽頁面

NFT查詢頁面鏈接創建API暴露了作為響應接收的網頁URL,使用Hive SDK在外部瀏覽器中打開它。


以下是NFT查看頁面的範例。

擁有的 NFT 列表


當您打開 NFT 查看頁面時,將會出現一個窗口,用於登錄 X-PLANET 錢包XLPA Vault。用戶必須選擇特定的錢包地址,以便在登錄 X-PLANET 錢包或 XLPA Vault 後執行 Mint 或 Burn。

Note

XPLA Vault 預定於 2025 年 6 月提供支援。

X-PLANET XPLA Vault

NFT 燒毀執行

在 NFT 查看頁面上,用戶選擇一個 NFT 然後執行燒毀。

從列表中選擇要燒毀的 NFT 檢查費用

項目驗證 API 呼叫 (hive 區塊鏈伺服器 → 遊戲伺服器)

Note

此 API 不是遊戲伺服器呼叫 Hive 區塊鏈伺服器的 API,而是 Hive 區塊鏈伺服器呼叫遊戲伺服器的 API。因此,遊戲伺服器必須按照 Hive 區塊鏈伺服器所需的形式配置 API 端點。

Hive 區塊鏈伺服器向遊戲伺服器請求項目驗證,以檢查用戶擁有的 NFT 是否為遊戲中的可用物品。

Hive 區塊鏈伺服器通過遊戲伺服器傳遞的響應值驗證該物品在遊戲中是否可用。一旦驗證完成,Hive 區塊鏈伺服器會在區塊鏈上銷毀該 NFT。如果 物品驗證失敗,Hive 區塊鏈伺服器則不會銷毀該 NFT。

註解

以下是開發人員在配置 API 端點時的一些考慮事項。

遊戲伺服器網址

此 API 通过使用从 NFT 查找页面链接创建 API 请求的 gameServerUrl 向游戏服务器请求验证。

授權標頭

如果在從 NFT 查詢頁面鏈接創建 API 請求的 gameServerUrl 中存在 token 查詢參數,請使用此 token 值以 Bearer 格式。

屬性

當呼叫NFT 發行頁面鏈接創建 API時,請求的attributes將包含在項目驗證 API 請求主體中。

請求 URL

以下是需要在遊戲伺服器上準備的API端點資訊。

項目
URL {gameServerUrl}/items/validate
HTTP 方法 POST
內容類型 application/json

標頭參數

字段名稱 描述 類型 必需
授權 作為 token 查詢參數發送到 NFT 查詢頁面 API 的 gameServerUrl 的身份驗證令牌。格式為 Bearer ${token}。 Bearer
用戶代理 HiveBlockchain/1.0 字串

請求主體

字段名称 描述 类型 必需
type BURN 字符串
itemId NFT 项目标识符代码 字符串
playerId 玩家 ID 数字
characterId 角色 ID 字符串
webLinkId 网页链接 ID (UUID) 字符串
tokenId NFT ID 字符串
attributes 每个令牌应用的元数据属性(例如,唯一项目代码、力量、敏捷等包含在 NFT 中的属性) json 数组
attributes.traitType 组成属性的项目名称 字符串
attributes.value 特征值 字符串

請求範例

curl -X 'POST' \
  'https://api.com2us.com/hive/items/validate' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoieHBsYS13ZWJ2aWV3IiwiYXBwIjoiY29tLmdjcC5zdGVwYnlzdGVwLnBjd2ViLmJs...' \
  -H 'User-Agent: HiveBlockchain/1.0' \
  -d '{
    "type": "BURN",
    "itemId": "HIVE",
    "playerId": 2319123897,
    "characterId": "zeratu",
    "webLinkId": "b6d2ca1b-b43a-4129-bf54-9a189e3aa664",
    "attributes": [ // NFT 조회 페이지 링크 생성 시 attributes
        {
          "traitType": "item_id",
          "value": "sward-3283272101239"
        },
        {
          "traitType": "strength",
          "value": "50"
        },
        {
          "traitType": "agility",
          "value": "10"
        }
      ],
    "tokenId": "HIVE#01"
  }'

回應

HTTP 狀態碼如下。

  • 成功
    • 200
  • 失敗
    • 4xx: 錯誤請求的錯誤狀態碼
    • 5xx: 伺服器錯誤的錯誤狀態碼

結果檢查 API 呼叫 (hive 區塊鏈 → 遊戲伺服器)

Note

此 API 不是遊戲伺服器呼叫 Hive 區塊鏈伺服器的 API,而是 Hive 區塊鏈伺服器呼叫遊戲伺服器的 API。因此,遊戲伺服器必須配置 API 端點,以 Hive 區塊鏈伺服器所需的形式提供它。

當Hive區塊鏈伺服器將NFT燒毀結果作為請求主體傳送到遊戲伺服器時,遊戲伺服器會在遊戲中生成物品,然後通過API將結果發送回Hive區塊鏈伺服器。


遊戲伺服器將根據焚燒結果採取的行動如下。

  • NFT 燒毀成功
    • 處理以在遊戲中使用物品(例如,創建遊戲用戶的庫存中的物品)
  • NFT 燒毀失敗
    • 遊戲中不需要單獨處理
    • 如果用戶取消 NFT 燒毀或超過某個時間限制,則發送 NFT 燒毀失敗結果


以下是當Hive區塊鏈伺服器成功通訊NFT燒毀時的NFT燒毀頁面螢幕示例。

註解

以下是開發人員在配置 API 端點時的一些考量。

屬性

當呼叫NFT發行頁面鏈接創建API時請求的attributes包含在結果確認API請求主體中。如果attributes中包含唯一代碼,則可以使用該唯一代碼更新項目狀態。

授權標頭

如果在從NFT查詢頁面鏈接創建API請求的gameServerUrl中存在token查詢參數,則使用此token值以Bearer格式。

請求 URL

項目
URL {gameServerUrl}/items/callback
HTTP 方法 POST
內容類型 application/json

標頭參數

欄位名稱 描述 類型 必需
授權 作為 gameServerUrltoken 查詢參數發送的身份驗證令牌,用於 NFT 查詢頁面鏈接創建 API。以 Bearer ${token} 的形式調用。 Bearer
用戶代理 HiveBlockchain/1.0 字串

請求主體

欄位名稱 描述 類型 必需
type BURN 字串
itemId NFT 物品識別碼 字串
playerId 玩家 ID 數字
characterId 角色 ID 字串
webLinkId 網頁連結 ID (UUID) 字串
tokenId NFT ID (成功時包含) 字串
status 交易結果 (成功,失敗) 字串
attributes 每個代幣應用的附加元數據屬性 (例如,獨特物品代碼、力量、敏捷等屬性包含在 NFT 中) json 陣列
attributes.traitType 組成屬性的物品名稱 字串
attributes.value 特徵值 字串

請求樣本

curl -X 'POST' \
  'https://api.com2us.com/hive/items/callback' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoieHBsYS13ZWJ2aWV3IiwiYXBwIjoiY29tLmdjcC5zdGVwYnlzdGVwLnBjd2ViLmJs...' \
  -H 'User-Agent: HiveBlockchain/1.0' \
  -d '{
    "type": "BURN",
    "itemId": "HIVE",
    "playerId": 2319123897,
    "characterId": "zeratu",
    "webLinkId": "b6d2ca1b-b43a-4129-bf54-9a189e3aa664",
    "tokenId": "HIVE#348",
    "status": "success",
    "attributes": [ // NFT 조회 페이지 링크 생성 시 attributes
        {
          "traitType": "item_id",
          "value": "sward-3283272101239"
        },
        {
          "traitType": "strength",
          "value": "50"
        },
        {
          "traitType": "agility",
          "value": "10"
        }
      ]
  }'

回應

HTTP 狀態碼如下。

  • 成功
    • 200
  • 失敗
    • 4xx: 錯誤請求的錯誤狀態碼
    • 5xx: 伺服器錯誤的錯誤狀態碼