コンテンツにスキップ

マルチシグ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"
    }
  }

マルチシグトランザクションの作成

トランザクションに署名を追加することで、トランザクションをマルチシグトランザクションに変換します。マルチシグトランザクションを作成するための手順は以下を参照してください。

  1. マルチシグウォレットを作成します。
  2. ブロックチェーンに送信されるトランザクションを作成します(例: トークンを送信
  3. サイナーは作成されたトランザクションデータ(data.rawTxまたはdata.hashedTx)に署名し、それぞれが「署名」文字列を受け取ります。
    • 閾値が3の場合、3つの「署名」文字列が必要です。
  4. 各サイナーは「署名」文字列をマルチシグトランザクションを作成する人に送信します。
  5. 「署名」文字列とステップ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..."
  ]
}'

応答サンプル

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