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

API KMS

ระบบการจัดการกุญแจในคลาวด์ (KMS) เป็นบริการที่คลาวด์จัดการกุญแจที่เข้ารหัสแทนผู้ใช้ (Google Cloud Platform (GCP) KMS, Amazon Web Services (AWS) KMS).

Blockchain Open API - KMS API ช่วยให้คุณสามารถใช้กุญแจที่เก็บไว้ใน KMS ของคลาวด์เป็นกุญแจกระเป๋าเงินบัญชีบล็อกเชนของคุณ (กุญแจส่วนตัว หรือกุญแจส่วนตัวของกระเป๋าเงิน) ด้วย KMS API ผู้ใช้สามารถสร้างธุรกรรม ลงนาม และส่งไปยังบล็อกเชนโดยไม่ต้องจัดการกุญแจกระเป๋าเงินบัญชีบล็อกเชนของตนโดยตรง ผ่านกุญแจที่เก็บไว้ใน KMS แทน แพลตฟอร์ม KMS ของคลาวด์ที่รองรับโดย KMS API ได้แก่ GCP และ AWS.

ตัวอย่างเช่น KMS API สามารถใช้งานได้ดังนี้:


 

หากคุณมีคีย์ในคลาวด์ KMS แล้ว

  1. เตรียมข้อมูลรับรองคลาวด์
  2. ลงทะเบียนข้อมูลบัญชีบริการคลาวด์ (Credentials) ที่ Hive Console > Blockchain > KMS Credentials > Add Credentials และรับ x-credential-id
  3. เตรียมข้อมูลคีย์ KMS ของคลาวด์
  4. เรียก API เพื่อ ลงทะเบียนที่อยู่กระเป๋าเงิน
  5. รับที่อยู่กระเป๋าเงิน
  6. สอบถามข้อมูลกระเป๋าเงิน KMS
  7. สร้างธุรกรรมด้วยกระเป๋าเงิน KMS: เรียก APIs สำหรับการสร้างธุรกรรมใหม่ เช่น การส่งโทเค็น และ การปรับใช้สัญญาอัจฉริยะ
  8. ลงนามธุรกรรมที่สร้างขึ้นด้วย KMS Sign API
  9. ส่งธุรกรรมที่ลงนามไปยัง เครือข่ายบล็อกเชน


หากคุณไม่ได้ใช้ cloud KMS หรือหากไม่มีคีย์ใน cloud KMS

  1. เตรียมบัญชีบริการ KMS บนคลาวด์
  2. สร้างคีย์กระเป๋า: สร้างมันโดย API การสร้างคีย์กระเป๋า
    1. เตรียมข้อมูลรับรองคลาวด์
    2. เตรียม คีย์การตรวจสอบสิทธิ์ API Blockchain
    3. ลงทะเบียนข้อมูลบัญชีบริการคลาวด์ (Credentials) ที่ Hive Console > Blockchain > KMS Credentials > Add Credentials และรับ x-credential-id
    4. ใช้ x-credential-id และคีย์การตรวจสอบสิทธิ์ API เพื่อ สร้างคีย์กระเป๋า KMS
    5. รับคีย์กระเป๋าและที่อยู่กระเป๋า
  3. สอบถามข้อมูลกระเป๋า KMS
  4. สร้างธุรกรรมด้วยกระเป๋า KMS: เรียกใช้ API สำหรับการสร้างธุรกรรมใหม่ เช่น การส่งโทเค็น และ การปรับใช้สัญญาอัจฉริยะ
  5. ลงนามธุรกรรมที่สร้างขึ้นด้วย KMS Sign API
  6. ส่งธุรกรรมที่ลงนามไปยัง เครือข่ายบล็อกเชน


Note

การทำธุรกรรมที่สามารถลงนามด้วย KMS Sign API จะเป็นเพียงธุรกรรมที่สร้างด้วยกุญแจกระเป๋า KMS เท่านั้น


ข้อกำหนดเบื้องต้น

ลงทะเบียน Credentials ของ Cloud KMS ของคุณใน Hive Console > Blockchain > KMS Credentials > เพิ่ม Credentials.

การสร้างที่อยู่กระเป๋าเงินบัญชีบล็อกเชนและกุญแจกระเป๋าเงิน KMS

สร้างกุญแจกระเป๋าใน KMS โดยใช้บัญชีบริการคลาวด์ของคุณ และตามกุญแจกระเป๋านี้ สร้างที่อยู่กระเป๋าบัญชีบล็อกเชน กุญแจกระเป๋าจะถูกเก็บไว้ใน KMS และไม่สามารถตรวจสอบได้ หากมีความล่าช้าในระหว่างกระบวนการสร้างกุญแจ ที่อยู่กระเป๋าอาจไม่รวมอยู่ในการตอบสนอง API คุณสามารถเรียกคืนที่อยู่กระเป๋าโดยใช้ KMS Wallet Information Inquiry API พร้อมกับ ID กุญแจ (keyId).

URL ที่ร้องขอ

ลิงก์สด https://bc-api.qpyou.cn/core/v1/kms
ลิงก์ Sandbox https://sandbox-bc-api.qpyou.cn/core/v1/kms
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
x-network เครือข่าย Blockchain string Y
x-credential-id ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentials ใน Hive Console string Y
Authorization โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียก API string Y

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
keyName ป้อนชื่อที่ต้องการสำหรับคีย์ที่จะสร้าง string Y
keyOptions ข้อมูลตัวเลือกคีย์กระเป๋า KMS json Y
keyOptions.location สถานที่ที่คีย์จะถูกเก็บ นี่หมายถึงข้อมูลสถานที่ KMS ที่ใช้โดยบริการคลาวด์แต่ละราย string * GCP: Y (location, ตัวอย่าง: asia-northeast3)
* AWS: Y (region, ตัวอย่าง: ap-northeast-2d)
keyOptions.project GCP project ID string * GCP: Y
* AWS: N
keyOptions.keyRing ข้อมูลเกี่ยวกับ GCP KeyRing string * GCP: Y
* AWS: N

การตอบสนอง

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การเรียก API, 0: สำเร็จ number
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับ API json
data.keyId รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น string
data.keyName ชื่อเล่นของคีย์ที่สร้างขึ้น string
data.address ที่อยู่กระเป๋าเงินบัญชี Blockchain ที่สร้างด้วยคีย์ KMS string
data.purpose วัตถุประสงค์ของการใช้งานคีย์ string
data.algorithm ประเภทของอัลกอริธึมการสร้างคีย์ string
data.cloudType ประเภทของแพลตฟอร์มคลาวด์ string
data.network เครือข่าย Blockchain ที่คีย์จะถูกใช้ string
data.options ข้อมูลตัวเลือกคีย์ json
data.options.project รหัสโครงการ GCP string
data.options.location สถานที่ที่เก็บคีย์ string
data.options.keyRing ข้อมูลเกี่ยวกับ GCP KeyRing string
data.options.keyVersion ข้อมูลเกี่ยวกับเวอร์ชันคีย์ GCP string
data.regId รหัสผู้ลงทะเบียนคีย์ string
data.modId รหัสผู้ปรับเปลี่ยนคีย์ string
data.createdAt วันที่ลงทะเบียนคีย์ string
data.updatedAt วันที่ปรับเปลี่ยนคีย์ string

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

curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms' 
  -H 'accept: application/json' 
  -H 'x-credential-id: eb6cc005-b8d0-bc96-8b60-a531c2f15fd2' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiO... 
  -H 'Content-Type: application/json' 
  -d '{
  "keyName": "test-key",
  "keyOptions": {
    "project": "test-project",
    "location": "asia-northeast3",
    "keyRing": "test-keyring"
    },
    "requesterId": "system"
    }'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "success",
  "data": {
    "keyId": "test1-game-provider",
    "keyName": "projects/tribal-octane-403302/locations/asia-northeast3/keyRings/test-keyring-001/cryptoKeys/test1-game-provider/cryptoKeyVersions/1",
    "address": "0xc5AC98006fe612395b132742Fbe80a6Dc184670a",
    "purpose": "ASYMMETRIC_SIGN",
    "algorithm": "EC_SIGN_SECP256K1_SHA256",
    "cloudType": "gcp",
    "network": "polygon",
    "options": {
      "project": "project",
      "location": "asia-northeast3",
      "keyRing": "keyring",
      "keyVersion": "1"
    },
    "regId": "test",
    "modId": null,
    "createdAt": "2024-02-22T08:28:04.000Z",
    "updatedAt": null
  }
}

ลงทะเบียนที่อยู่กระเป๋าเงินบัญชีบล็อกเชน

สร้างที่อยู่กระเป๋าเงินบัญชีบล็อกเชนตามกุญแจกระเป๋า KMS และลงทะเบียนกับ Hive เซิร์ฟเวอร์ เมื่อใช้ GCP คุณต้องระบุเวอร์ชันของกุญแจ (keyVersion).

URL การร้องขอ

ลิงก์สด https://bc-api.qpyou.cn/core/v1/kms/import
ลิงก์ Sandbox https://sandbox-bc-api.qpyou.cn/core/v1/kms/import
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
x-network เครือข่ายบล็อกเชน สตริง ใช่
x-credential-id ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentials ใน Hive Console สตริง ใช่
Authorization โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียกใช้ API สตริง ใช่

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
keys ข้อมูลคีย์กระเป๋า KMS array(json) ใช่
keys.keyId รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น string ใช่
keys.keyVersion ข้อมูลเวอร์ชันคีย์เมื่อใช้ GCP string * GCP: ใช่
* AWS: ไม่
keyOptions ข้อมูลตัวเลือกคีย์ json ใช่
keyOptions.location ตำแหน่งที่จัดเก็บคีย์ นี่คือข้อมูลตำแหน่ง KMS ที่ใช้โดยแต่ละคลาวด์ string * GCP: ใช่ (location, ตัวอย่าง: asia-northeast3)
* AWS: ใช่ (region, ตัวอย่าง: ap-northeast-2d)
keyOptions.project รหัสโปรเจ็กต์ GCP string * GCP: ใช่
* AWS: ไม่
keyOptions.keyRing ข้อมูลเกี่ยวกับ GCP key ring string * GCP: ใช่
* AWS: ไม่
requesterId รหัสผู้ขอ ข้อมูลนี้เป็นค่าที่กำหนดเองเพื่อแยกแยะผู้เรียก API รหัสบัญชีที่เข้าสู่ระบบใน Hive Console จะถูกป้อนเป็น requesterId เมื่อสร้างกระเป๋า KMS string ไม่

การตอบสนอง

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การเรียก API, 0: สำเร็จ number
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับ API json
data.keyId รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น string
data.keyName ชื่อเล่นของคีย์ที่สร้างขึ้น string
data.address ที่อยู่กระเป๋าเงินบัญชี Blockchain ที่สร้างด้วยคีย์ KMS string
data.purpose วัตถุประสงค์ในการใช้คีย์ string
data.algorithm ประเภทของอัลกอริธึมการสร้างคีย์ string
data.cloudType ประเภทของแพลตฟอร์มคลาวด์ string
data.network เครือข่าย Blockchain ที่คีย์จะถูกใช้ string
data.options ข้อมูลตัวเลือกคีย์ json
data.options.project รหัสโครงการ GCP string
data.options.location ตำแหน่งที่เก็บคีย์ string
data.options.keyRing ข้อมูลเกี่ยวกับ GCP key ring string
data.options.keyVersion ข้อมูลเกี่ยวกับ GCP key version string
data.regId รหัสของผู้ลงทะเบียนคีย์ ซึ่งเหมือนกับ requesterId string
data.modId รหัสของผู้แก้ไขคีย์ string
data.createdAt วันที่ลงทะเบียนคีย์ string
data.updatedAt วันที่แก้ไขคีย์ string

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

curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms/import' 
  -H 'accept: application/json' 
  -H 'x-credential-id: 9b3c0c1d-868c-71ea-a1a9-e615148b7f14' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiOm51bGwsInJvb...' 
  -H 'Content-Type: application/json' 
  -d '{
  "keys": [
    {
      "keyId": "test1-game-provider",
      "keyVersion": "1"
    }
  ],
  "keyOptions": {
    "project": "kms-test",
    "location": "asia-northeast3",
    "keyRing": "key-ring"
  },
  "requesterId": "system"
}'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "success",
  "data": {
    "keyId": "kms-key-002",
    "keyName": "projects/quixotic-carver-412405/locations/asia-northeast3/keyRings/keyring/cryptoKeys/kms-key-002/cryptoKeyVersions/1",
    "address": "0x1e0481127b0ed12b6b6911bec32d414d76042860",
    "purpose": "ASYMMETRIC_SIGN",
    "algorithm": "EC_SIGN_SECP256K1_SHA256",
    "cloudType": "gcp",
    "network": "polygon",
    "options": {
      "project": "quixotic-carver-412405",
      "location": "asia-northeast3",
      "keyRing": "keyring",
      "keyVersion": "1"
    },
    "regId": "system",
    "modId": null,
    "createdAt": "2024-02-22T08:28:04.000Z",
    "updatedAt": null
  }
}

ดึงข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋าบัญชี

ดึงข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋า account โดยใช้ ID ที่ไม่ซ้ำกัน (keyId) ของ KMS wallet key หรือชื่อคีย์ (keyName) ซึ่งสามารถใช้ได้หากคุณไม่สามารถตรวจสอบที่อยู่กระเป๋าได้เมื่อ สร้างคีย์

URL การร้องขอ

ลิงก์สด https://bc-api.qpyou.cn/core/v1/kms/{key}
ลิงก์ Sandbox https://sandbox-bc-api.qpyou.cn/core/v1/kms/{key}
วิธีการ HTTP GET
ประเภทเนื้อหา application/json

พารามิเตอร์เส้นทาง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
key รหัสประจำตัวที่ไม่ซ้ำกันของคีย์ หรือชื่อคีย์ สตริง ใช่

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
x-credential-id ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentials ใน Hive Console string Y
Authorization โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียก API string Y

การตอบสนอง

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การเรียก API, 0:สำเร็จ หมายเลข
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ API json
data.keyId รหัสประจำตัวที่ไม่ซ้ำของกุญแจที่สร้างขึ้น สตริง
data.keyName ชื่อเล่นของกุญแจที่สร้างขึ้น สตริง
data.purpose วัตถุประสงค์ของการใช้งานกุญแจ สตริง
data.algorithm ประเภทของอัลกอริธึมการสร้างกุญแจ สตริง
data.cloudType ประเภทของแพลตฟอร์มคลาวด์ สตริง
data.network เครือข่ายบล็อกเชนที่กุญแจจะถูกใช้ สตริง
data.options ข้อมูลตัวเลือกกุญแจ json
data.options.project รหัสโครงการ GCP สตริง
data.options.location สถานที่ที่เก็บกุญแจ สตริง
data.options.keyRing ข้อมูลวงแหวนกุญแจ GCP สตริง
data.options.keyVersion ข้อมูลเวอร์ชันกุญแจ GCP สตริง
data.regId รหัสผู้ลงทะเบียนกุญแจ สตริง
data.modId รหัสผู้แก้ไขกุญแจ สตริง
data.createdAt วันที่ลงทะเบียนกุญแจ สตริง
data.updatedAt วันที่แก้ไขกุญแจ สตริง

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

curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms/kms-key-002' 
  -H 'accept: application/json' 
  -H 'x-credential-id: 9b3c0c1d-868c-71ea-a1a9-e615148b7f14' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiOm51bGwsInJvbGUiOiJhZG1pb...'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "success",
  "data": {
    "keyId": "test1-game-provider",
    "keyName": "projects/tribal-octane-403302/locations/asia-northeast3/keyRings/test-keyring-001/cryptoKeys/test1-game-provider/cryptoKeyVersions/1",
    "address": "0xc5AC98006fe612395b132742Fbe80a6Dc184670a",
    "purpose": "ASYMMETRIC_SIGN",
    "algorithm": "EC_SIGN_SECP256K1_SHA256",
    "cloudType": "gcp",
    "network": "polygon",
    "options": {
      "project": "project",
      "location": "asia-northeast3",
      "keyRing": "keyring",
      "keyVersion": "1"
    },
    "regId": "test",
    "modId": null,
    "createdAt": "2024-02-22T08:28:04.000Z",
    "updatedAt": null
  }
}

ดึงข้อมูลกระเป๋า KMS key และรายการที่อยู่กระเป๋า

ดึงข้อมูลรายการข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋าบัญชี

URL ที่ร้องขอ

ลิงก์สด https://bc-api.qpyou.cn/core/v1/kms
ลิงก์ Sandbox https://sandbox-bc-api.qpyou.cn/core/v1/kms
วิธีการ HTTP GET
ประเภทเนื้อหา application/json

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
x-network เครือข่ายบล็อกเชน สตริง ใช่
x-credential-id ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentials ใน Hive Console สตริง ใช่
Authorization โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียกใช้ API สตริง ใช่

พารามิเตอร์การค้นหา

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
page หมายเลขหน้าปัจจุบัน หมายเลข ไม่
limit จำนวนข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋าบัญชีที่จะแสดงต่อหน้า หมายเลข ไม่

การตอบสนอง

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การเรียก API, 0: สำเร็จ หมายเลข
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ API json
data.kms รายการข้อมูลคีย์กระเป๋า KMS และที่อยู่กระเป๋า อาร์เรย์(json)
data.meta ข้อมูลการแบ่งหน้า json
data.meta.totalItems จำนวนรายการทั้งหมดที่ค้นหา (จำนวนคีย์กระเป๋า KMS และข้อมูลที่อยู่กระเป๋า) หมายเลข
data.meta.itemsPerPage จำนวนข้อมูลคีย์กระเป๋า KMS และข้อมูลที่อยู่กระเป๋าที่แสดงต่อหน้า หมายเลข
data.meta.totalPages จำนวนหน้าทั้งหมด หมายเลข
data.meta.currentPage หมายเลขหน้าปัจจุบัน หมายเลข

ข้อมูลของแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์ data.kms: ข้อมูลคีย์กระเป๋า KMS และที่อยู่กระเป๋าบัญชี

ชื่อฟิลด์ คำอธิบาย ประเภท
keyId รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น string
keyName ชื่อเล่นของคีย์ที่สร้างขึ้น string
address ที่อยู่กระเป๋าเงินบัญชีบล็อกเชนที่สร้างขึ้นด้วยคีย์ KMS string
purpose วัตถุประสงค์ในการใช้คีย์ string
algorithm ประเภทของอัลกอริธึมการสร้างคีย์ string
cloudType ประเภทของแพลตฟอร์มคลาวด์ string
network เครือข่ายบล็อกเชนที่คีย์จะถูกใช้ string
options ข้อมูลตัวเลือกคีย์ json
options.project รหัสโครงการ GCP string
options.location สถานที่ที่คีย์ถูกเก็บ string
options.keyRing ข้อมูลคีย์ริง GCP string
options.keyVersion ข้อมูลเวอร์ชันคีย์ GCP string
regId รหัสผู้ลงทะเบียนคีย์ string
modId รหัสผู้แก้ไขคีย์ string
createdAt วันที่ลงทะเบียนคีย์ string
updatedAt วันที่แก้ไขคีย์ string

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

curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms?page=1&limit=10' 
  -H 'accept: application/json' 
  -H 'x-credential-id: 41e26545-547e-7632-be1f-289f75c092d2' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiOm51bGwsInJv...'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "success",
  "data": {
    "kms": [
      {
        "keyId": "test-polygon-001",
        "keyName": "projects/tribal-octane-403302/locations/asia-northeast3/keyRings/test-keyring-001/cryptoKeys/test-polygon-001/cryptoKeyVersions/1",
        "address": "0x599220fb6cd54553b9c2dfda3b0f711d7ebc21fb",
        "purpose": "ASYMMETRIC_SIGN",
        "algorithm": "EC_SIGN_SECP256K1_SHA256",
        "cloudType": "gcp",
        "network": "polygon",
        "options": {
          "project": "tribal-octane-403302",
          "location": "asia-northeast3",
          "keyRing": "test-keyring-001",
          "keyVersion": "1"
        },
        "regId": "system",
        "modId": null,
        "createdAt": "2024-02-22T08:27:58.000Z",
        "updatedAt": null
      },{
        "keyId": "kms-key-002",
        "keyName": "projects/quixotic-carver-412405/locations/asia-northeast3/keyRings/keyring/cryptoKeys/kms-key-002/cryptoKeyVersions/1",
        "address": "0x1e0481127b0ed12b6b6911bec32d414d76042860",
        "purpose": "ASYMMETRIC_SIGN",
        "algorithm": "EC_SIGN_SECP256K1_SHA256",
        "cloudType": "gcp",
        "network": "polygon",
        "options": {
          "project": "quixotic-carver-412405",
          "location": "asia-northeast3",
          "keyRing": "keyring",
          "keyVersion": "1"
        },
        "regId": "system",
        "modId": null,
        "createdAt": "2024-02-22T08:28:04.000Z",
        "updatedAt": null
      }
    ],
    "meta": {
      "totalItems": 2,
      "itemCount": 2,
      "itemsPerPage": 10,
      "totalPages": 1,
      "currentPage": 1
    }
  }
}

ลงนามธุรกรรมด้วยกุญแจกระเป๋า KMS

ลงนามธุรกรรมด้วยกุญแจกระเป๋า KMS เท่านั้น ธุรกรรมที่สร้างขึ้นด้วยบัญชีกระเป๋า KMS เท่านั้นที่สามารถลงนามด้วยกุญแจกระเป๋า KMS ได้

URL การร้องขอ

ลิงก์สด https://bc-api.qpyou.cn/core/v1/kms/sign
ลิงก์ Sandbox https://sandbox-bc-api.qpyou.cn/core/v1/kms/sign
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
x-credential-id ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentials ใน Hive Console string Y
Authorization โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียกใช้ API string Y

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
from ที่อยู่กระเป๋า KMS ที่จะใช้ในการสร้างลายเซ็น ต้องตรงกับ from ใน Request Body ของ API (ตัวอย่าง) ที่สร้างธุรกรรม string Y
unsignedTx ข้อมูลธุรกรรมที่ยังไม่ได้ลงนาม นี่คือ data.rawTx ที่คุณได้รับเป็นการตอบกลับเมื่อสร้างธุรกรรม ประเภทต่อไปนี้ได้รับการสนับสนุนสำหรับ unsignedTx:
1. ข้อมูลธุรกรรม
2. ข้อมูลธุรกรรมหลายลายเซ็น (เมื่อ x-network คือ polygon)
string Y

การตอบสนอง

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การเรียก API, 0: สำเร็จ number
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับของ API json
data.signedTx ข้อมูลของธุรกรรมที่ลงนาม string

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

curl -X 'POST' 
  'http://sandbox-bc-api.qpyou.cn/core/v1/kms/sign' 
  -H 'accept: application/json' 
  -H 'x-credential-id: eb6cc005-b8d0-bc96-8b60-a531c2f15fd2' 
  -H 'Content-Type: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20yd...' 
  -d '{
  "from": "0xc5AC98006fe612395b132742Fbe80a6Dc184670a",
  "unsignedTx": "0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125..."
}'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "success",
  "data": {
    "signedData": "string"
  }
}