マルチシグAPI
マルチシグネチャ(マルチシグ)APIを使用すると、複数のアカウントからの署名を必要とするトランザクションを作成および送信できるウォレットを作成できます。また、複数の署名を組み合わせることでトランザクションをマルチシグトランザクションに変換できます。
マルチシグウォレットを作成する¶
複数の署名を必要とするトランザクションをブロックチェーンに送信できるウォレットアカウントを作成します。
リクエストURL¶
ライブURL | https://bc-api.qpyou.cn/core/v1/multisig |
---|---|
サンドボックスURL | https://sandbox-bc-api.qpyou.cn/core/v1/multisig |
HTTPメソッド | POST |
コンテンツタイプ | application/json |
ヘッダーパラメータ¶
フィールド名 | 説明 | タイプ | 必須 |
---|---|---|---|
x-network | ブロックチェーンネットワーク | 文字列 | Y |
Authorization | APIを呼び出すために必要な認証トークン | 文字列 | Y |
リクエストボディ¶
フィールド名 | 説明 | タイプ | 必須 |
---|---|---|---|
from | これはマルチシグウォレットを作成するためのトランザクションを送信するアカウントアドレスです。Polygonブロックチェーンの場合、from はAPIレスポンス値data.rawTx に署名してこのトランザクションを送信する必要があります。 | string | Y |
signers | これらはマルチシグトランザクションに署名できるウォレットアドレスです。XPLAの場合、各ウォレットアドレスの公開鍵を取得できるアクティブなウォレットアドレスを提供する必要があります。ウォレットをアクティブにするには、ウォレットからブロックチェーンに任意のトランザクションを送信してください。 | array | Y |
threshold | トランザクションを送信するために必要な署名者の数(定足数) | number | Y |
応答¶
フィールド名 | 説明 | タイプ |
---|---|---|
code | APIリクエスト結果コード、0: 成功 | 数字 |
message | 結果メッセージ | 文字列 |
data | APIレスポンスデータ | JSON |
data.address | 作成されたマルチシグウォレットアドレス | 文字列 |
data.rawTx | これはマルチシグウォレットを作成するためのエンコードされたトランザクションデータです。Polygonブロックチェーンを使用する場合にのみ、このデータを受け取ります。 | 文字列 |
リクエストサンプル¶
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¶
ライブURL | https://bc-api.qpyou.cn/core/v1/multisig/tx |
---|---|
サンドボックスURL | https://sandbox-bc-api.qpyou.cn/core/v1/multisig/tx |
HTTPメソッド | POST |
コンテンツタイプ | application/json |
ヘッダーパラメータ¶
フィールド名 | 説明 | タイプ | 必須 |
---|---|---|---|
x-network | ブロックチェーンネットワーク | 文字列 | Y |
Authorization | APIを呼び出すために必要な認証トークン | 文字列 | Y |
リクエストボディ¶
フィールド名 | 説明 | タイプ | 必須 |
---|---|---|---|
encoded | 返されたトランザクションがエンコードされているかどうか * true : エンコードされた生トランザクション文字列(data.rawTx )を受け取る。 * false : デコードされたdata.rawTx (JSON)を受け取る。 | string | Y |
from | マルチシグトランザクションをブロックチェーンに送信するウォレットアドレス | string | Y |
to | マルチシグウォレットアドレス | string | Y |
tx | トランザクション作成API(トークンAPI、NFT APIなど)の応答として返されるdata.rawTx | stringまたはjson | Y |
signatures | 各署名者がトランザクションに署名した後に受け取る「署名」値(string) * polygon: data.hashedTx に署名した後に取得される「署名」値で、トランザクションを作成するAPIの応答値として返される * XPLA: data.rawTx に署名した後に取得される「署名」値で、トランザクションを作成するAPIの応答値として返される | array | Y |
応答¶
フィールド名 | 説明 | タイプ |
---|---|---|
code | APIリクエスト結果コード、0: 成功 | 数字 |
message | 結果メッセージ | 文字列 |
data | APIレスポンスデータ | JSON |
data.rawTx | これは作成されたマルチシグトランザクションのエンコードされたトランザクションデータです。Polygonブロックチェーンの場合、マルチシグトランザクションの作成者は、この値に署名した後にトランザクションをブロックチェーンに送信できます。 | 文字列 |
data.reqeustId | 各APIリクエストを識別できるユニークな値 | 文字列 |
リクエストサンプル¶
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..."
]
}'