You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This list is updated manually. If you're working on an amendment and have a private network to test the changes, you can edit this page to add your in-development amendment to this list. For more information on contributing to the XRP Ledger, see [Contribute Code to the XRP Ledger](contribute-code/index.md).
@@ -153,6 +163,25 @@ Adds a new type of ledger entry, `AMM`, and adds an `AMMID` field to the `Accoun
153
163
Adds several new transaction result codes.
154
164
155
165
166
+
### AMMClawback
167
+
[AMMClawback]: #ammclawback
168
+
169
+
| Amendment | AMMClawback |
170
+
|:-------------|:------------|
171
+
| Amendment ID | 726F944886BCDF7433203787E93DD9AA87FAB74DFE3AF4785BA03BEFC97ADA1F |
172
+
| Status | Open for Voting |
173
+
| Default Vote (Latest stable release) | No |
174
+
| Pre-amendment functionality retired? | No |
175
+
176
+
Allows tokens with clawback enabled to be used in Automated Market Makers (AMMs). Adds a new transaction:
177
+
178
+
-**AMMClawback** - allows an issuer to claw back tokens that have been deposited in an AMM, if the token has clawback enabled.
179
+
180
+
Also modifies the AMMDeposit transaction type to prevent depositing frozen tokens into the AMM.
181
+
182
+
For details, see the [XLS-73: AMMClawback specification](https://github.com/XRPLF/XRPL-Standards/discussions/212).
@@ -204,6 +233,43 @@ Clawback is disabled by default. To use clawback, you must set the `lsfAllowTrus
204
233
See [Clawback](../docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md) for details on this amendment.
205
234
206
235
236
+
### Credentials
237
+
[Credentials]: #credentials
238
+
239
+
| Amendment | Credentials |
240
+
|:-------------|:------------|
241
+
| Amendment ID | 1CB67D082CF7D9102412D34258CEDB400E659352D3B207348889297A6D90F5EF |
242
+
| Status | Open for Voting |
243
+
| Default Vote (Latest stable release) | No |
244
+
| Pre-amendment functionality retired? | No |
245
+
246
+
Introduces Credentials, a set of tools for managing authorization and compliance requirements using the XRP Ledger. Adds three new transaction types for managing credentials:
247
+
248
+
- CredentialCreate transaction - Create a credential in the ledger.
249
+
- CredentialAccept transaction - Accept a credential issued to you.
250
+
- CredentialDelete transaction - Delete a credential from the ledger.
251
+
252
+
Modifies an existing transaction type:
253
+
254
+
- DepositPreauth transaction - Authorizes deposits to your account. Modified to allow credential-based authorization.
255
+
256
+
Adds a new field to several existing transaction types:
257
+
258
+
-`CredentialIDs` field - Credentials to prove authorization to deposit money. Added to Payment, EscrowFinish, PaymentChannelClaim, and AccountDelete transaction types.
259
+
260
+
Adds a new type of ledger entry:
261
+
262
+
- Credential ledger entry - Stores a credential in the ledger.
263
+
264
+
Modifies an existing type of ledger entry:
265
+
266
+
- DepositPreauth ledger entry - Records authorization for depositing to a specific account; modified to allow for credential-based authorization.
267
+
268
+
Also extends the `deposit_authorized` API method to check for credential-based auth and extends the `ledger_entry` method to allow lookup of Credential entries.
269
+
270
+
For more details, see the [XLS-70: Credentials specification](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0070d-credentials).
271
+
272
+
207
273
### CryptoConditions
208
274
[CryptoConditions]: #cryptoconditions
209
275
@@ -660,6 +726,22 @@ This amendment fixes the improper handling of large synthetic AMM offers in the
660
726
Fixes AMM offer rounding and low quality order book offers from blocking the AMM.
661
727
662
728
729
+
### fixAMMv1_2
730
+
[fixAMMv1_2]: #fixammv1_2
731
+
732
+
| Amendment | fixAMMv1_2 |
733
+
|:-------------|:-----------|
734
+
| Amendment ID | 1E7ED950F2F13C4F8E2A54103B74D57D5D298FFDBD005936164EE9E6484C438C |
735
+
| Status | Open for Voting |
736
+
| Default Vote (Latest stable release) | No |
737
+
| Pre-amendment functionality retired? | No |
738
+
739
+
Fixes two bugs in Automated Market Maker (AMM) transaction processing:
740
+
741
+
- Fixes a bug that causes AMMWithdraw to not properly apply a reserve check before creating trust lines in some cases.
742
+
- Fixes a bug in payment processing that causes cross-currency payments not to use the full amount of liquidity available from the combination of AMM and order books in some cases.
743
+
744
+
663
745
### fixCheckThreading
664
746
[fixCheckThreading]: #fixcheckthreading
665
747
@@ -718,6 +800,22 @@ Without this amendment, an empty DID can be created, which takes up space and co
718
800
This amendment has no effect unless the [DID][] amendment is enabled.
| Amendment ID | 763C37B352BE8C7A04E810F8E462644C45AFEAD624BF3894A08E5C917CF9FF39 |
809
+
| Status | Open for Voting |
810
+
| Default Vote (Latest stable release) | No |
811
+
| Pre-amendment functionality retired? | No |
812
+
813
+
Fixes two bugs relating to the handling of NFT transfer fees and trust lines:
814
+
815
+
- Adds a check to [NFTokenAcceptOffer transactions][] to ensure that the minter has a trust line to accept the transfer fee. Without this amendment, the check only applies when an NFT trade offer is created, not when the offer is accepted; as a result, if a necessary trust line is removed in between creating and accepting the offer, the trust line is inappropriate re-created when the offer is accepted. With this amendment, the transaction to accept the NFT trade offer fails if the minter no longer has a trust line to accept the transfer fee. (For more detail, see [issue #4925](https://github.com/XRPLF/rippled/issues/4925).)
816
+
- Adjusts a check for the presence of a trust line when the minter of the NFT is also the issuer of the fungible token that would be paid as a transfer fee. Without this amendment, the [NFTokenCreateOffer transaction][] fails with the result code `tecNO_LINE` if the NFT in question has a transfer fee, the offer amount is denominated in fungible tokens issued by the minter, and the account placing the offer does not have a trust line for those tokens. With the amendment, the offer can be created successfully. (For more detail, see [issue #4941](https://github.com/XRPLF/rippled/issues/4941).)
817
+
818
+
721
819
### fixFillOrKill
722
820
[fixFillOrKill]: #fixfillorkill
723
821
@@ -750,6 +848,31 @@ This amendment fixes an issue with accessing the AMM `sfTradingFee` and `sfDisco
750
848
Currently, the inner object template isn't set upon object creation. If the object contains an `soeDEFAULT` field and is initially set to the default value, accessing the field results in a `tefEXCEPTION` error in some circumstances. This amendment adds an `STObject` constructor overload that includes an additional boolean argument to set the inner object template.
751
849
752
850
851
+
### fixInnerObjTemplate2
852
+
[fixInnerObjTemplate2]: #fixinnerobjtemplate2
853
+
854
+
| Amendment | fixInnerObjTemplate2 |
855
+
|:-------------|:---------------------|
856
+
| Amendment ID | 9196110C23EA879B4229E51C286180C7D02166DA712559F634372F5264D0EC59 |
857
+
| Status | Open for Voting |
858
+
| Default Vote (Latest stable release) | No |
859
+
| Pre-amendment functionality retired? | No |
860
+
861
+
This amendment standardizes the way inner objects ([Object-type fields in the canonical binary format](../docs/references/protocol/binary-format.md#object-fields)) have their formats and default values enforced. This is the same type of check that the `fixInnerObjTemplate` applies to AMM-related fields, but this amendment applies to all other types of inner objects, namely:
862
+
863
+
-`DisabledValidator` field of the [NegativeUNL ledger entry][].
864
+
- Members of the `Majorities` array in the [Amendments ledger entry][].
865
+
- Members of the [`Signers` array](../docs/references/protocol/transactions/common-fields.md#signers-field) of multi-signed transactions.
866
+
- Members of the `SignerEntries` array of [SignerList ledger entries][].
867
+
- Several parts of the [XChainBridge][] amendment {% not-enabled /%}:
868
+
- Members of the `XChainClaimAttestations` array in [XChainOwnedClaimID ledger entries][]
869
+
- Members of the `XChainCreateAccountAttestations` array in [XChainOwnedCreateAccountClaimID ledger entries][]
870
+
- Members of the `XChainClaimAttestationBatch` array in [XChainAddClaimAttestation transactions][]
871
+
- Members of the `XChainCreateAccountAttestationBatch` array in [XChainAddClaimAttestation transactions][]
872
+
873
+
It is believed that this change does not affect transaction processing, but it is possible that there are edge cases where it could cause an improperly formatted transaction to receive a different error. With this amendment, any such transactions would fail with a different result code such as `temMALFORMED`; without this amendment, those transactions would be expected to fail with the code `tefEXCEPTION` instead.
@@ -797,6 +920,23 @@ This amendment fixes a bug in the [NonFungibleTokensV1][] amendment code where N
797
920
This amendment has no effect unless the [NonFungibleTokensV1][] amendment is enabled. This amendment is obsolete because its effects are included as part of [NonFungibleTokensV1_1][].
798
921
799
922
923
+
### fixNFTokenPageLinks
924
+
[fixNFTokenPageLinks]: #fixnftokenpagelinks
925
+
926
+
| Amendment | fixNFTokenPageLinks |
927
+
|:-------------|:--------------------|
928
+
| Amendment ID | C7981B764EC4439123A86CC7CCBA436E9B3FF73B3F10A0AE51882E404522FC41 |
929
+
| Status | Open for Voting |
930
+
| Default Vote (Latest stable release) | No |
931
+
| Pre-amendment functionality retired? | No |
932
+
933
+
This amendment fixes a bug that can cause NFT directories to have missing links in the middle of the directory chain. It also introduces invariant checks that can prevent similar types of corruption from occurring in the future, and introduces a new transaction type:
934
+
935
+
-[LedgerStateFix transactions][] can be used to repair corruptions in ledger data. With this amendment enabled, you can use a LedgerStateFix transaction to repair a broken link in NFT directories. In the case that future bugs cause new types of ledger corruption, this transaction type can be extended to repair the other types of corruption as well.
936
+
937
+
Without this amendment, it is possible in specific circumstances to delete the last page of an NFT directory, then later create a new last page that is missing a link to the previous page. For a detailed description of the scenario that can cause this problem, see [PR #4945](https://github.com/XRPLF/rippled/pull/4945). With this amendment, the bug that caused that corruption is fixed; additionally, a new invariant check ensures that other bugs cannot remove the last page inappropriately.
938
+
939
+
800
940
### fixNFTokenRemint
801
941
[fixNFTokenRemint]: #fixnftokenremint
802
942
@@ -942,6 +1082,19 @@ With this amendment, the exchange rate of a reduced offer is rounded such that i
942
1082
Without this amendment, an offer with very small amounts remaining can have a a much worse exchange rate after rounding than it had initially. This can cause an offer for very small amounts to "block" better offers in the same order book from being taken.
943
1083
944
1084
1085
+
### fixReducedOffersV2
1086
+
[fixReducedOffersV2]: #fixreducedoffersv2
1087
+
1088
+
| Amendment | fixReducedOffersV2 |
1089
+
|:-------------|:-------------------|
1090
+
| Amendment ID | 31E0DA76FB8FB527CADCDF0E61CB9C94120966328EFA9DCA202135BAF319C0BA |
1091
+
| Status | Open for Voting |
1092
+
| Default Vote (Latest stable release) | No |
1093
+
| Pre-amendment functionality retired? | No |
1094
+
1095
+
This amendment adjusts rounding in an additional case that can cause an order book to become blocked by a "reduced" offer. This addresses the same symptoms as the fixReducedOffersV1 amendment, but in an additional case that was not covered by that amendment.
@@ -1156,6 +1309,53 @@ Changes OfferCreate transactions so that if an Offer uses `tfImmediateOrCancel`
1156
1309
Without this amendment, "Immediate or Cancel" Offers that failed to move any funds returned a `tesSUCCESS` result code, which could be confusing because the transaction effectively did nothing.
1157
1310
1158
1311
1312
+
### InvariantsV1_1
1313
+
[InvariantsV1_1]: #invariantsv1_1
1314
+
1315
+
| Amendment | InvariantsV1_1 |
1316
+
|:-------------|:---------------|
1317
+
| Amendment ID | D8ED3BE0B2673496CB49DE8B5588C8805DF7B1DE203F38FE0367ACE703D36C0F |
1318
+
| Status | In Development |
1319
+
| Default Vote (Latest stable release) | No |
1320
+
| Pre-amendment functionality retired? | No |
1321
+
1322
+
This amendment adds several new invariants to protect the ledger against bugs in transaction processing. The developers intend to set it as open for voting after a set of several invariants are implemented. The invariants included are as follows:
1323
+
1324
+
- 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.
1325
+
1326
+
1327
+
### MPTokensV1
1328
+
[MPTokensV1]: #mptokensv1
1329
+
1330
+
| Amendment | MPTokensV1 |
1331
+
|:-------------|:-----------|
1332
+
| Amendment ID | 950AE2EA4654E47F04AA8739C0B214E242097E802FD372D24047A89AB1F5EC38 |
1333
+
| Status | Open for Voting |
1334
+
| Default Vote (Latest stable release) | No |
1335
+
| Pre-amendment functionality retired? | No |
1336
+
1337
+
Implements a new type of fungible token, called a _Multi-Purpose Token_ (MPT). This token type is optimized to be used for common token use cases such as stablecoins, and are intended to avoid some of the complexity inherent to the XRP Ledger's existing fungible tokens which are stored in bidirectional trust lines. This amendment adds the following:
1338
+
1339
+
**New ledger entry types:**
1340
+
1341
+
- MPToken - represents tokens held by a specific account, including the amount held and who issued them.
1342
+
- MPTokenIssuance - records information and settings for a specific issuance of MPT, such as the scale and transfer fee of those tokens.
1343
+
1344
+
**Transaction types:**
1345
+
1346
+
- (New) MPTokenIssuanceCreate - Define a new issuance of MPTs.
1347
+
- (New) MPTokenIssuanceDestroy - Remove an issuance definition.
1348
+
- (New) MPTokenIssuanceSet - Modify an issuance definition.
1349
+
- (New) MPTokenAuthorize - Allow an account to hold a specific issuance definition.
1350
+
- (Updated) [Payment transactions][] can also send MPTs.
1351
+
- (Updated) [Clawback transactions][] can also claw back MPTs if the issuance definition allows clawback.
1352
+
1353
+
**API Methods:**
1354
+
1355
+
- (New) `mpt_holders` method - Returns a list of accounts that hold a specific MPT issuance.
1356
+
- (Updated) `ledger_entry` method - Can look up MPToken and MPTokenIssuance ledger entry types.
1357
+
1358
+
1159
1359
### MultiSign
1160
1360
[MultiSign]: #multisign
1161
1361
@@ -1213,6 +1413,27 @@ With this amendment enabled, the owner reserve for a new SignerList is 5 XRP, re
1213
1413
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.
1214
1414
1215
1415
1416
+
### NFTokenMintOffer
1417
+
[NFTokenMintOffer]: #nftokenmintoffer
1418
+
1419
+
| Amendment | NFTokenMintOffer |
1420
+
|:-------------|:-----------------|
1421
+
| Amendment ID | EE3CF852F0506782D05E65D49E5DCC3D16D50898CD1B646BAE274863401CC3CE |
1422
+
| Status | Open for Voting |
1423
+
| Default Vote (Latest stable release) | No |
1424
+
| Pre-amendment functionality retired? | No |
1425
+
1426
+
Modifies the process of minting NFTs so that you can also create a sell offer for the token at the same time.
1427
+
1428
+
With this amendment, an [NFTokenMint transaction][] can simultaneously place a sell offer for the minted token. This adds three optional fields to the transaction, which define the NFT sell offer if you provide them:
1429
+
1430
+
-`Amount` - The sell price of the NFT
1431
+
-`Destination` - Limit the sale so that it can only be accepted by this account
1432
+
-`Expiration` - The time after which this sell offer expires.
1433
+
1434
+
Without this amendment, you must separately send an [NFTokenMint transaction][] after minting an NFT to place a sell offer.
0 commit comments