ข้ามไปที่เนื้อหา

เบิร์น

การเผาเป็นฟังก์ชันที่ช่วยให้ผู้ใช้สามารถเผา NFT ที่ออกให้และแปลงเป็นไอเท็มที่สามารถใช้ในเกมได้ ขั้นตอนสำหรับผู้ใช้ในการแปลง NFT เป็นไอเท็มมีดังนี้

  1. ผู้ใช้ตรวจสอบ NFT ที่ตนเป็นเจ้าของในหน้าดู NFT
  2. ผู้ใช้เลือก NFT ที่ตรวจสอบแล้วและแปลงเป็นไอเทมเพื่อใช้ซ้ำในเกม (= การเผา NFT)

การดำเนินการของฟังก์ชันการเผาไหม้

ด้านล่างนี้คือกระบวนการดำเนินการของฟีเจอร์ Burn เพื่อดำเนินการฟีเจอร์ Burn กรุณาปฏิบัติตามภาพแผนผังไหลและเนื้อหาคู่มือเพื่อดำเนินการโค้ดใน เกมไคลเอนต์ (Hive SDK, เกมไคลเอนต์) และพื้นที่เซิร์ฟเวอร์เกม ส่วนที่ทำเครื่องหมายด้วย ดอกจันสีน้ำเงิน ในภาพด้านล่างคือพื้นที่ที่นักพัฒนาต้องทำงาน สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับงานหลัก กรุณาอ้างอิงจากคู่มือด้านล่าง

Note

ก่อนอื่นคุณต้องทำการ เตรียมการ ให้เสร็จก่อนที่จะดำเนินการฟีเจอร์ Burn

Note

เพื่อดำเนินการฟีเจอร์ Burn คุณต้องใช้ Hive SDK

การนำเข้าเข้าสู่ระบบใน SDK ของ hive

Implement code in the game client to allow users to log in using IdP login with the Hive SDK authentication feature. Web login is also supported as a login method.

การนำปุ่มค้นหา nft ไปใช้

สร้าง UI ที่อนุญาตให้ผู้ใช้เปิดรายการ NFT ของพวกเขาในเกมไคลเอนต์ ตัวอย่างเช่น สร้างปุ่ม ดูรายการ NFT ที่เป็นเจ้าของ ในคลังของตัวละครผู้ใช้ เมื่อกดปุ่มนี้ คุณจำเป็นต้องสร้างการเปิดหน้าการดู NFT ตามเนื้อหาด้านล่าง

คำขอสอบถาม NFT

ดำเนินการโค้ดที่ขอ NFTs ของผู้ใช้จากไคลเอนต์เกมไปยังเซิร์ฟเวอร์เกม นี่คือการดำเนินการเมื่อผู้ใช้เลือก ปุ่มสอบถาม NFT เมื่อเซิร์ฟเวอร์เกมได้รับคำขอจากไคลเอนต์เกม มันจะเรียก API การสร้างลิงก์หน้า NFT เพื่อแสดงรายการ NFT ของผู้ใช้

หน้าเว็บดู NFT เป็นหน้าเว็บที่ผู้ใช้สามารถดูรายการ NFT ที่พวกเขาเป็นเจ้าของ หน้าเว็บนี้จัดทำโดยเซิร์ฟเวอร์บล็อกเชน Hive เซิร์ฟเวอร์เกมเรียก API การสร้างลิงก์เพื่อรับ URL หน้าเว็บนี้ (webLinkUrl) เมื่อผู้ใช้เข้าถึงหน้าเว็บนี้ พวกเขาสามารถดูรายการ NFT ที่พวกเขาเป็นเจ้าของและเผา (ทำลาย) NFT เฉพาะบนบล็อกเชน

หมายเหตุ

นี่คือข้อควรระวังสำหรับนักพัฒนาขณะทำการเรียก API

เกมเซิร์ฟเวอร์ URL

gameServerUrl ถูกใช้เป็น Request URL สำหรับ API ที่เซิร์ฟเวอร์บล็อกเชน Hive เรียกไปยังเซิร์ฟเวอร์เกม (Item Validation API และ Result Check API).

URL เกมเซิร์ฟเวอร์และโทเค็น

เมื่อเซิร์ฟเวอร์บล็อกเชน Hive เรียกใช้ API การตรวจสอบรายการ หรือ API ตรวจสอบผลลัพธ์ เซิร์ฟเวอร์เกมสามารถใช้ โทเค็นการตรวจสอบสิทธิ์ (Header Parameters) สำหรับการเรียก API ซึ่งเป็นทางเลือกสำหรับนักพัฒนา หากต้องการใช้โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API เซิร์ฟเวอร์เกมจะต้องแนบโทเค็นการตรวจสอบสิทธิ์นี้เป็น token (Query Parameter) ไปยัง gameServerUrl และส่งไปยังเซิร์ฟเวอร์บล็อกเชน Hive ล่วงหน้าเมื่อเรียกใช้ API การสร้างลิงก์หน้า NFT lookup ตัวอย่างแสดงด้านล่าง

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

ระยะเวลาความถูกต้องของลิงก์หน้า NFT query

ลิงก์ไปยังหน้าที่สร้างขึ้นครั้งเดียวจะมีอายุ เพียง 10 นาที ตามเซสชันที่เข้าถึงครั้งแรก

URL ที่ร้องขอ

รายการ ค่า
URL สด https://bc-platform-api.withhive.com/web3/v1/web-link
URL แซนด์บ็อกซ์ https://sandbox-bc-platform-api.withhive.com/web3/v1/web-link
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API string Y

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
type HOME สตริง ใช่
playerId รหัสผู้เล่น หมายเลข ใช่
characterId รหัสตัวละคร สตริง ใช่
gameServerUrl ที่อยู่สำหรับรับผลลัพธ์ความสำเร็จ/ความล้มเหลวหลังจากการตรวจสอบรายการและการดำเนินการฟังก์ชัน ส่งโทเค็นการรับรองความถูกต้องเป็นพารามิเตอร์ Query 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 รหัสลิงก์เว็บ (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"
  }
}

การ implement หน้าแสดง nft ด้วย hive SDK

API การสร้างลิงก์หน้าเว็บ NFT query page link creation จะแสดง URL ของหน้าเว็บที่ได้รับเป็นการตอบกลับโดยใช้ Hive SDK เพื่อเปิดในเบราว์เซอร์ภายนอก.


ด้านล่างเป็นตัวอย่างของหน้าแสดง NFT.

รายการ NFT ที่เป็นเจ้าของ


เมื่อคุณเปิดหน้าแสดง NFT หน้าต่างจะปรากฏขึ้นเพื่อเข้าสู่ระบบ กระเป๋าเงิน X-PLANET หรือ XLPA Vault. ผู้ใช้ต้องเลือกที่อยู่กระเป๋าเงินเฉพาะเพื่อทำการ Mint หรือ Burn หลังจากเข้าสู่ระบบกระเป๋าเงิน X-PLANET หรือ XLPA Vault

Note

XPLA Vault มีกำหนดการสนับสนุนในเดือนมิถุนายน 2025.

X-PLANET XPLA Vault

การดำเนินการเผา NFT

บนหน้าแสดง NFT ผู้ใช้เลือก NFT และจากนั้นดำเนินการเผา

เลือก NFT ที่จะเผาจากรายการ ตรวจสอบค่าธรรมเนียม

การตรวจสอบรายการ API call (เซิร์ฟเวอร์บล็อกเชนของ hive → เซิร์ฟเวอร์เกม)

Note

API นี้ไม่ใช่ API ที่เซิร์ฟเวอร์เกมเรียกเซิร์ฟเวอร์บล็อกเชน Hive แต่เป็น API ที่เซิร์ฟเวอร์บล็อกเชน Hive เรียกเซิร์ฟเวอร์เกม ดังนั้นเซิร์ฟเวอร์เกมต้องกำหนดค่า API endpoint ในรูปแบบที่เซิร์ฟเวอร์บล็อกเชน Hive ต้องการ

เซิร์ฟเวอร์บล็อกเชน Hive ขอการตรวจสอบรายการจากเซิร์ฟเวอร์เกมเพื่อตรวจสอบว่า NFTs ที่ผู้ใช้เป็นเจ้าของนั้นเป็นรายการที่สามารถใช้งานได้ในเกมหรือไม่

เซิร์ฟเวอร์บล็อกเชน Hive ตรวจสอบว่าสินค้าใช้งานได้ในเกมหรือไม่ผ่านค่าการตอบกลับที่ส่งโดยเซิร์ฟเวอร์เกม เมื่อการตรวจสอบเสร็จสิ้น เซิร์ฟเวอร์บล็อกเชน Hive จะทำการเผา NFT บนบล็อกเชน หาก การตรวจสอบสินค้าล้มเหลว เซิร์ฟเวอร์บล็อกเชน Hive จะไม่เผา NFT

หมายเหตุ

นี่คือข้อพิจารณาสำหรับนักพัฒนาขณะกำหนดค่า API endpoints

เกมเซิร์ฟเวอร์ URL

API นี้ขอการตรวจสอบจากเซิร์ฟเวอร์เกมโดยใช้ gameServerUrl ที่ร้องขอจาก API สร้างลิงก์หน้า NFT

หัวข้อ Authorization

หากพารามิเตอร์การค้นหา token มีอยู่ใน gameServerUrl ที่ร้องขอจาก API การสร้างลิงก์หน้า NFT Query ให้ใช้ค่าของ token นี้ในรูปแบบ Bearer.

คุณสมบัติ

เมื่อเรียกใช้ API การสร้างลิงก์หน้าออกใบ NFT attributes ที่ร้องขอจะถูกรวมอยู่ใน Request Body ของ API การตรวจสอบรายการ

URL การร้องขอ

ต่อไปนี้คือข้อมูลจุดสิ้นสุด API ที่ต้องเตรียมไว้บนเซิร์ฟเวอร์เกม

รายการ ค่า
URL {gameServerUrl}/items/validate
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์ที่ส่งเป็นพารามิเตอร์ token ในการค้นหา NFT API ที่ gameServerUrl โดยใช้รูปแบบ Bearer ${token} Bearer N
User-Agent HiveBlockchain/1.0 string Y

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
type BURN สตริง ใช่
itemId รหัสตัวระบุ NFT สตริง ใช่
playerId รหัสผู้เล่น หมายเลข ใช่
characterId รหัสตัวละคร สตริง ไม่
webLinkId รหัสลิงก์เว็บ (UUID) สตริง ใช่
tokenId รหัส NFT สตริง ใช่
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 call (บล็อกเชน hive → เซิร์ฟเวอร์เกม)

Note

API นี้ไม่ใช่ API ที่เซิร์ฟเวอร์เกมเรียกเซิร์ฟเวอร์บล็อกเชน Hive แต่เป็น API ที่เซิร์ฟเวอร์บล็อกเชน Hive เรียกเซิร์ฟเวอร์เกม ดังนั้นเซิร์ฟเวอร์เกมจะต้องกำหนดค่า endpoint API เพื่อให้มันอยู่ในรูปแบบที่เซิร์ฟเวอร์บล็อกเชน Hive ต้องการ

เมื่อเซิร์ฟเวอร์บล็อกเชน Hive ส่งผลการเผา NFT ไปยังเซิร์ฟเวอร์เกมในฐานะ Request Body เซิร์ฟเวอร์เกมจะสร้างไอเท็มในเกมและจากนั้นส่งผลลัพธ์กลับไปยังเซิร์ฟเวอร์บล็อกเชน Hive ผ่าน API


การกระทำที่เซิร์ฟเวอร์เกมจะดำเนินการตามผลการเผาไหม้มีดังนี้

  • การเผา NFT สำเร็จ
    • ประมวลผลเพื่อนำไปใช้ในเกม (เช่น การสร้างไอเทมในคลังของผู้ใช้เกม)
  • การเผา NFT ล้มเหลว
    • ไม่ต้องการการประมวลผลแยกต่างหากในเกม
    • ส่งผลลัพธ์การเผา NFT ล้มเหลวหากผู้ใช้ยกเลิกการเผา NFT หรือหากเวลาผ่านไปเกินขีดจำกัดที่กำหนด


ด้านล่างเป็นตัวอย่างของหน้าจอเพจการเผา NFT เมื่อเซิร์ฟเวอร์บล็อกเชน Hive สื่อสารการเผา NFT ได้สำเร็จ

หมายเหตุ

นี่คือข้อพิจารณาสำหรับนักพัฒนาขณะกำหนดค่า API endpoints

คุณสมบัติ

attributes ที่ร้องขอเมื่อเรียกใช้ API การสร้างลิงก์หน้าออกใบ NFT จะรวมอยู่ในร่างคำขอ API ยืนยันผลลัพธ์ หากรหัสเฉพาะรวมอยู่ใน attributes สถานะของรายการสามารถอัปเดตด้วยรหัสเฉพาะนั้นได้

หัวข้อการอนุญาต

หากพารามิเตอร์การค้นหา token มีอยู่ใน gameServerUrl ที่ร้องขอจาก API การสร้างลิงก์หน้า NFT Query ให้ใช้ค่าของ token นี้ในรูปแบบ Bearer.

URL ที่ร้องขอ

รายการ ค่า
URL {gameServerUrl}/items/callback
วิธี HTTP POST
ประเภทเนื้อหา application/json

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์ที่ส่งเป็น token พารามิเตอร์ใน gameServerUrl ของ API การสร้างลิงก์หน้า NFT query. เรียกว่าในรูปแบบ Bearer ${token}. Bearer N
User-Agent HiveBlockchain/1.0 string Y

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
type BURN string ใช่
itemId รหัสการระบุ NFT item string ใช่
playerId รหัสผู้เล่น number ใช่
characterId รหัสตัวละคร string ไม่
webLinkId รหัสลิงก์เว็บ (UUID) string ใช่
tokenId รหัส NFT (รวมอยู่ถ้าสำเร็จ) string ไม่
status ผลลัพธ์การทำธุรกรรม (สำเร็จ, ล้มเหลว) string ใช่
attributes คุณสมบัติเพิ่มเติมที่ใช้ต่อแต่ละโทเคน (เช่น รหัสรายการเฉพาะ, ความแข็งแกร่ง, ความคล่องตัว, ฯลฯ คุณสมบัติที่รวมอยู่ใน NFT) json array ไม่
attributes.traitType ชื่อรายการที่ประกอบขึ้นเป็นคุณสมบัติ string ไม่
attributes.value ค่าคุณสมบัติ string ไม่

ตัวอย่างคำขอ

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: รหัสสถานะข้อผิดพลาดสำหรับข้อผิดพลาดของเซิร์ฟเวอร์