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

มิ้นต์

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 เป็นหน้าเว็บที่ผู้ใช้สามารถแปลงรายการที่ตนเป็นเจ้าของให้เป็น 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 ตัวอย่างแสดงด้านล่าง

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

คุณสมบัติ

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