Skip to content

Commit a638266

Browse files
committed
Incorporate SEO recommendations
1 parent 1e7ab3e commit a638266

File tree

3 files changed

+70
-29
lines changed

3 files changed

+70
-29
lines changed

docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ There can be multiple permissioned DEXes within the XRP Ledger blockchain. Each
1414

1515
## Background: The Need for Permissioned DEXes
1616

17-
The XRP Ledger has had a single, _open DEX_ since it launched. Anyone with an XRPL account can trade in this DEX, and the system automatically executes matching orders, also called offers, with no regard for who placed them. Orders also provide liquidity to cross-currency payments, which can potentially execute several trades as part of one atomic transaction. Since the system inherently knows nothing about the people and organizations behind the accounts, there is no certainty who the counterparties are for any given trade. However, economic sanctions and financial regulations often place strict rules against transacting with criminals, terrorists, or specific countries. Given these limitations, regulated financial institutions may not be willing to take the risk of trading in the open DEX.
17+
The XRP Ledger has had a single, _open DEX_ since it launched. Anyone with an XRPL account can trade in this DEX, and the system automatically executes matching orders, also called offers, with no regard for who placed them. Orders also provide liquidity to cross-currency payments, which can potentially execute several trades as part of one atomic transaction.
18+
19+
Since the system inherently knows nothing about the people and organizations behind the accounts, there is no certainty who the counterparties are for any given trade. However, economic sanctions and financial regulations often place strict rules against transacting with criminals, terrorists, or specific countries. Given these limitations, regulated financial institutions may not be willing to take the risk of trading in the open DEX.
1820

1921
More background reading:
2022

docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
2-
blurb: Multi-purpose tokens offer a more compact, flexible token type than trust lines.
2+
seo:
3+
description: Learn about multi-purpose tokens (MPTs) on XRP Ledger. MPTs are a flexible way to issue fungible tokens with built-in metadata, compliance, and transfer controls.
34
labels:
45
- Tokens
56
- MPTs
@@ -10,48 +11,78 @@ status: not_enabled
1011

1112
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
1213

13-
Multi-purpose tokens (MPTs) are a more compact and flexible type of fungible token.
14+
Multi-purpose tokens (MPTs) are a more compact and flexible type of [fungible token](/docs/concepts/tokens/fungible-tokens) on the XRP Ledger.
1415

15-
MPTs let you take advantage of ready-to-use tokenization features with a few lines of code. You can create many token experiences from one token program itself. Notable features include:
16+
MPTs let you take advantage of ready-to-use tokenization features with a few lines of code. You can create many token experiences from one token program itself.
17+
18+
## Key Features of MPTs on XRPL
19+
20+
The following are notable features of MPTs on XRPL.
21+
22+
**On-Chain Metadata Storage**
1623

1724
- MPTs store their metadata directly on the XRPL blockchain. Once set, the metadata is immutable.
1825
- A 1024-byte URI field provides a metadata pointer that allows you to use an off-chain source for metadata in addition to the on-chain source. This lets your application access necessary information directly from the chain, prompting higher interoperability for tokens, without losing the ability to attach additional information.
26+
27+
**Transferability and Supply Controls**
28+
1929
- MPTs can have a fixed token supply where you set a cap on the maximum number of tokens that can be minted.
2030
- You can define MPTs as non-transferable, tokens that can only be transferred back to the issuer, but not among tokenholders. Useful for cases such as issuing airline credits or loyalty rewards.
2131
- Issuers can set transfer fees to collect on-chain revenue each time the token is traded among tokenholders.
22-
- MPTs also have advanced compliance features:
23-
- The ability to lock tokens held by a tokenholder to support compliance requirements.
24-
- The ability to set a global lock for all MPT balances across all tokenholders.
25-
- The issuer can configure MPTs that can be clawed back from tokenholder wallets, either to revoke them, or to reassign them in the case of lost wallet keys.
26-
- An opt-in feature can allow only wallets authorized by the issuer to hold issued tokens.
32+
33+
**Built-In Compliance Features**
34+
35+
MPTs also have advanced compliance features, including:
36+
- The ability to lock tokens held by a tokenholder to support compliance requirements.
37+
- The ability to set a global lock for all MPT balances across all tokenholders.
38+
- The issuer can configure MPTs that can be clawed back from tokenholder wallets, either to revoke them, or to reassign them in the case of lost wallet keys.
39+
- An opt-in feature can allow only wallets authorized by the issuer to hold issued tokens.
2740

2841
## MPTs versus Trust Lines
2942

30-
Unlike trust lines, MPTs do not represent bidirectional debt relationships. Instead, MPTs function more like a unidirectional trust line with only one balance. This reduces the overhead to support common tokenization requirements, including non-monetary use cases such as tracking reputation points in an online game.
43+
These are the primary differences between MPTs and [trust lines](/docs/concepts/tokens/fungible-tokens#trust-lines).
3144

32-
MPTs offer a less complicated conceptual model than trust lines.
45+
**Conceptual Differences**
3346

34-
MPTs require significantly less space than trust lines. They require roughly 52 bytes for each MPT held by a token holder, compared to at least 234 bytes for every new trust line.
47+
- Unlike trust lines, MPTs do not represent bidirectional debt relationships. Instead, MPTs function more like a unidirectional trust line with only one balance. This reduces the overhead to support common tokenization requirements, including non-monetary use cases such as tracking reputation points in an online game.
3548

36-
They reduce the long-term infrastructure and storage burdens for node operators, increasing network resiliency.
49+
- MPTs offer a less complicated conceptual model than trust lines.
3750

38-
MPTs also improve node perfomance when processing large volumes of transactions.
51+
**Ledger Storage and Performance**
3952

40-
MPTs are unidirectional. While trust lines use "balance netting," MPTs have only a single balance.
53+
- MPTs require significantly less space than trust lines. They require roughly 52 bytes for each MPT held by a token holder, compared to at least 234 bytes for every new trust line.
4154

42-
An account can issue a maximum of 32 unique MPT issuances. If an issuer wants to support more than this number of MPTs, they can open additional accounts.
55+
- They reduce the long-term infrastructure and storage burdens for node operators, increasing network resiliency.
4356

44-
Since token holders will not acquire an MPT without first making an off-ledger trust decision, MPTs have no trust limits. For example, a common use case for an MPT is a fiat-backed stablecoin, where a token holder wouldn't purchase more stablecoins than they would feel comfortable holding.
57+
- MPTs also improve node perfomance when processing large volumes of transactions.
4558

46-
Unlike some existing capabilities of the ledger, MPTs are not subject to rippling, and do not require configurability settings related to that functionality.
59+
**Transfer Logic and Directionality**
60+
61+
- MPTs are unidirectional. While trust lines use "balance netting," MPTs have only a single balance.
62+
- An account can issue a maximum of 32 unique MPT issuances. If an issuer wants to support more than this number of MPTs, they can open additional accounts.
63+
- Since token holders will not acquire an MPT without first making an off-ledger trust decision, MPTs have no trust limits. For example, a common use case for an MPT is a [fiat-backed stablecoin](/docs/concepts/tokens/fungible-tokens/stablecoins#fiat-backed), where a token holder wouldn't purchase more stablecoins than they would feel comfortable holding.
64+
- Unlike some existing capabilities of the ledger, MPTs are not subject to [rippling](/docs/concepts/tokens/fungible-tokens/rippling) and do not require configurability settings related to that functionality.
4765

4866
## MPTs versus IOUs
4967

50-
On a technical level, MPTs provide a fundamentally different way to represent fungible tokens on the ledger. While IOUs are represented by trustlines and have bilateral debt relationships, MPTs use a simpler, unilateral relationship captured by an MPToken object. This results in substantial space savings on the ledger. The representation of a fungible token as a token object instead of a trustline makes it easier to enable functionality for real-world financial assets on-chain, such as token-level metadata, fixed supply, and fixed-point balance.
68+
MPTs are different from IOUs in the following ways.
69+
70+
**Technical Representation on the Ledger**
71+
72+
On a technical level, MPTs provide a fundamentally different way to represent fungible tokens on the ledger. While IOUs are represented by trustlines and have bilateral debt relationships, MPTs use a simpler, unilateral relationship captured by an MPToken object. This results in substantial space savings on the ledger.
73+
74+
The representation of a fungible token as a token object instead of a trustline makes it easier to enable functionality for real-world financial assets on-chain, such as token-level metadata, fixed supply, and fixed-point balance.
75+
76+
**Developer Experience and App Design**
77+
On a usage level, MPTs provide a straightforward conceptual model compared to [trustlines](/docs/concepts/tokens/fungible-tokens.md#trust-lines) and [rippling](/docs/concepts/tokens/fungible-tokens/rippling). Developers can more easily build web3 applications around `[MPToken](/docs/references/protocol/ledger-data/ledger-entry-types/mptoken)` and `[MPTokenIssuance](/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance)` objects, with some similarities to the conceptual model of XLS-20 NFTs.
78+
79+
It is also simpler for ordinary users to understand what tokens are available, what tokens they have issued, and what they hold in their wallet.
80+
81+
For both issuers and holders of MPTs, there will typically be a smaller XRP reserve compared to the equivalent representations with IOU trustlines.
5182

52-
On a usage level, MPTs provide a straightforward conceptual model compared to trustlines and rippling. Developers can more easily build web3 applications around `MPToken` and `MPTokenIssuance` objects, with some similarities to the conceptual model of XLS-20 NFTs. It is also simpler for ordinary users to understand what tokens are available, what tokens they have issued, and what they hold in their wallet. For both issuers and holders of MPTs, there will typically be a smaller XRP reserve compared to the equivalent representations with IOU trustlines.
83+
## Use Case and Long-Term Considerations
5384

54-
MPTs are intended to be complementary to IOUs. While there might be use cases where either MPTs or IOUs might be suitable, there will likely be a need for both over the long term. There will be use cases such as credit lines for lending and borrowing that might be better represented by IOUs long term. The MPT feature set should evolve in an incremental manner to unlock more common use cases first and deliver additional feature support at a later time. During the MPT development period, some cases might still be better represented by an IOU, then later be better supported with MPTs.
85+
MPTs are intended to be complementary to IOUs. While there might be use cases where either MPTs or IOUs might be suitable, there will likely be a need for both over the long term. There will be use cases such as credit lines for lending and borrowing that might be better represented by IOUs long term. The MPT feature set should evolve in an incremental manner to unlock more common use cases first and deliver additional feature support at a later time. During the MPT development period, some cases might still be better represented by an IOU, and then later be better supported with MPTs.
5586

5687
## See Also
5788

docs/concepts/transactions/batch-transactions.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
---
22
seo:
3-
description: Batch allows up to 8 transactions to be submitted as a single unit.
3+
description: Discover how XRPL Batch Transactions streamline multiple blockchain operations into a single secure transaction. Learn about batch modes, execution details, and security considerations.
44
labels:
55
- Batch
66
- Transactions
77
status: not_enabled
88
---
99
# Batch Transactions
1010

11-
`Batch` lets you package multiple transactions together and execute them as a single unit. It eliminates the risk of partial completion and unexpected outcomes, giving you a more reliable and predictable experience for complex operations. Up to eight transactions can be submitted in a single batch.
11+
XRPL Batch Transactions let you package multiple [transactions](/docs/concepts/transactions.md) together and execute them as a single unit. It eliminates the risk of partial completion and unexpected outcomes, giving you a more reliable and predictable experience for complex operations. Up to eight transactions can be submitted in a single batch.
12+
13+
## XRPL Batch Use Cases
1214

1315
Some potential uses for `Batch` include the following.
1416
- All or nothing: You can mint an NFT and create an offer for it in one transaction. If the offer creation fails, the NFT mint is reverted as well.
@@ -19,7 +21,11 @@ Some potential uses for `Batch` include the following.
1921

2022
`Batch` transactions are comprised of the _outer transaction_, the wrapper `Batch` transaction itself, and the _inner transactions_, each of which is executed atomically. The precise way that the inner transactions are processed is determined by the batch _mode_.
2123

22-
## Batch Mode
24+
<div align="center">
25+
<iframe width="560" height="315" src="https://www.youtube.com/embed/LsMMXm7jm1k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
26+
</div>
27+
28+
## XRPL Batch Transaction Modes
2329

2430
There are four possible batch modes: `ALLORNOTHING`, `ONLYONE`, `UNTILFAILURE`, and `INDEPENDENT`.
2531

@@ -39,9 +45,9 @@ In `ALLORNOTHING` mode, all inner transactions must succeed for any one of them
3945

4046
All transactions are applied, even if one or more of the inner transactions fail.
4147

42-
## Raw Transactions
48+
## XRPL Raw Transactions Object
4349

44-
The `RawTransactions` object is a container for the list of transactions to be applied. You can include up to eight transactions in a sincle batch. The transactions can come from one account or multiple accounts.
50+
The `RawTransactions` object is a container for the list of transactions to be applied. You can include up to eight transactions in a single batch. The transactions can come from one account or multiple accounts.
4551

4652
Each inner transaction:
4753

@@ -67,6 +73,8 @@ This field is included if the account is signing with multi-sign (as opposed to
6773

6874
This field must be provided if more than one account has inner transactions included in the Batch. In that case, this field must contain signatures from all accounts whose inner transactions are included, excluding the account signing the outer transaction (if applicable).
6975

76+
#### Fields Used for XRPL Batch Transactions
77+
7078
Each object in this array contains the following fields:
7179

7280
| Field Name | Required? | JSON Type | Internal Type |
@@ -90,7 +98,7 @@ These fields are included if the account is signing with a single signature (as
9098

9199
This field is included if the account is signing with multi-sign (as opposed to a single signature). It operates equivalently to the `Signers` field used in standard transaction multi-sign. This field holds the signatures for the `Flags` field and the hashes of the transactions in `RawTransactions`.
92100

93-
## Transaction Fee
101+
## XRPL Batch Transaction Fees
94102

95103
The fee for the outer transaction is twice the base fee (a total of 20 drops when there is no fee escalation), plus the sum of the transaction fees of all the inner transactions (which incorporates factors like higher fees for `multisign` or `AMMCreate`), plus an additional base fee amount for each additional signature in the transaction (for example, from `BatchSigners`). Expressed as an equation:
96104

@@ -124,15 +132,15 @@ There is also a pointer back to the parent outer transaction (`ParentBatchID`).
124132

125133
## Transaction Common Fields
126134

127-
This standard doesn't add any new fields to the transaction common fields, but it does add another global transaction flag:
135+
This standard doesn't add any new fields to the [transaction common fields](/docs/references/protocol/transactions/common-fields.md), but it does add another global transaction flag:
128136

129137
| Flag Name | Value |
130138
|-----------------|------------|
131139
| tfInnerBatchTxn | 0x40000000 |
132140

133141
This flag should be used only if a transaction is an inner transaction in a `Batch` transaction. This signifies that the transaction shouldn't be signed. Any normal transaction that includes this flag should be rejected.
134142

135-
## Security
143+
## Security for XRPL Batch Transactions
136144

137145
Batch transactions come with additional security considerations.
138146

0 commit comments

Comments
 (0)