xls: 89 title: Multi-Purpose Token Metadata Schema description: Standardized metadata schema for Multi-Purpose Tokens to improve discoverability, comparability, and interoperability author: Shawn Xie, Greg Tsipenyuk , Shashwat Mittal , Julian Berridi discussion-from: https://github.com/XRPLF/XRPL-Standards/discussions/264 status: Draft category: Community requires: XLS-33 created: 2025-01-27
XLS-89 Multi-Purpose Token Metadata Schema¶
1. Abstract¶
Multipurpose Tokens (MPTs) on the XRP Ledger allow issuers to attach arbitrary metadata to their tokens. While this flexibility is powerful, it also creates challenges for discoverability, comparability, and interoperability — both across MPTs and with existing IOUs on XRPL.
This document proposes a minimally standardized metadata format for MPTs to address those challenges. The goal is not to restrict expressiveness, but to define a baseline set of fields that support reliable parsing and integration across services like block explorers, indexers, wallets, and cross-chain applications. These common fields will make it easier to surface and compare MPTs, enabling better user experiences and broader ecosystem support.
This proposal is complementary to PR #290, which defines metadata for IOUs on XRPL. While some elements differ to accommodate token-specific needs, both efforts aim to promote consistency and interoperability across the ecosystem.
This standard is optional, but MPTs that follow it will be more readily integrated into the XRPL ecosystem.
1.1. Approach¶
MPTs include a 1024-byte field for arbitrary metadata. The metadata field is part of a hybrid approach of storing essential information on the ledger, while additional information can be stored off the ledger using an external URI in the metadata field. Advantages to this approach include:
- Metadata can be accessed and verified on the ledger without having to fetch data from an external URI.
- Provides increased reliability while decreasing dependency on external systems. Relying solely on external sources for metadata would introduce a dependency where services might become unavailable or unreliable, disrupting token operations and the user experience.
- Avoids the risk of a centralized hosting service provider becoming compromised or unavailable.
2. Base Metadata Schema¶
Field | Description | Example | Allowed Values | Type | Required? |
---|---|---|---|---|---|
ticker |
Ticker symbol used to represent the token | EXMPL | Uppercase letters (A-Z) and digits (0-9) only. Max 6 characters recommended | string | ✔️ |
name |
Display name of the token | Example Token | Any UTF-8 string | string | ✔️ |
desc |
Short description of the token | A sample token used for demonstration | Any UTF-8 string | string | |
icon |
URL to the token icon | https://example.org/token-icon.png | HTTPS URL that links to an image | string | ✔️ |
asset_class |
Top-level classification of token purpose | rwa | rwa, memes, wrapped, gaming, defi, other | string | ✔️ |
asset_subclass |
Optional subcategory, required if asset_class = rwa |
See 2.2 asset_subclass | See 2.2 asset_subclass | string | |
issuer_name |
The name of the issuer account | Example Issuer | Any UTF-8 string | string | ✔️ |
urls |
List of related URLs (site, dashboard, social media, etc.) | See 2.3 urls | See 2.3 urls | array | |
additional_info |
Freeform field for key token details like interest rate, maturity date, term, or other relevant info | { "interest_rate": "4.75%", "maturity_date": "2030-06-30", "term": "10Y", "issuer_type": "government" } |
Any valid JSON object or UTF-8 string | JSON object or string |
2.1 asset_class¶
Category | Definition |
---|---|
rwa |
Tokens representing real-world assets (RWAs), which derive value from legally enforceable claims on physical or off-chain financial assets |
memes |
Tokens primarily driven by community, internet culture, or speculation, without intrinsic backing or utility claims |
wrapped |
Tokens that represent assets from other blockchains, typically backed 1:1 and issued by bridges or custodians |
gaming |
Tokens used in games or virtual worlds, often representing in-game currency, assets, or rewards |
defi |
Tokens native to or used within decentralized finance protocols, including governance tokens, DEX tokens, and lending assets |
other |
Tokens that do not clearly fit into the defined categories. This may include experimental, test, or those with unique use cases not covered elsewhere |
2.2 asset_subclass¶
asset_type | Description |
---|---|
stablecoin |
Tokens pegged to a stable value (typically fiat currencies like USD), backed by reserves such as cash, treasuries, or crypto collateral |
commodity |
Tokens representing physical commodities like gold, silver, or oil, often redeemable or legally linked to off-chain reserves |
real_estate |
Tokens representing ownership or claims on real estate, including fractionalized property shares or REIT-like instruments |
private_credit |
Tokens representing debt obligations from private entities, such as loans, invoices, or receivables |
equity |
Tokens representing ownership shares in companies, similar to traditional stock or equity instruments |
treasury |
Tokens backed by or referencing government debt instruments, such as U.S. Treasury bills or bonds |
other |
Tokens that do not fit into the predefined categories above, including experimental, hybrid, or emerging real-world asset types |
2.3 urls¶
Field | Description | Example | Allowed Values | Required |
---|---|---|---|---|
url |
The full link to the related resource | https://exampleyield.co/tbill | A valid HTTPS URL | ✔️ |
type |
The category of the link | website | website, social, document, other | ✔️ |
title |
A human-readable label for the link | Product Page | Any UTF-8 string | ✔️ |
JSON Metadata example¶
{
"ticker": "TBILL",
"name": "T-Bill Yield Token",
"desc": "A yield-bearing stablecoin backed by short-term U.S. Treasuries and money market instruments.",
"icon": "https://example.org/tbill-icon.png",
"asset_class": "rwa",
"asset_subclass": "treasury",
"issuer_name": "Example Yield Co.",
"urls": [
{
"url": "https://exampleyield.co/tbill",
"type": "website",
"title": "Product Page"
},
{
"url": "https://exampleyield.co/docs",
"type": "docs",
"title": "Yield Token Docs"
}
],
"additional_info": {
"interest_rate": "5.00%",
"interest_type": "variable",
"yield_source": "U.S. Treasury Bills",
"maturity_date": "2045-06-30",
"cusip": "912796RX0"
}
}