多重签名 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"
}
}
创建多签交易¶
通过向交易添加签名,将交易转换为多签名交易。请参阅下面的步骤以创建多签名交易。
- 创建一个多签钱包。
- 创建一个将发送到区块链的交易(示例:发送代币)
- 签名者签署创建的交易数据(
data.rawTx
或data.hashedTx
),每个签名者收到“签名”字符串。- 如果阈值为3,则需要3个“签名”字符串。
- 每个签名者将“签名”字符串发送给将创建多签交易的人。
- 使用步骤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..."
]
}'