# SignerListSet

[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetSignerList.cpp)

SignerListSetトランザクションは、トランザクションの[マルチシグ](/ja/docs/concepts/accounts/multi-signing)に使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプは[MultiSign Amendment](/ja/resources/known-amendments#multisign)により導入されました。

## のJSONの例


```json
{
   "Flags":0,
   "TransactionType":"SignerListSet",
   "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
   "Fee":"12",
   "SignerQuorum":3,
   "SignerEntries":[
       {
           "SignerEntry":{
               "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
               "SignerWeight":2
           }
       },
       {
           "SignerEntry":{
               "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v",
               "SignerWeight":1
           }
       },
       {
           "SignerEntry":{
               "Account":"raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
               "SignerWeight":1
           }
       }
   ]
}
```

##  フィールド

[共通フィールド](/ja/docs/references/protocol/transactions/common-fields)に加えて、トランザクションは以下のフィールドを使用します。

| フィールド | JSONの型 | [内部の型](/ja/docs/references/protocol/binary-format) | 説明 |
|  --- | --- | --- | --- |
| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチシグは、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 |
| SignerEntries | 配列 | 配列 | （削除する場合は省略）このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist#signerentry%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88)の配列。SignerListには1～32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 |


アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、*かつ*`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](/ja/docs/references/protocol/transactions/transaction-results/tem-codes)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。

SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストの`SignerWeight`値の合計以下でなければなりません。このようにしないと、トランザクションは[temMALFORMED](/ja/docs/references/protocol/transactions/transaction-results/tem-codes)エラーで失敗します。

トランザクションの署名にマスターキー、レギュラーキー、または現行のSignerListを使用できる場合は、これらを使用してSignerListを作成、更新、削除できます。

トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で（[`lsfDisableMaster`フラグ](/ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot#accountroot%E3%81%AE%E3%83%95%E3%83%A9%E3%82%B0)が有効な場合）、アカウントで[レギュラーキー](/ja/docs/concepts/accounts/cryptographic-keys)が設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションは[`tecNO_ALTERNATIVE_KEY`](/ja/docs/references/protocol/transactions/transaction-results/tec-codes)エラーで失敗します。

[MultiSignReserve Amendment](/ja/resources/known-amendments#multisignreserve)が有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListの[`OwnerCount`](/ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot#accountroot%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89)と[所有者準備金](/ja/docs/concepts/accounts/reserves#%E6%89%80%E6%9C%89%E8%80%85%E6%BA%96%E5%82%99%E9%87%91)を減らせます。詳細は、[SignerListのフラグ](/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist#signerlist%E3%81%AE%E3%83%95%E3%83%A9%E3%82%B0)をご覧ください。