มิ้นต์
Mint เป็นฟีเจอร์ที่ออกไอเทมเกมเป็น NFT ใน Hive คอนโซล มันจะออก NFT ตาม รายละเอียดที่กำหนด ในแท็บการออกของผู้ใช้ภายใต้เมนู Blockchain > XPLA > NFT
การดำเนินการของฟังก์ชัน Mint¶
ด้านล่างนี้คือกระบวนการดำเนินการสำหรับฟีเจอร์ Mint เพื่อดำเนินการฟีเจอร์ Mint กรุณาปฏิบัติตามภาพแผนผังการไหลและเนื้อหาคู่มือด้านล่างเพื่อดำเนินการเขียนโค้ดใน เกมไคลเอนต์ (Hive SDK, เกมไคลเอนต์) และพื้นที่เซิร์ฟเวอร์เกม ส่วนที่ทำเครื่องหมายด้วย ดอกจันสีน้ำเงิน ในภาพด้านล่างคือส่วนที่นักพัฒนาต้องทำงาน สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับงานหลัก กรุณาอ้างอิงจากคู่มือด้านล่าง
Note
หลังจากที่คุณทำการ เตรียมการ เสร็จแล้ว คุณต้องดำเนินการฟีเจอร์ Mint
Note
ในการดำเนินการฟีเจอร์ Mint คุณต้องใช้ Hive SDK
การนำไปใช้การเข้าสู่ระบบใน SDK ของ Hive¶
Implement โค้ดในเกมไคลเอนต์เพื่อให้ผู้ใช้สามารถเข้าสู่ระบบโดยใช้ IdP login ด้วยฟีเจอร์การตรวจสอบสิทธิ์ SDK Hive นอกจากนี้ยังรองรับ Web login เป็นวิธีการเข้าสู่ระบบด้วย
การสร้างปุ่มการสร้าง NFT¶
Implement a UI in the game client that allows users to open the NFT issuance page. For example, when a user selects an item from the character inventory after accessing the game, a Convert Item to NFT button should appear. When this button is pressed, the NFT issuance page should be opened according to the content below.
ขอแปลงรายการเป็น NFT¶
การดำเนินการโค้ดเพื่อขอการออกไอเท็มเกมของผู้ใช้เป็น NFT จากไคลเอนต์เกมไปยังเซิร์ฟเวอร์เกม นี่คือการดำเนินการเมื่อผู้ใช้เลือก ปุ่มออก NFT เมื่อเซิร์ฟเวอร์เกมได้รับคำขอจากไคลเอนต์เกม มันจะตรวจสอบไอเท็มเกมที่จะออกเป็น NFT และจากนั้นเรียก API เพื่อสร้างลิงก์สำหรับหน้าออก NFT เพื่อออกไอเท็มเป็น NFT
การสร้างลิงก์หน้า NFT issuance API call¶
หน้าออก NFT เป็นหน้าเว็บที่ผู้ใช้สามารถแปลงรายการที่ตนเป็นเจ้าของให้เป็น NFT หน้าเว็บนี้จัดทำโดยเซิร์ฟเวอร์บล็อกเชน Hive เซิร์ฟเวอร์เกมเรียก API การสร้างลิงก์เพื่อขอรับ URL หน้าเว็บนี้ (webLinkUrl
) เมื่อผู้ใช้เข้าถึงหน้าเว็บนี้ พวกเขาสามารถสร้างรายการในเกมเป็น 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) ไปยังเซิร์ฟเวอร์บล็อกเชน Hive เมื่อเรียกใช้ API การสร้างลิงก์การออก NFT ตัวอย่างแสดงด้านล่าง
คุณสมบัติ¶
attributes
ถูกใช้เป็น Request Body เมื่อเซิร์ฟเวอร์บล็อกเชน Hive เรียกใช้ API การตรวจสอบรายการ และ API การยืนยันผลลัพธ์ ไปยังเซิร์ฟเวอร์เกม.
เมื่อคุณเรียก API ด้วยรหัสเฉพาะของรายการที่อยู่ใน attributes
รหัสเฉพาะนั้นยังสามารถรวมอยู่ใน Request Body attributes
ของ Result Check API ได้ ในกรณีนี้ คุณสามารถอัปเดตสถานะของรายการด้วยรหัสเฉพาะที่ตรงกัน
ระยะเวลาความถูกต้องของลิงก์หน้าออก NFT¶
ลิงก์ไปยังหน้าที่สร้างขึ้นครั้งเดียวจะมีอายุ เพียง 10 นาทีตามเซสชันที่เข้าถึงครั้งแรก.
URL การร้องขอ¶
รายการ | ค่า |
---|---|
URL ที่ใช้งานจริง | https://bc-platform-api.withhive.com/web3/v1/web-link |
URL Sandbox | https://sandbox-bc-platform-api.withhive.com/web3/v1/web-link |
วิธีการ HTTP | POST |
ประเภทเนื้อหา | application/json |
พารามิเตอร์หัวข้อ¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API | string | Y |
เนื้อหาคำขอ¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
type | MINT | string | ใช่ |
playerId | รหัสผู้เล่น | number | ใช่ |
characterId | รหัสตัวละคร | string | ใช่ |
gameServerUrl | ที่อยู่เพื่อรับผลลัพธ์ความสำเร็จ/ความล้มเหลวหลังจากการตรวจสอบรายการและการดำเนินการฟังก์ชัน ส่งโทเค็นการรับรองความถูกต้องเป็นพารามิเตอร์ Query token สำหรับการตรวจสอบรายการ/ยืนยันผลลัพธ์ API header | string | ใช่ |
data | ข้อมูลพารามิเตอร์คำขอตามประเภท | json | ไม่ |
วัตถุข้อมูล¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
itemId | ตัวระบุเทมเพลต NFT ของผู้ใช้ (การลงทะเบียนในคอนโซล) | string | ใช่ |
attributes | คุณสมบัติเพิ่มเติมของข้อมูลเมตาที่จะนำไปใช้ต่อแต่ละโทเคน (เช่น รหัสสินค้าที่ไม่ซ้ำกัน, ความแข็งแกร่ง, ความคล่องตัว, ฯลฯ คุณสมบัติที่จะรวมอยู่ใน NFT) | json array | ไม่ |
attributes.traitType | ชื่อรายการที่ประกอบขึ้นเป็นคุณสมบัติ | string | ไม่ |
attributes.value | ค่าคุณลักษณะ | string | ไม่ |
ตัวอย่างคำขอ¶
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": "MINT",
"playerId": 1276814678,
"characterId": "zeratu",
"gameServerUrl": "https://api.com2us.com/hive" //인증 토큰 전송 시: "gameServerUrl": "https://api.com2us.com/hive?token=sInR5cCI6IkpXVC..."
"data": {
"itemId": "HIVE",
"attributes": [
{
"traitType": "item_id",
"value": "sward-3283272101239"
},
{
"traitType": "strength",
"value": "50"
},
{
"traitType": "agility",
"value": "10"
}
]
},
}'
การตอบกลับ¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท |
---|---|---|
code | รหัสผลลัพธ์การเรียก API, 0: สำเร็จ | number |
message | ข้อความผลลัพธ์ | string |
data | ข้อมูลการตอบกลับ API | json |
data.webLinkId | รหัสลิงก์เว็บ (UUID) | string |
data.webLinkUrl | ลิงก์เว็บแบบใช้ครั้งเดียวที่สร้างขึ้น (URL) | string |
data.expiration | วันที่หมดอายุของลิงก์เว็บ (ISO 8601) | string |
ตัวอย่างการตอบกลับ¶
{
"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"
}
}
การสร้างหน้าออก NFT ด้วย hive SDK¶
API การสร้างลิงก์หน้า NFT issuance 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 ผู้ใช้เลือกสินค้าที่ต้องการและจากนั้นดำเนินการ Mint
ยืนยันค่าคอมมิชชั่นก่อนออก NFT |
---|
![]() |
การตรวจสอบรายการ API call (เซิร์ฟเวอร์บล็อกเชนของ hive → เซิร์ฟเวอร์เกม)¶
Note
API นี้ไม่ใช่ API ที่เซิร์ฟเวอร์เกมเรียกเซิร์ฟเวอร์บล็อกเชน Hive แต่เป็น API ที่เซิร์ฟเวอร์บล็อกเชน Hive เรียกเซิร์ฟเวอร์เกม ดังนั้นเซิร์ฟเวอร์เกมต้องกำหนดค่า endpoint API ในรูปแบบที่เซิร์ฟเวอร์บล็อกเชน Hive ต้องการ
ก่อนที่จะเปลี่ยนไอเทมเกมเป็น NFT เซิร์ฟเวอร์บล็อกเชน Hive จะขอการตรวจสอบไอเทมจากเซิร์ฟเวอร์เกม เซิร์ฟเวอร์บล็อกเชน Hive จะออก NFT บนบล็อกเชนหลังจากตรวจสอบข้อมูลไอเทมจากการตอบกลับที่ให้โดยเซิร์ฟเวอร์เกม หากการ ตรวจสอบไอเทมล้มเหลว เซิร์ฟเวอร์บล็อกเชน Hive จะไม่ออก NFT
Note
ในเซิร์ฟเวอร์เกม จนกว่าจะได้รับผลการออก NFT ผ่านทาง API ยืนยันผล การใช้ไอเท็มที่ได้รับการตรวจสอบในเกมควรมีการจำกัด
หมายเหตุ¶
นี่คือข้อพิจารณาสำหรับนักพัฒนาขณะกำหนดค่า API endpoints.
เกมเซิร์ฟเวอร์ URL¶
API นี้ขอการตรวจสอบจากเซิร์ฟเวอร์เกมโดยใช้ gameServerUrl
ที่ร้องขอจาก API สร้างลิงก์การออก NFT
หัวข้อการอนุญาต¶
หากพารามิเตอร์การค้นหา token
มีอยู่ใน gameServerUrl
ที่ร้องขอจาก API การสร้างลิงก์การออก NFT ให้ใช้ค่าของ token
นี้ในรูปแบบ Bearer.
คุณสมบัติ¶
รวม attributes
ในเนื้อหาคำขอ API สำหรับการสร้างลิงก์หน้าออกใบ NFT
URL การร้องขอ¶
ข้อมูลจุดสิ้นสุด API ที่ต้องเตรียมไว้บนเซิร์ฟเวอร์เกมมีดังนี้
รายการ | ค่า |
---|---|
URL | {gameServerUrl}/items/validate |
วิธีการ HTTP | POST |
ประเภทเนื้อหา | application/json |
พารามิเตอร์หัวข้อ¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
Authorization | โทเค็นการตรวจสอบสิทธิ์ที่ส่งเป็นพารามิเตอร์ token ใน gameServerUrl ของ API หน้าการออก NFT. เรียกว่าในรูปแบบ Bearer ${token}. | Bearer | N |
User-Agent | HiveBlockchain/1.0 | string | Y |
เนื้อหาคำขอ¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
type | MINT | สตริง | ใช่ |
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": "MINT",
"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"
}
]
}'
การตอบสนอง¶
รหัสสถานะ 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 หรือหากเกินเวลาที่กำหนด
Warning
คุณต้องจำกัดการใช้รายการที่เกี่ยวข้องในเกมบนเซิร์ฟเวอร์เกมจนกว่าคุณจะได้รับผลการออก NFT
ด้านล่างเป็นตัวอย่างของหน้าจอหน้า NFT issuance เมื่อเซิร์ฟเวอร์เกมตอบกลับด้วยการออก NFT ที่สำเร็จ
หมายเหตุ¶
นี่คือข้อพิจารณาสำหรับนักพัฒนาขณะกำหนดค่า API endpoints.
คุณสมบัติ¶
โดยการรวมรหัสสินค้าที่ไม่ซ้ำใน attributes
และเรียกใช้ API การสร้างลิงก์หน้า NFT issuance คุณยังสามารถรวมรหัสที่ไม่ซ้ำใน Request Body attributes
ในกรณีนี้ คุณสามารถอัปเดตสถานะของสินค้าโดยใช้รหัสที่ไม่ซ้ำที่เกี่ยวข้อง
หัวข้อการอนุญาต¶
หากพารามิเตอร์การค้นหา token
มีอยู่ใน gameServerUrl
ที่ร้องขอจาก API การสร้างลิงก์หน้า NFT ให้ใช้ค่าของ token
นี้ในรูปแบบ Bearer.
URL ที่ร้องขอ¶
รายการ | ค่า |
---|---|
URL | {gameServerUrl}/items/callback |
วิธีการ HTTP | POST |
ประเภทเนื้อหา | application/json |
พารามิเตอร์หัวเรื่อง¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
Authorization | โทเค็นการตรวจสอบสิทธิ์ที่ส่งเป็น token พารามิเตอร์ในลิงก์การสร้าง API หน้าการออก NFT ซึ่งเรียกในรูปแบบ Bearer ${token}. | Bearer | N |
User-Agent | HiveBlockchain/1.0 | string | Y |
เนื้อหาคำขอ¶
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
type | MINT | 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": "MINT",
"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: รหัสสถานะข้อผิดพลาดสำหรับข้อผิดพลาดของเซิร์ฟเวอร์