跳转至

多重签名 API

使用多重签名(multi-sig)API,您可以创建一个钱包,该钱包可以创建和发送需要多个账户签名的交易,并且您可以通过将多个签名与交易结合来将交易转换为多重签名交易。

创建多签钱包

创建一个钱包账户,可以发送需要多个签名的交易到区块链。

请求 URL

直播网址 https://bc-api.qpyou.cn/core/v1/multisig
沙盒网址 https://sandbox-bc-api.qpyou.cn/core/v1/multisig
HTTP 方法 POST
内容类型 application/json

头部参数

字段名称 描述 类型 必需
x-network 区块链网络 字符串
Authorization 调用 API 所需的认证令牌 字符串

请求体

字段名称 描述 类型 必需
from 这是将发送创建多签钱包交易的账户地址。对于Polygon区块链,from应该签署API响应值data.rawTx发送此交易到Polygon区块链。 字符串
signers 这些是可以签署多签交易的钱包地址。对于XPLA,您需要提供可以获取每个钱包地址的公钥的活跃钱包地址。要使您的钱包活跃,请从您的钱包向区块链发送任何交易。 数组
threshold 发送交易所需的签名者数量(法定人数) 数字

响应

字段名称 描述 类型
code api 请求结果代码,0: 成功 number
message 结果消息 string
data API 响应数据 json
data.address 创建的多签钱包地址 string
data.rawTx 这是创建多签钱包的编码交易数据。只有在使用 Polygon 区块链时,您才会收到此数据。 string

请求示例

  curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/multisig' 
  -H 'accept: */*' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -d '{
      "signers": [
        "0xD6e69da7f1be111394dfef4C48eaC9b52ddf2Fd0",
        "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463",
        "0xa245824a24daf3b312d3f59c7debf162c4993e8b"
      ],
      "threshold": 2,
      "from": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4"
      }'

响应示例

  // Polygon
  {
    "code": 0,
    "message": "success",
    "data": {
      "address": "0x777358b228a4720ffa088516294b324f8d24639c",
      "rawTx": "02f8748301388182010584c6ee355e84c6ee357682cdc49494853bdc9c6add50d7842..."
    }
  }

  // XPLA

  {
    "code": 0,
    "message": "success",
    "data": {
      "address": "xpla1qv6s9q8cpwjdwhxkcrrh447keslzu5t605w4gt"
    }
  }

创建多签交易

通过向交易添加签名,将交易转换为多签名交易。请参阅下面的步骤以创建多签名交易。

  1. 创建一个多签钱包。
  2. 创建一个将发送到区块链的交易(示例:发送代币
  3. 签名者签署创建的交易数据(data.rawTxdata.hashedTx),每个签名者收到“签名”字符串。
    • 如果阈值为3,则需要3个“签名”字符串。
  4. 每个签名者将“签名”字符串发送给将创建多签交易的人。
  5. 使用步骤2中创建的“签名”字符串和交易数据,多签交易的创建者调用此API以创建多签交易(最终将在区块链上记录的交易)。

上述多重签名交易的创建者可以签署创建的交易并将其发送到区块链。请注意,对于XPLA区块链,创建者应在未签署的情况下将多重签名交易发送到XPLA区块链。

Warning

交易的签名必须由玩家在其私人钱包中完成,或必须由游戏工作室提供。

请求 URL

直播网址 https://bc-api.qpyou.cn/core/v1/multisig/tx
沙盒网址 https://sandbox-bc-api.qpyou.cn/core/v1/multisig/tx
HTTP 方法 POST
内容类型 application/json

头部参数

字段名称 描述 类型 必需
x-network 区块链网络 字符串
Authorization 调用API所需的认证令牌 字符串

请求主体

字段名称 描述 类型 必需
encoded 返回的交易是否被编码
* true: 接收编码后的原始交易字符串 (data.rawTx)。
* false: 接收解码后的 data.rawTx (JSON)。
字符串
from 发送多重签名交易到区块链的钱包地址 字符串
to 多重签名钱包地址 字符串
tx 作为交易创建 API(Token API、NFT API 等)的响应返回的 data.rawTx 字符串或 JSON
signatures 每个签名者在签署交易后收到的“签名”值(字符串)
* polygon: 签署 data.hashedTx 后获得的“签名”值,作为创建交易的 API 的响应值返回
* XPLA: 签署 data.rawTx 后获得的“签名”值,作为创建交易的 API 的响应值返回
数组

响应

字段名称 描述 类型
code api 请求结果代码,0:成功 number
message 结果消息 string
data API 响应数据 json
data.rawTx 这是创建的多签交易的编码交易数据。对于 Polygon 区块链,多签交易的创建者可以在签署此值后将交易发送到区块链 string
data.reqeustId 可以识别每个 API 请求的唯一值 string

请求示例

curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/multisig/tx/0x777358b228a4720ffa088516294b324f8d24639c' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'Content-Type: application/json' 
  -d '{
  "encoded": false,
  "from": "0xD6e69da7f1be111394dfef4C48eaC9b52ddf2Fd0",
  "to": "0x777358b228a4720ffa088516294b324f8d24639c",
  "tx": "02f90113830138810c84a8d6983d84a8d6985483058bfe9431a6854383c81daab14089cba0b9de1d42ecd65f80",
  "signatures": [
   "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556...",
   "84655BB965D709A4AAD4104C7FFBD8E42F52F0BB313493FFDCA02B0..."
  ]
}'

响应示例

{
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076.....",
    "reqeustId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
  }
}