Proposed Extension to XLS-94D Jibreel Muhammad from @Accountabul @Beabulnow #397
Replies: 3 comments 5 replies
-
|
Love this direction subclass granularity under a single ticker could be a game changer for structured token ecosystems. It’s a clean way to combine behavioral logic, metadata, and supply discipline without spinning up multiple assets. Definitely opens room for on-chain compliance and redemption models. |
Beta Was this translation helpful? Give feedback.
-
|
I struggle to see how this fits the XRPL model without creating deeper inconsistencies. Once different subclasses carry different rules, redemption behaviours, or restrictions, the asset is no longer fungible in a meaningful economic or technical sense. XRPL’s DEX, AMM, and payment logic assume uniform fungibility per asset. If subclasses behave differently, then applications must treat them as separate assets to avoid routing, pricing, and UX ambiguity. At that point the proposal doesn’t remove fragmentation, it simply hides it under a shared ticker. There is also no deterministic enforcement layer here. Since XRPL has no native smart contracts or Hooks, subclass behaviour would not be enforceable at the ledger level. Without native enforcement, subclass logic becomes cosmetic and unreliable from a ledger integrity perspective. The use-cases are valid, but stretching XLS-33 into “fungible partitions” undermines what fungibility means. I am not also not convinced that having simply another token would not be easier an easier option. Plus you can mint a new token under the same issuer account. |
Beta Was this translation helpful? Give feedback.
-
|
Also as I thought more and started to study the new smart contract proposal XLS101. I was thinking potentially this feature if refined correctly could also give us some programmable options I don't know what All would have to go into that, but it could spark a good conversation for the no smart contract versus smart contract People on the XRPL. If we find correctly. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Author: Jibreel Muhammad (@Accountabul)
Status: Draft (Discussion)
Category: XRPL Ledger Object Extension
Requires: XLS-33 (MPT), XLS-94 (Dynamic MPT)
This discussion proposes an extension to XLS-94 Dynamic Multi-Purpose Tokens (MPTs) that would introduce Token Sub-Classes. These are internal partitions within a single token issuance that each carry their own metadata, supply caps, and optional immutability locks.
The goal is to allow one ticker (e.g., $TOKEN) to host multiple internally differentiated categories such as vouchers, rewards, or lockup tranches without creating separate token issuances or NFTs.
Background
XLS-33 (MPT) defines how fungible Multi-Purpose Tokens are issued and tracked.
XLS-94 (Dynamic MPT) extends that with mutable metadata.
XLS-89 defines a metadata schema for classification and presentation (e.g., asset_class, asset_subclass).
However, all of these treat an issuance as one uniform supply. There’s currently no way I know to define verifiable sub-issuances or per-unit metadata inside a single token object.
I look at it as more of per-unit metadata- but it also seems to me it serves as here's a Scenario.
Scenario: Customer wants to redeem an $TOKEN, token for a store discount.
The customer’s wallet holds multiple $TOKEN subclasses:
voucher_2025Q1 – eligible for discount $TOKEN
general – standard $TOKEN
At checkout, the POS system queries the transaction:
If subClassId="voucher_2025Q1", proceed → apply discount → burn or mark redeemed.
If subClassId="general", reject → “Token not eligible for discount.”
Ledger enforcement:
Burn or clawback affects only that subclass balance.
Optional serial proof ensures each voucher is used once.
Result: users see one ticker ($TOKEN) but the ledger and applications know the functional type of each unit.
I began this as an attempt to introduce richer metadata fields into MPTs, but the intent has evolved into enabling functional sub-issuances within a single token object. Many real-world use cases require parts of that supply to behave differently — for example, reward tokens that accumulate yield, voucher tokens that burn on redemption, or general tokens used for standard payments under 1 token ticker/Issuance.
This Token Sub-Class model defines these internal partitions explicitly.
Each sub-class is recorded in the parent token’s metadata with its own id, cap, and optional mutability or serialization settings.
When tokens are minted, transferred, or burned, the transaction references a subClassId, allowing the ledger to apply supply limits and Hooks or contracts to enforce business logic specific to that sub-class.
In practice, this functions like an “issuance within an issuance”, the supply remains unified under one ticker and one issuer, but the ledger and applications can still tell what type of token each unit is and act accordingly.
This structure intent is to stay within the existing 1 KB metadata limit and may require minimal extensions to existing MPT logic, but it opens a path for on-chain token identification, redemption, and behavioral differentiation without fragmenting liquidity or spawning multiple assets.
Beta Was this translation helpful? Give feedback.
All reactions