From 6c6d57d37bb336e9e67462cae2d2d52c862aaff6 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Fri, 5 Sep 2025 12:16:48 -0400 Subject: [PATCH 1/4] Add XLS-55d: 0055 XLS-55d: Remit: Atomic Multi-Asset Payments for XRPL Protocol Chains --- XLS-0055-remit/README.md | 98 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 XLS-0055-remit/README.md diff --git a/XLS-0055-remit/README.md b/XLS-0055-remit/README.md new file mode 100644 index 000000000..583cf85f2 --- /dev/null +++ b/XLS-0055-remit/README.md @@ -0,0 +1,98 @@ +
+    XLS: XLS-55d
+    Title: 0055 XLS-55d: Remit: Atomic Multi-Asset Payments for  XRPL Protocol Chains
+    Author: None (RichardAH)
+    Created: 2023-12-03
+    Status: Final
+    Category: Amendment
+
+ +# XLS-55d - Remit: Atomic Multi-Asset Payments for XRPL Protocol Chains + +## Introduction + +**_Remit_** is a new payment transactor designed for XRPL Protocol Chains, which allows a sender to send multiple currencies and tokens atomically to a specified destination. It is a push payment that delivers "no matter what" and is designed for retail and Hooks use-cases. + +## Constraints + +Using _Remit_ the sender may send: + +- one or more Issued Currencies, and/or, +- one or more pre-existing URITokens owned by the sender and/or, +- one new URIToken created in-line as part of the transaction. + +The transactor has the following behaviours: + +- If the destination does not exist, the sender pays to create it. +- If the destination does not have the required trust-lines, the sender pays to create these. +- The exact amounts and tokens are always delivered as specified in the transaction, if validated with code tesSUCCESS. +- The sender pays all transfer fees on currencies, and the fees are not subtracted from the sent amount. +- Where the sender pays to create objects, this is a separate amount not taken from the amounts specified in the transaction. +- The transaction is atomic, either all amounts and tokens are delivered in the exact specified amount or none of them are. +- The transactor does no conversion or pathing, the sender must already have the balances and tokens they wish to send. +- When no amounts or tokens are specified, the transaction may still succeed. This can be used to create an account or ensure an account already exists. + +## Specification + +A _Remit_ transaction contains the following fields: +Field | Required | Type | Description +-|-|-|- +sfAccount | ✅ |AccountID | The sender +sfDestination | ✅ |AccountID | The recipient. Does not need to exist. Will be created if doesn't exist. +sfDestinationTag | ❌ |UInt32 | May be used by the destination to differentiate sub-accounts. +sfAmounts | ❌|Array of Amounts | Each of the currencies (if any) to send to the destination. Sender must have funded trustlines for each. Destination does not need trustlines. +sfURITokenIDs | ❌| Array of URITokenIDs | Each of the URITokens (if any) to send to the destination. +sfMintURIToken | ❌| URIToken | If included, an inline URIToken to be created and delivered to the destination, for example a receipt. +sfBlob | ❌ | Blob | A hex blob up to 128 kib to supply to a receiving Hook at the destination. +sfInform | ❌ | AccountID | A third party. If supplied, their Hooks will be weakly executed (but the sender will pay for that execution). +sfInvoiceID | ❌ | UInt256 | An arbitrary identifier for this remittance. + +## Example Transaction + +``` +{ + "TransactionType" : "Remit", + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Destination" : "raod38dcxe6AGWfqxtZjPUfUdyrkWDe7d", + "Amounts" : [ + { + "AmountEntry" : { + "Amount" : "123" + } + }, + { + "AmountEntry" : { + "Amount" : { + "currency" : "USD", + "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" : "10" + } + } + }, + { + "AmountEntry" : { + "Amount" : { + "currency" : "ABC", + "issuer" : "rpfZurEGaJvpioTaxYpjh1EAtMXFN1HdtB", + "value" : "12" + } + } + } + ], + "URITokenIDs" : [ + "C24DAF43927556F379F7B8616176E57ACEFF1B5D016DC896222603A6DD11CE05", + "5E69C2D692E12D615B5FAC4A41989DA1EA5FD36E8F869B9ECA1121F561E33D2A" + ], + "MintURIToken" : { + "URI" : "68747470733A2F2F736F6D652E757269" + } +} +``` + +## Unwanted Remits + +Users who do not want to receive _Remit_ transactions can either set the _asfDisallowIncomingRemit_ on their accounts or install a Hook that will regulate incoming Remits. Alternatively they can simply burn unwanted URITokens or return unwanted Issued Currencies in order to claim the reserve that was paid by the sender. + +## Chain Requirements + +XLS-55 depends on the adoption of XLS-35 on the applicable chain. From a9210885cae4ebf6ebeeac73d5485246ebd01cb0 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Fri, 5 Sep 2025 12:31:24 -0400 Subject: [PATCH 2/4] Update XLS-0055-remit/README.md --- XLS-0055-remit/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/XLS-0055-remit/README.md b/XLS-0055-remit/README.md index 583cf85f2..c8ff3e062 100644 --- a/XLS-0055-remit/README.md +++ b/XLS-0055-remit/README.md @@ -1,10 +1,10 @@
-    XLS: XLS-55d
-    Title: 0055 XLS-55d: Remit: Atomic Multi-Asset Payments for  XRPL Protocol Chains
-    Author: None (RichardAH)
-    Created: 2023-12-03
-    Status: Final
-    Category: Amendment
+  xls: XLS-55d
+  title: 0055 XLS-55d: Remit: Atomic Multi-Asset Payments for  XRPL Protocol Chains
+  author: Richard Holland (@RichardAH)
+  created: 2023-12-03
+  status: Final
+  category: Amendment
 
# XLS-55d - Remit: Atomic Multi-Asset Payments for XRPL Protocol Chains From 8eca9e0927f54e36498a434ffc9d5f3b5b7db9b1 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Fri, 5 Sep 2025 12:35:20 -0400 Subject: [PATCH 3/4] Update XLS-0055-remit/README.md --- XLS-0055-remit/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/XLS-0055-remit/README.md b/XLS-0055-remit/README.md index c8ff3e062..4e072f3f3 100644 --- a/XLS-0055-remit/README.md +++ b/XLS-0055-remit/README.md @@ -1,6 +1,7 @@
-  xls: XLS-55d
-  title: 0055 XLS-55d: Remit: Atomic Multi-Asset Payments for  XRPL Protocol Chains
+  xls: 55
+  title: Remit
+  description: Atomic Multi-Asset Payments for XRPL Protocol Chains
   author: Richard Holland (@RichardAH)
   created: 2023-12-03
   status: Final

From 62f5567b76de6417d473062ce09cfc921f6ec785 Mon Sep 17 00:00:00 2001
From: Vito Tumas <5780819+Tapanito@users.noreply.github.com>
Date: Wed, 10 Sep 2025 15:53:12 +0200
Subject: [PATCH 4/4] Update README.md

---
 XLS-0055-remit/README.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/XLS-0055-remit/README.md b/XLS-0055-remit/README.md
index 4e072f3f3..ac478549f 100644
--- a/XLS-0055-remit/README.md
+++ b/XLS-0055-remit/README.md
@@ -8,8 +8,6 @@
   category: Amendment
 
-# XLS-55d - Remit: Atomic Multi-Asset Payments for XRPL Protocol Chains - ## Introduction **_Remit_** is a new payment transactor designed for XRPL Protocol Chains, which allows a sender to send multiple currencies and tokens atomically to a specified destination. It is a push payment that delivers "no matter what" and is designed for retail and Hooks use-cases.