diff --git a/content/_snippets/rippled-api-links.md b/content/_snippets/rippled-api-links.md
index 132529dfcbb..acb4bee6761 100644
--- a/content/_snippets/rippled-api-links.md
+++ b/content/_snippets/rippled-api-links.md
@@ -192,6 +192,7 @@
"DepositPreauth",
"EnforceInvariants",
"Escrow",
+ "ExpandedSignerList",
"FeeEscalation",
"fix1201",
"fix1368",
@@ -207,6 +208,7 @@
"fix1623",
"fixCheckThreading",
"fixMasterKeyAsRegularKey",
+ "fixNFTokenDirV1",
"fixPayChanRecipientOwnerDir",
"fixQualityUpperBound",
"fixTakerDryOfferRemoval",
@@ -216,6 +218,7 @@
"MultiSign",
"MultiSignReserve",
"NegativeUNL",
+ "NonFungibleTokensV1",
"OwnerPaysFee",
"PayChan",
"RequireFullyCanonicalSig",
diff --git a/content/concepts/consensus-network/amendments/known-amendments.ja.md b/content/concepts/consensus-network/amendments/known-amendments.ja.md
index f37da0da8b7..c8d90ad7953 100644
--- a/content/concepts/consensus-network/amendments/known-amendments.ja.md
+++ b/content/concepts/consensus-network/amendments/known-amendments.ja.md
@@ -14,9 +14,12 @@ labels:
| 名前 | 導入済み | ステータス |
|:--------------------------------|:-----------|:------------------------------------|
-| [CheckCashMakesTrustLine][] | v1.8.0 | [開発中: 未定]( "BADGE_LIGHTGREY") |
| [CryptoConditionsSuite][] | 未定 | [開発中: 未定]( "BADGE_LIGHTGREY") |
| [OwnerPaysFee][] | 未定 | [開発中: 未定]( "BADGE_LIGHTGREY") |
+| [ExpandedSignerList][] | v1.9.1 | [投票中: 未定](https://xrpl.org/blog/2022/rippled-1.9.1.html "BADGE_80d0e0") |
+| [fixNFTokenDirV1][] | v1.9.1 | [投票中: 未定](https://xrpl.org/blog/2022/rippled-1.9.1.html "BADGE_80d0e0") |
+| [NonFungibleTokensV1][] | v1.9.0 | [投票中: 未定](https://xrpl.org/blog/2022/rippled-1.9.0.html "BADGE_80d0e0") |
+| [CheckCashMakesTrustLine][] | v1.8.0 | [投票中: 未定](https://xrpl.org/blog/2021/rippled-1.8.1.html "BADGE_80d0e0") |
| [NegativeUNL][] | v1.7.3 | [有効: 2021/11/21](https://livenet.xrpl.org/transactions/1500FADB73E7148191216C53040990E829C7110788B26E7F3246CB3660769EBA "BADGE_GREEN") |
| [fixRmSmallIncreasedQOffers][] | v1.7.2 | [有効: 2021/11/18](https://livenet.xrpl.org/transactions/1F37BA0502576DD7B5464F47641FA95DEB55735EC2663269DFD47810505478E7 "BADGE_GREEN") |
| [TicketBatch][] | v1.7.0 | [有効: 2021/11/18](https://livenet.xrpl.org/transactions/111B32EDADDE916206E7315FBEE2DA1521B229F207F65DD314829F13C8D9CA36 "BADGE_GREEN") |
@@ -186,6 +189,21 @@ This amendment does not change the fact that you cannot force anyone to hold tok
XRP Ledger内のEscrowにXRPの「停止された支払い」機能を提供します。これには[Interledger Protocol Crypto-Conditions](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02)のサポートが含まれます。停止された支払い用のレジャーオブジェクトタイプと、停止された支払いを作成、実行、取り消すためのトランザクションタイプを新規作成します。
+
+## ExpandedSignerList
+[ExpandedSignerList]: #expandedsignerlist
+
+| Amendment ID | ステータス |
+|:-----------------------------------------------------------------|:---------|
+| B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 | 投票中 |
+
+
+This amendment expands the maximum signer list size and allows each signer to have optional data associated with it. The additional data can be used to identify the signer, which may be useful for smart contracts, or for identifying who controls a key in a large organization: for example, you could store an IPv6 address or the identifier of a Hardware Security Module (HSM).
+
+Without this amendment, the maximum signer list size is 8 signers, and each signer has exactly two fields, `Account` and `SignerWeight`.
+
+With this amendment, the maximum [SignerList object][] size is 32 entries. Additionally, each `SignerEntry` object can contain an optional 256-bit `WalletLocator` field containing arbitrary data. This amendment changes the [SignerListSet transaction][] accordingly.
+
## FeeEscalation
[FeeEscalation]: #feeescalation
@@ -402,6 +420,19 @@ Checksトランザクションがアカウントのメタデータに影響を
この修正を有効にした場合、SetRegularKeyトランザクションはレギュラーキーがマスターキーに一致するよう設定できないため、そのようなトランザクションでは、トランザクションコードが`temBAD_REGKEY`になります。また、この修正により、署名検証コードが変更されるため、レギュラーキーがマスターキーに一致するよう_すでに_設定しているアカウントは、そのキーペアを使用して正常にトランザクションを送信できます。
+
+## fixNFTokenDirV1
+[fixNFTokenDirV1]: #fixnftokendirv1
+
+| Amendment ID | ステータス |
+|:-----------------------------------------------------------------|:---------|
+| 0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3 | 投票中 |
+
+
+This amendment fixes an off-by-one error that occurred in some corner cases when determining which `NFTokenPage` an `NFToken` object belongs on. It also adjusts the constraints of `NFTokenPage` invariant checks, so that certain error cases fail with a suitable error code such as `tecNO_SUITABLE_TOKEN_PAGE` instead of failing with a `tecINVARIANT_FAILED` error code.
+
+This amendment has no effect unless the [NonFungibleTokensV1][] amendment is enabled. To avoid bugs, the fixNFTokenDirV1 amendment should be enabled before the NonFungibleTokensV1 amendment.
+
## fixPayChanRecipientOwnerDir
[fixPayChanRecipientOwnerDir]: #fixpaychanrecipientownerdir
@@ -445,7 +476,7 @@ With this amendment, payments and trades can remove these types of Offers the sa
## fixSTAmountCanonicalize
[fixSTAmountCanonicalize]: #fixstamountcanonicalize
-| Amendment ID | ステータス |
+| Amendment ID | ステータス |
|:-----------------------------------------------------------------|:----------|
| 452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB | 有効 |
@@ -572,7 +603,37 @@ XRP Ledgerアカウントが[マルチ署名](multi-signing.html) SignerListを
| B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076 | 有効 |
-Implements a "Negative UNL" system, where the network can track which validators are temporarily offline and disregard those validators for quorum calculations. This can improve the liveness of the network during periods of network instability.
+Implements a "Negative UNL" system, where the network can track which validators are temporarily offline and disregard those validators for quorum calculations. This can improve the ability of the network to make progress during periods of network instability.
+
+
+## NonFungibleTokensV1
+[NonFungibleTokensV1]: #nonfungibletokensv1
+
+| Amendment ID | ステータス |
+|:-----------------------------------------------------------------|:---------|
+| 3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87 | 開発中 |
+
+
+Adds native support for non-fungible tokens. Standards Draft: [XLS-20d](https://github.com/XRPLF/XRPL-Standards/discussions/46).
+
+**Warning:** There is a known issue with this amendment that can cause `tecINVARIANT_FAILED` errors to appear in the ledger. The [fixNFTokenDirV1][] amendment fixes these issues and should be enabled before the NonFungibleTokensV1 amendment to avoid problems.
+
+This amendment adds 5 new transaction types:
+
+- [NFTokenAcceptOffer][]
+- [NFTokenBurn][]
+- [NFTokenCancelOffer][]
+- [NFTokenCreateOffer][]
+- [NFTokenMint][]
+
+It also adds 2 new ledger object types:
+
+- [NFTokenOffer object][]
+- [NFTokenPage object][]
+
+Additionally, it modifies the [AccountRoot object][] type to add 3 new optional fields: `MintedNFTokens`, `BurnedNFTokens`, and `NFTokenMinter`.
+
+It also modifies the [AccountSet transaction][] type to allow you to set the `NFTokenMinter` field.
## OwnerPaysFee
diff --git a/content/concepts/consensus-network/amendments/known-amendments.md b/content/concepts/consensus-network/amendments/known-amendments.md
index 2496c246e34..be35aa278be 100644
--- a/content/concepts/consensus-network/amendments/known-amendments.md
+++ b/content/concepts/consensus-network/amendments/known-amendments.md
@@ -14,9 +14,12 @@ The following is a comprehensive list of all known [amendments](amendments.html)
| Name | Introduced | Status |
|:--------------------------------|:-----------|:------------------------------|
-| [CheckCashMakesTrustLine][] | v1.8.0 | [In Development: TBD]( "BADGE_LIGHTGREY") |
| [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
| [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
+| [ExpandedSignerList][] | v1.9.1 | [Open for Voting: TBD](https://xrpl.org/blog/2022/rippled-1.9.1.html "BADGE_80d0e0") |
+| [fixNFTokenDirV1][] | v1.9.1 | [Open for Voting: TBD](https://xrpl.org/blog/2022/rippled-1.9.1.html "BADGE_80d0e0") |
+| [NonFungibleTokensV1][] | v1.9.0 | [Open for Voting: TBD](https://xrpl.org/blog/2022/rippled-1.9.0.html "BADGE_80d0e0") |
+| [CheckCashMakesTrustLine][] | v1.8.0 | [Open for Voting: TBD](https://xrpl.org/blog/2021/rippled-1.8.1.html "BADGE_80d0e0") |
| [NegativeUNL][] | v1.7.3 | [Enabled: 2021-11-21](https://livenet.xrpl.org/transactions/1500FADB73E7148191216C53040990E829C7110788B26E7F3246CB3660769EBA "BADGE_GREEN") |
| [fixRmSmallIncreasedQOffers][] | v1.7.2 | [Enabled: 2021-11-18](https://livenet.xrpl.org/transactions/1F37BA0502576DD7B5464F47641FA95DEB55735EC2663269DFD47810505478E7 "BADGE_GREEN") |
| [TicketBatch][] | v1.7.0 | [Enabled: 2021-11-18](https://livenet.xrpl.org/transactions/111B32EDADDE916206E7315FBEE2DA1521B229F207F65DD314829F13C8D9CA36 "BADGE_GREEN") |
@@ -221,6 +224,23 @@ Replaces the [SusPay](#suspay) and [CryptoConditions](#cryptoconditions) amendme
Provides "suspended payments" for XRP for escrow within the XRP Ledger, including support for [Interledger Protocol Crypto-Conditions](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02). Creates a new ledger object type for suspended payments and new transaction types to create, execute, and cancel suspended payments.
+## ExpandedSignerList
+[ExpandedSignerList]: #expandedsignerlist
+
+| Amendment | ExpandedSignerList |
+|:----------|:-----------|
+| Amendment ID | B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 |
+| Status | Open for Voting |
+| Default Vote (Latest stable release) | No |
+| Pre-amendment functionality retired? | No |
+
+This amendment expands the maximum signer list size and allows each signer to have optional data associated with it. The additional data can be used to identify the signer, which may be useful for smart contracts, or for identifying who controls a key in a large organization: for example, you could store an IPv6 address or the identifier of a Hardware Security Module (HSM).
+
+Without this amendment, the maximum signer list size is 8 entries, and each entry has exactly two fields, `Account` and `SignerWeight`.
+
+With this amendment, the maximum [SignerList object][] size is 32 entries. Additionally, each `SignerEntry` object can contain an optional 256-bit (32-byte) `WalletLocator` field containing arbitrary data. This amendment changes the [SignerListSet transaction][] accordingly.
+
+
## FeeEscalation
[FeeEscalation]: #feeescalation
@@ -499,6 +519,21 @@ Without this fix, a user can unintentionally "black hole" their account by setti
With this amendment enabled, a SetRegularKey transaction cannot set the regular key to match the master key; such a transaction results in the transaction code `temBAD_REGKEY`. Additionally, this amendment changes the signature verification code so that accounts which _already_ have their regular key set to match their master key can send transactions successfully using the key pair.
+## fixNFTokenDirV1
+[fixNFTokenDirV1]: #fixnftokendirv1
+
+| Amendment | fixNFTokenDirV1 |
+|:----------|:-----------|
+| Amendment ID | 0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3 |
+| Status | Open for Voting |
+| Default Vote (Latest stable release) | No |
+| Pre-amendment functionality retired? | No |
+
+This amendment fixes an off-by-one error that occurred in some corner cases when determining which `NFTokenPage` an `NFToken` object belongs on. It also adjusts the constraints of `NFTokenPage` invariant checks, so that certain error cases fail with a suitable error code such as `tecNO_SUITABLE_TOKEN_PAGE` instead of failing with a `tecINVARIANT_FAILED` error code.
+
+This amendment has no effect unless the [NonFungibleTokensV1][] amendment is enabled. To avoid bugs, the fixNFTokenDirV1 amendment should be enabled before the NonFungibleTokensV1 amendment.
+
+
## fixPayChanRecipientOwnerDir
[fixPayChanRecipientOwnerDir]: #fixpaychanrecipientownerdir
@@ -706,6 +741,38 @@ With this amendment enabled, the owner reserve for a new SignerList is 5 XRP, re
Implements a "Negative UNL" system, where the network can track which validators are temporarily offline and disregard those validators for quorum calculations. This can improve the ability of the network to make progress during periods of network instability.
+## NonFungibleTokensV1
+[NonFungibleTokensV1]: #nonfungibletokensv1
+
+| Amendment | NonFungibleTokensV1 |
+|:----------|:-----------|
+| Amendment ID | 3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87 |
+| Status | Open for Voting |
+| Default Vote (Latest stable release) | No |
+| Pre-amendment functionality retired? | No |
+
+Adds native support for non-fungible tokens. Standards Draft: [XLS-20d](https://github.com/XRPLF/XRPL-Standards/discussions/46).
+
+**Warning:** There is a known issue with this amendment that can cause `tecINVARIANT_FAILED` errors to appear in the ledger. The [fixNFTokenDirV1][] amendment fixes these issues and should be enabled before the NonFungibleTokensV1 amendment to avoid problems.
+
+This amendment adds 5 new transaction types:
+
+- [NFTokenAcceptOffer][]
+- [NFTokenBurn][]
+- [NFTokenCancelOffer][]
+- [NFTokenCreateOffer][]
+- [NFTokenMint][]
+
+It also adds 2 new ledger object types:
+
+- [NFTokenOffer object][]
+- [NFTokenPage object][]
+
+Additionally, it modifies the [AccountRoot object][] type to add 3 new optional fields: `MintedNFTokens`, `BurnedNFTokens`, and `NFTokenMinter`.
+
+It also modifies the [AccountSet transaction][] type to allow you to set the `NFTokenMinter` field.
+
+
## OwnerPaysFee
[OwnerPaysFee]: #ownerpaysfee
diff --git a/content/concepts/payment-system-basics/accounts/accounts.ja.md b/content/concepts/payment-system-basics/accounts/accounts.ja.md
index 087f6c44a59..7854e4af52b 100644
--- a/content/concepts/payment-system-basics/accounts/accounts.ja.md
+++ b/content/concepts/payment-system-basics/accounts/accounts.ja.md
@@ -121,7 +121,7 @@ XRP Ledgerのアドレスは、[base58][]_形式のディクショナリ_`rpshna
[![マスター公開鍵 + プレフィクスの種類 → アカウントID + チェックサム → アドレス](img/address-encoding.ja.png)](img/address-encoding.ja.png)
-公開鍵からXRP Ledgerアドレスを計算する式は次のとおりです。コード例全体については、[`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/encode_address.js)を参照してください。パスフレーズまたはシード値から公開鍵を導出するプロセスについては、[鍵の導出](cryptographic-keys.html#鍵導出)を参照してください。
+公開鍵からXRP Ledgerアドレスを計算する式は次のとおりです。コード例全体については、[`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js)を参照してください。パスフレーズまたはシード値から公開鍵を導出するプロセスについては、[鍵の導出](cryptographic-keys.html#鍵導出)を参照してください。
1. 次の必須アルゴリズムをインポートします。SHA-256、RIPEMD160、base58。base58のディクショナリーを設定します。
diff --git a/content/concepts/payment-system-basics/accounts/accounts.md b/content/concepts/payment-system-basics/accounts/accounts.md
index 497b319c4aa..d23cbb1677d 100644
--- a/content/concepts/payment-system-basics/accounts/accounts.md
+++ b/content/concepts/payment-system-basics/accounts/accounts.md
@@ -121,7 +121,7 @@ The following diagram shows the relationship between keys and addresses:
{{ include_svg("img/address-encoding.svg", "Master Public Key + Type Prefix → Account ID + Checksum → Address") }}
-The formula for calculating an XRP Ledger address from a public key is as follows. For the complete example code, see [`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/encode_address.js). For the process of deriving a public key from a passphrase or seed value, see [Key Derivation](cryptographic-keys.html#key-derivation).
+The formula for calculating an XRP Ledger address from a public key is as follows. For the complete example code, see [`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js). For the process of deriving a public key from a passphrase or seed value, see [Key Derivation](cryptographic-keys.html#key-derivation).
1. Import required algorithms: SHA-256, RIPEMD160, and base58. Set the dictionary for base58.
diff --git a/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md b/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md
index f860c29c906..bd9569ec4b0 100644
--- a/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md
+++ b/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md
@@ -142,7 +142,7 @@ XRP Ledgerでは、サポートされているさまざまなタイプのキー
- [シード定義](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/Seed.h)
- [汎用キー & Ed25519鍵導出](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp)
- [secp256k1鍵導出](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp)
-- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/key-derivation/key_derivation.py)。
+- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/key-derivation/py/key_derivation.py)。
- JavaScript: [`ripple-keypairs`](https://github.com/ripple/ripple-keypairs/)パッケージ。
### Ed25519鍵導出
diff --git a/content/concepts/payment-system-basics/accounts/cryptographic-keys.md b/content/concepts/payment-system-basics/accounts/cryptographic-keys.md
index 2e7dacee972..2ac11bd4490 100644
--- a/content/concepts/payment-system-basics/accounts/cryptographic-keys.md
+++ b/content/concepts/payment-system-basics/accounts/cryptographic-keys.md
@@ -154,7 +154,7 @@ The key derivation processes described here are implemented in multiple places a
- [Seed definition](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/Seed.h)
- [General & Ed25519 key derivation](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp)
- [secp256k1 key derivation](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp)
-- In Python 3 in [this repository's code samples section]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/key-derivation/key_derivation.py).
+- In Python 3 in [this repository's code samples section]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/key-derivation/py/key_derivation.py).
- In JavaScript in the [`ripple-keypairs`](https://github.com/ripple/ripple-keypairs/) package.
### Ed25519 Key Derivation
diff --git a/content/concepts/payment-system-basics/accounts/multi-signing.md b/content/concepts/payment-system-basics/accounts/multi-signing.md
index 607b78fe06b..ab483980280 100644
--- a/content/concepts/payment-system-basics/accounts/multi-signing.md
+++ b/content/concepts/payment-system-basics/accounts/multi-signing.md
@@ -23,27 +23,34 @@ Before you can multi-sign, you must create a list of which addresses can sign fo
The [SignerListSet transaction][] defines which addresses can authorize transactions from your address. You can include 1 to 8 addresses in a SignerList. The SignerList cannot include the sender's address and there can be no duplicate entries. You can control how many signatures are needed, in which combinations, by using the *SignerWeight* and *SignerQuorum* values of the SignerList.
-### SignerWeight
+If the [ExpandedSignerList amendment][] :not_enabled: is enabled, you can include 1 to 32 addresses in a SignerList.
-You can assign a weight to each signer in the SignerList. The weight represents the relative authority of the signer to other signers on the list. The higher the value, the more authorization authority. Individual SignerWeight values cannot exceed 216-1.
+### Signer Weight
-### SignerQuorum
+You can assign a weight to each signer in the SignerList. The weight represents the relative authority of the signer to other signers on the list. The higher the value, the more authorization authority. Individual weight values cannot exceed 216-1.
-The SignerQuorum value is the minimum SignerWeight total required to authorize a transaction. The SignerQuorum value must be attainable. The SignerQuorum must be greater than 0 but less than or equal to the sum of the SignerWeight values in the SignerList.
+### Signer Quorum
-### Examples Using SignerWeight and SignerQuorum
+The quorum value is the minimum weight total required to authorize a transaction. The quorum must be greater than 0 but less than or equal to the sum of the weight values in the SignerList: meaning, it must be possible to achieve a quorum with the given signer weights.
-For a typical use case, you might have a shared account with a SignerQuorum of 1, then give all participants a SignerWeight of 1. A single approval from any one of them is all that is required to approve a transaction.
+### Wallet Locator
-For a very important account, you might set the SignerQuorum to 3, with 3 participants that have a SignerWeight of 1. All of the participants must agree and approve each transaction.
+If the [ExpandedSignerList amendment][] :not_enabled: is enabled, you can also add up to 256 bits of arbitrary data to each signer's entry in the list. This data is not required or used by the network, but can be used by smart contracts or other applications to identify or confirm other data about the signers.
-Another account might also have a SignerQuorum of 3. You assign your CEO a SignerWeight of 3, 3 Vice Presidents a SignerWeight of 2 each, and 3 Directors a SignerWeight of 1 each. To approve a transaction for this account requires the approval of all 3 Directors (total weight of 3), 1 Vice President and 1 Director (total weight of 3), 2 Vice Presidents (total weight of 4), or the CEO (total weight of 3).
+### Examples Using Signer Weight and Signer Quorum
+
+The weight and quorum allow you to set an appropriate level of oversight for each transaction, based on the relative trust and authority relegated to responsible participants who manage the account.
+
+For a typical use case, you might have a shared account with a quorum of 1, then give all participants a weight of 1. A single approval from any one of them is all that is required to approve a transaction.
+
+For a very important account, you might set the quorum to 3, with 3 participants that have a weight of 1. All of the participants must agree and approve each transaction.
+
+Another account might also have a quorum of 3. You assign your CEO a weight of 3, 3 Vice Presidents a weight of 2 each, and 3 Directors a weight of 1 each. To approve a transaction for this account requires the approval of all 3 Directors (total weight of 3), 1 Vice President and 1 Director (total weight of 3), 2 Vice Presidents (total weight of 4), or the CEO (total weight of 3).
In each of the previous three use cases, you would disable the master key without configuring a regular key, so that multi-signing is the only way of [authorizing transactions](transaction-basics.html#authorizing-transactions).
-There might be a scenario where you create a multi-signing list as a "backup plan." The account owner normally uses a regular key for their transactions (not a multi-signing key). For safety, the owner adds a SignerList containing 3 friends, each with a weight of 1, and a SignerQuorum of 3. If the account owner were to lose the private key, they can ask their friends to multi-sign a transaction to replace the regular key.
+There might be a scenario where you create a multi-signing list as a "backup plan." The account owner normally uses a regular key for their transactions (not a multi-signing key). For safety, the owner adds a SignerList containing 3 friends, each with a weight of 1, and a quorum of 3. If the account owner were to lose the private key, they can ask their friends to multi-sign a transaction to replace the regular key.
-SignerWeight and SignerQuorum allow you to set an appropriate level of oversight for each transaction, based on the relative trust and authority relegated to responsible participants who manage the account.
## Sending Multi-Signed Transactions
@@ -53,7 +60,7 @@ To successfully submit a multi-signed transaction, you must do all of the follow
* The transaction must include the `SigningPubKey` field as an empty string.
* The transaction must include a [`Signers` field](transaction-common-fields.html#signers-field) containing an array of signatures.
* The signatures present in the `Signers` array must match signers defined in the SignerList.
-* For the provided signatures, the total `weight` associated with those signers must be equal or greater than the `quorum` for the SignerList.
+* For the provided signatures, the total weight associated with those signers must be equal or greater than the quorum for the SignerList.
* The [transaction cost](transaction-cost.html) (specified in the `Fee` field) must be at least (N+1) times the normal transaction cost, where N is the number of signatures provided.
* All fields of the transaction must be defined before collecting signatures. You cannot [auto-fill](transaction-common-fields.html#auto-fillable-fields) any fields.
* If presented in binary form, the `Signers` array must be sorted based on the numeric value of the signer addresses, with the lowest value first. (If submitted as JSON, the [submit_multisigned method][] handles this automatically.)
diff --git a/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.ja.md b/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.ja.md
index d3f71642aea..bf057114979 100644
--- a/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.ja.md
+++ b/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.ja.md
@@ -73,6 +73,7 @@ _([MultiSign Amendment][]が必要です。)_
|:---------------|:----------|:--------------|:--------------------------------|
| `Account` | 文字列 | AccountID | 署名がマルチ署名に提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 |
| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチ署名は、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 |
+| `WalletLocator` | 文字列 | Hash256 | (省略可)Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. Requires the [ExpandedSignerList amendment][] :not_enabled:. |
マルチ署名済みトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.html)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチ署名を別のマルチ署名の一部として使用することはできません。
diff --git a/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.md b/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.md
index ac8a1597ab6..1f23082e557 100644
--- a/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.md
+++ b/content/references/protocol-reference/ledger-data/ledger-object-types/signerlist.md
@@ -69,10 +69,11 @@ The `SignerEntries` may be any combination of funded and unfunded addresses that
Each member of the `SignerEntries` field is an object that describes that signer in the list. A Signer Entry has the following fields:
-| Name | JSON Type | Internal Type | Description |
-|:---------------|:----------|:--------------|:--------------------------------|
-| `Account` | String | AccountID | An XRP Ledger address whose signature contributes to the multi-signature. It does not need to be a funded address in the ledger. |
-| `SignerWeight` | Number | UInt16 | The weight of a signature from this signer. A multi-signature is only valid if the sum weight of the signatures provided meets or exceeds the signer list's `SignerQuorum` value. |
+| Name | JSON Type | Internal Type | Description |
+|:----------------|:----------|:--------------|:-------------------------------|
+| `Account` | String | AccountID | An XRP Ledger address whose signature contributes to the multi-signature. It does not need to be a funded address in the ledger. |
+| `SignerWeight` | Number | UInt16 | The weight of a signature from this signer. A multi-signature is only valid if the sum weight of the signatures provided meets or exceeds the signer list's `SignerQuorum` value. |
+| `WalletLocator` | String | Hash256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. Requires the [ExpandedSignerList amendment][] :not_enabled:. |
When processing a multi-signed transaction, the server looks up the `Account` values with respect to the ledger at the time of transaction execution. If the address _does not_ correspond to a funded [AccountRoot object](accountroot.html), then only the [master private key](cryptographic-keys.html) associated with that address can be used to produce a valid signature. If the account _does_ exist in the ledger, then it depends on the state of that account. If the account has a Regular Key configured, the Regular Key can be used. The account's master key can only be used if it is not disabled. A multi-signature cannot be used as part of another multi-signature.
diff --git a/content/references/protocol-reference/transactions/transaction-types/accountset.ja.md b/content/references/protocol-reference/transactions/transaction-types/accountset.ja.md
index a2f49fdaa18..dc0a5c6b534 100644
--- a/content/references/protocol-reference/transactions/transaction-types/accountset.ja.md
+++ b/content/references/protocol-reference/transactions/transaction-types/accountset.ja.md
@@ -58,7 +58,7 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro
アカウントの`Domain`フィールドには任意のドメインを挿入できます。アカウントとドメインが同一の人物または企業に属していることを証明するには、「双方向リンク」を確立することをお勧めします。
- 所有するアカウントに対して、所有するドメインを`Domain`フィールドで設定します。
-- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は`ripple.txt`とします。例については、を参照してください。
+- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は`ripple.txt`とします。
**注意:** 中間者攻撃を防止するには、最新のTLS証明書を使用してHTTPSでWebサイトを提供します。
## AccountSetのフラグ
diff --git a/content/references/protocol-reference/transactions/transaction-types/signerlistset.md b/content/references/protocol-reference/transactions/transaction-types/signerlistset.md
index 6704668e58b..556e10874c9 100644
--- a/content/references/protocol-reference/transactions/transaction-types/signerlistset.md
+++ b/content/references/protocol-reference/transactions/transaction-types/signerlistset.md
@@ -48,7 +48,7 @@ The SignerListSet transaction creates, replaces, or removes a list of signers th
| Field | JSON Type | [Internal Type][] | Description |
|:--------------|:----------|:------------------|:-----------------------------|
| `SignerQuorum` | Number | UInt32 | A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is greater than or equal to this value. To delete a signer list, use the value `0`. |
-| `SignerEntries` | Array | Array | (Omitted when deleting) Array of [`SignerEntry` objects](signerlist.html#signer-entry-object), indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 8 members. No address may appear more than once in the list, nor may the `Account` submitting the transaction appear in the list. |
+| `SignerEntries` | Array | Array | (Omitted when deleting) Array of [`SignerEntry` objects](signerlist.html#signer-entry-object), indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 8 members. If the [ExpandedSignerList amendment][] :not_enabled: is enabled, the list can have up to 32 members. No address may appear more than once in the list, nor may the `Account` submitting the transaction appear in the list. |
A successful SignerListSet transaction replaces the account's [`SignerList` object](signerlist.html) in the ledger, or adds one if it did not exist before. An account may not have more than one signer list. To delete a signer list, you must set `SignerQuorum` to `0` _and_ omit the `SignerEntries` field. Otherwise, the transaction fails with the error [`temMALFORMED`](tem-codes.html). A transaction to delete a signer list is considered successful even if there was no signer list to delete.
diff --git a/dactyl-config.yml b/dactyl-config.yml
index 221a0227102..fe0af7c05c4 100644
--- a/dactyl-config.yml
+++ b/dactyl-config.yml
@@ -4259,6 +4259,8 @@ known_broken_links:
- https://trezor.io/
- https://www.lmax.com/
- https://www.etoro.com/crypto/exchange/
+ - https://xrplnft.devpost.com/
+ - https://xrpl-hackathon-2021.devpost.com/project-gallery
# This site often times out, but it does work and is the original.
- https://theworld.com/~reinhold/diceware.html