Skip to content

Commit 5218eaf

Browse files
mvadariTapanito
andauthored
Add XLS-67d: 0067 XLS-67d: Charge (#352)
* Add XLS-67d: 0067 XLS-67d: Charge * Update XLS-0067-charge/README.md --------- Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com>
1 parent d44d154 commit 5218eaf

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

XLS-0067-charge/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<pre>
2+
xls: 67
3+
title: Charge
4+
description: A feature that focuses on fee collection and makes monetization easier and simpler for platforms, wallet services, and users to use
5+
author: tequ (@tequdev)
6+
created: 2024-04-22
7+
status: Stagnant
8+
category: Amendment
9+
</pre>
10+
11+
# Abstract
12+
13+
One way to monetize NFT, AMM and other platforms that use XRP Ledger is to charge a fee from separate Payment transaction. XLS-56d (Batch/Atomic Transaction) has already been proposed as a way to do this in a single transaction. Here, I propose a feature that focuses on fee collection and makes monetization easier and simpler for platforms, wallet services, and users to use.
14+
15+
# Specification
16+
17+
### Transaction common field
18+
19+
Add the following field as one of transaction common fields.
20+
This field is an optional field and be available for any transaction.
21+
22+
| Field Name | Required? | JSON Type | Internal Type |
23+
| ---------- | :-------: | :-------: | :-----------: |
24+
| `Charge` | | `object` | `Object` |
25+
26+
## `Charge` Field
27+
28+
| Field Name | Required? | JSON Type | Internal Type |
29+
| ---------------- | :-------: | :------------------: | :-----------: |
30+
| `Amount` || `object` or `string` | `Amount` |
31+
| `Destination` || `string` | `Account` |
32+
| `DestinationTag` | | `number` | `UInt16` |
33+
34+
#### `Amount` Field
35+
36+
Like the `Amount` field used in other transaction types, it represents a native token when specified as a string, or an issued token when specified as an object.
37+
38+
For tokens for which a TransferRate has been specified by the issuer, this field represents the amount of tokens sent by the sender of the transaction and doesn't guarantee the amount of tokens the destination account will receive.
39+
40+
### `Destination` Field
41+
42+
The account to which the fee will be sent.
43+
44+
It is not possible to specify the account from which the transaction originates or an account that has not been activated.
45+
46+
# Matters to Consider
47+
48+
These are not included in the above specifications, but are subject to discussion.
49+
50+
## `SendMax` Field
51+
52+
We could add `SendMax` to specify exactly how much the sender pays and how much the receiver receives, but that would be more complicated.
53+
54+
## CrossCurrency
55+
56+
It is possible to make cross-currency payments by specifying different currencies in the `SendMax` and `Amount` fields, but this will increase transaction load.
57+
58+
The `Path` field cannot specified and the default Path is used.
59+
e.g.
60+
61+
- AAA/BBB without XLS-60d
62+
- AAA/XRP, BBB/XRP, AAA/BBB with XLS-60d
63+
64+
## Multiple charges
65+
66+
Multiple currencies can be set as fees by specifying multiple `Charge` fields as an array in the `Charges` field, but this increases the transaction load (especially if cross-currency is also available).

0 commit comments

Comments
 (0)