From 864c4123056fe538549d2a4f5149de634a5da4c5 Mon Sep 17 00:00:00 2001 From: Oliver Eggert Date: Tue, 4 Nov 2025 13:25:34 -0800 Subject: [PATCH 1/7] initialize 3.0 doc branch From ed4b18586b92123540d0c479b6147cb7ea2fcbd1 Mon Sep 17 00:00:00 2001 From: Oliver Eggert Date: Wed, 5 Nov 2025 21:14:14 -0800 Subject: [PATCH 2/7] update known amendment page --- resources/known-amendments.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/resources/known-amendments.md b/resources/known-amendments.md index d69b41a4212..69d3c92baad 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -169,7 +169,7 @@ See [Clawback](../docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md) f | Amendment | Credentials | |:-------------|:------------| | Amendment ID | 1CB67D082CF7D9102412D34258CEDB400E659352D3B207348889297A6D90F5EF | -| Status | Open for Voting | +| Status | Enabled | | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | @@ -1093,6 +1093,21 @@ Ledger entries that were created before this amendment was enabled will get the Without this amendment, some types of ledger entries don't have those fields, which makes it harder to trace the history of modifications to those ledger entries. +### fixPriceOracleOrder +[fixPriceOracleOrder]: #fixpriceoracleorder + +| Amendment | fixPriceOracleOrder | +|:-------------|:--------------------| +| Amendment ID | TBD | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | + +Fixes an issue where the order of asset pair data is different from when a price oracle is created versus when it is updated. + +This amendment ensures asset pairs follow a canonical order at all times. + + ### fixQualityUpperBound [fixQualityUpperBound]: #fixqualityupperbound @@ -1210,6 +1225,21 @@ Without this fix, the dry offer remains on the ledger and counts toward its owne With this amendment enabled, the XRP Ledger removes these dry offers when they're matched in auto-bridging. +### fixTokenEscrowV1 +[fixTokenEscrowV1]: #fixtokenescrowv1 + +| Amendment | fixTokenEscrowV1 | +|:-------------|:-----------------| +| Amendment ID | TBD | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | + +Fixes an accounting error in MPT escrows. Specifically, when an escrow unlocks MPTs that have a transfer fee, the system incorrectly reduces the MPT issuer's locked token balance by the gross amount (without fees) rather than the net amount (with fees). This leads to discrepancies in the token's total supply accounting. + +This amendment ensures that when escrowed MPTs are unlocked, the issuer's locked amount is reduced by the net amount, and the total supply is reduced by the transfer fees. + + ### fixTrustLinesToSelf [fixTrustLinesToSelf]: #fixtrustlinestoself From 6be3d0117af34ce960ddff38a8f1d52a5b65798e Mon Sep 17 00:00:00 2001 From: oeggert <117319296+oeggert@users.noreply.github.com> Date: Mon, 10 Nov 2025 20:34:59 -0800 Subject: [PATCH 3/7] Update resources/known-amendments.md Co-authored-by: Rome Reginelli --- resources/known-amendments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/known-amendments.md b/resources/known-amendments.md index 69d3c92baad..eb9254b9269 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -1098,7 +1098,7 @@ Without this amendment, some types of ledger entries don't have those fields, wh | Amendment | fixPriceOracleOrder | |:-------------|:--------------------| -| Amendment ID | TBD | +| Amendment ID | FF2D1E13CF6D22427111B967BD504917F63A900CECD320D6FD3AC9FA90344631 | | Status | Open for Voting | | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | From 427d0ce441e45df41e80cb9c317b236eee3788bf Mon Sep 17 00:00:00 2001 From: oeggert <117319296+oeggert@users.noreply.github.com> Date: Mon, 10 Nov 2025 20:35:08 -0800 Subject: [PATCH 4/7] Update resources/known-amendments.md Co-authored-by: Rome Reginelli --- resources/known-amendments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/known-amendments.md b/resources/known-amendments.md index eb9254b9269..35720420e75 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -1230,7 +1230,7 @@ With this amendment enabled, the XRP Ledger removes these dry offers when they'r | Amendment | fixTokenEscrowV1 | |:-------------|:-----------------| -| Amendment ID | TBD | +| Amendment ID | 32B8614321F7E070419115ABEAB1742EA20F3E3AF34432B5E2F474F8083260DC | | Status | Open for Voting | | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | From 104d07c6bf975441f427bd8b90ff545362fd31d9 Mon Sep 17 00:00:00 2001 From: Oliver Eggert Date: Tue, 25 Nov 2025 15:13:15 -0800 Subject: [PATCH 5/7] add fixMPTDeliveredAmount amendment info --- resources/known-amendments.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/resources/known-amendments.md b/resources/known-amendments.md index 35720420e75..2319e703129 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -924,6 +924,19 @@ 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. +### fixMPTDeliveredAmount +[fixMPTDeliveredAmount]: #fixmptdeliveredamount + +| Amendment | fixMPTDeliveredAmount | +|:-------------|:----------------| +| Amendment ID | AB8D932A5F338903FE5BCBD80B611FFED70839ABA3170E9CE01D947C0EDEDCF2 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | + +This amendment adds missing `DeliveredAmount` or `delivered_amount` metadata fields from direct MPT `Payment` transactions. + + ### fixNFTokenDirV1 [fixNFTokenDirV1]: #fixnftokendirv1 From 938a85eac0f2eaf3bf6cf9d01517af82d3116abb Mon Sep 17 00:00:00 2001 From: Oliver Eggert Date: Tue, 2 Dec 2025 14:15:38 -0800 Subject: [PATCH 6/7] add lending protocol amendment and reviewer suggestion --- resources/known-amendments.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/resources/known-amendments.md b/resources/known-amendments.md index 2319e703129..f0125f597ab 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -23,6 +23,7 @@ The following is a list of [amendments](../docs/concepts/networks-and-servers/am |:----------------------------------|:------------------------------------------|:-------------------------------| | [Hooks][] | {% badge %}In Development: TBD{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | | [InvariantsV1_1][] | {% badge %}In Development: TBD{% /badge %} | | +| [LendingProtocol][] | {% badge %}In Development: TBD{% /badge %} | [Lending Protocol (Ripple Opensource)](https://opensource.ripple.com/docs/xls-66d-lending-protocol) | | [SingleAssetVault][] | {% badge %}In Development: TBD{% /badge %} | [Single Asset Vault (Ripple Opensource)](https://opensource.ripple.com/docs/xls-65d-single-asset-vault) | {% admonition type="success" name="Tip" %} @@ -934,7 +935,7 @@ With this amendment enabled, a SetRegularKey transaction cannot set the regular | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | -This amendment adds missing `DeliveredAmount` or `delivered_amount` metadata fields from direct MPT `Payment` transactions. +This amendment adds missing `DeliveredAmount` and `delivered_amount` metadata fields from direct MPT `Payment` transactions. ### fixNFTokenDirV1 @@ -1416,6 +1417,21 @@ This amendment adds several new invariants to protect the ledger against bugs in - When deleting an account, ensure that certain types of ledger entries are also deleted, including that account's `DirectoryNode`, `SignerList`, `NFTokenPage`, and `AMM` directories, if any, are deleted with it. +### LendingProtocol +[LendingProtocol]: #lendingprotocol + +| Amendment | LendingProtocol | +|:-------------|:-----------------| +| Amendment ID | 565B90CA1AB2B9D42208ED10884188C64F9E19083DECB9634AAF06EB03299509 | +| Status | In Development | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | + +The Lending Protocol enables on-chain, fixed-term, uncollateralized loans using pooled funds from a Single Asset Vault. This implementation relies on off-chain underwriting and risk management to assess the creditworthiness of borrowers, but offers configurable, peer-to-peer loans. + +Specification: [XLS-66](https://github.com/Tapanito/XRPL-Standards/tree/xls-66-lending-protocol/XLS-0066d-lending-protocol). + + ### MPTokensV1 [MPTokensV1]: #mptokensv1 From fa40ba2b71806a68e07132bb9c410ac50210b148 Mon Sep 17 00:00:00 2001 From: Oliver Eggert Date: Fri, 5 Dec 2025 14:13:27 -0800 Subject: [PATCH 7/7] add fixincludekeyletfields --- resources/known-amendments.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/resources/known-amendments.md b/resources/known-amendments.md index f0125f597ab..5c0d0d1ff07 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -855,6 +855,22 @@ With this amendment enabled, if an LP token is associated with a liquidity pool 2. The holder can receive frozen LP tokens, but can't send them out (similar to frozen trust lines). +### fixIncludeKeyletFields +[fixIncludeKeyletFields]: #fixincludekeyletfields + +| Amendment | fixIncludeKeyletFields | +|:-------------|:--------------------| +| Amendment ID | 6143A27B71F7DAF9330ECA7C5EC3D54C8083A4FDEF7016737EEC06AB61E82EE0 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | + +This amendment adds missing keylet fields to these ledger entries: + - `Sequence` to `Escrow` and `PayChannel`. + - `Owner` to `SignerList`. + - `OracleDocumentID` to `Oracle`. + + ### fixInnerObjTemplate [fixInnerObjTemplate]: #fixinnerobjtemplate