เบิร์น
การเผาเป็นฟังก์ชันที่ช่วยให้ผู้ใช้สามารถเผา NFT ที่ออกให้และแปลงเป็นไอเท็มที่สามารถใช้ในเกมได้ ขั้นตอนสำหรับผู้ใช้ในการแปลง NFT เป็นไอเท็มมีดังนี้
- ผู้ใช้ตรวจสอบ NFT ที่ตนเป็นเจ้าของในหน้าดู NFT
- ผู้ใช้เลือก 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 lookup¶
หน้าเว็บดู 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 ตัวอย่างแสดงด้านล่าง
ระยะเวลาความถูกต้องของลิงก์หน้า 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: รหัสสถานะข้อผิดพลาดสำหรับข้อผิดพลาดของเซิร์ฟเวอร์