You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`ticker`| Ticker symbol used to represent the token | EXMPL | Uppercase letters (A-Z) and digits (0-9) only. Max 6 characters recommended| string | ✔️ |
44
-
|`name`| Display name of the token | Example Token | Any UTF-8 string| string | ✔️ |
45
-
|`desc`| Short description of the token | A sample token used for demonstration | Any UTF-8 string| string ||
46
-
|`icon`|URL to the token icon |https://example.org/token-icon.png|HTTPS URL that links to an image | string | ✔️ |
|`asset_subclass`| Optional subcategory, required if `asset_class = rwa`| See 2.2 _asset_subclass_| See 2.2 _asset_subclass_| string ||
49
-
|`issuer_name`| The name of the issuer account | Example Issuer | Any UTF-8 string| string | ✔️ |
50
-
|`urls`| List of related URLs (site, dashboard, social media, etc.) | See 2.3 _urls_| See 2.3 _urls_| array ||
51
-
|`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 ||
42
+
| Field |Key |Description | Example | Allowed Values | Type | Required? |
|`ticker`|`t`|Ticker symbol used to represent the token | EXMPL | Uppercase letters (A-Z) and digits (0-9) only. Max 6 chars | string | ✔️ |
45
+
|`name`|`n`|Display name of the token | Example Token | Any UTF-8 string | string | ✔️ |
46
+
|`desc`|`d`|Short description of the token | A sample token used for demonstration | Any UTF-8 string | string ||
47
+
|`icon`|`i`| URI to the token icon | example.org/token-icon, ipfs://token-icon.png |`hostname/path` (HTTPS assumed) or full URI for other protocols| string | ✔️ |
48
+
|`asset_class`|`ac`|Top-level classification of token purpose | rwa | rwa, memes, wrapped, gaming, defi, other | string | ✔️ |
49
+
|`asset_subclass`|`as`|Optional subcategory, required if `asset_class = rwa`| See 2.2 _asset_subclass_| See 2.2 _asset_subclass_| string ||
50
+
|`issuer_name`|`in`|The name of the issuer account | Example Issuer | Any UTF-8 string | string | ✔️ |
51
+
|`uris`|`us`|List of related URIs (site, dashboard, social media, etc.) | See 2.3 _uris_| See 2.3 _uris_| array ||
52
+
|`additional_info`|`ai`|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 ||
52
53
53
54
---
54
55
@@ -67,7 +68,7 @@ MPTs include a 1024-byte field for arbitrary metadata. The metadata field is par
|`stablecoin`| Tokens pegged to a stable value (typically fiat currencies like USD), backed by reserves such as cash, treasuries, or crypto collateral |
73
74
|`commodity`| Tokens representing physical commodities like gold, silver, or oil, often redeemable or legally linked to off-chain reserves |
@@ -79,40 +80,57 @@ MPTs include a 1024-byte field for arbitrary metadata. The metadata field is par
79
80
80
81
---
81
82
82
-
### 2.3 urls
83
+
### 2.3 uris
83
84
84
-
| Field | Description | Example | Allowed Values | Required |
|`uri`|`u`| URI to the related resource | exampleyield.com/tbill, ipfs://abc123... |`hostname/path` (HTTPS assumed) or full URI for other protocols| ✔️ |
88
+
|`category`|`c`| The category of the link | website | website, social, docs, other| ✔️ |
89
+
|`title`|`t`|A human-readable label for the link | Product Page | Any UTF-8 string| ✔️ |
89
90
90
91
---
91
92
92
-
### JSON Metadata example
93
+
## 3. Field Name Format
94
+
95
+
The metadata schema supports JSON objects with both long field names (e.g., `ticker`, `name`, `desc`) and short key names (e.g., `t`, `n`, `d`). However, it is recommended to use short key names to reduce storage requirements of the ledger. The MPT metadata field has a 1024-byte limit, and using compact keys can reduce the metadata size and allow more information to be stored within the available space.
96
+
97
+
### 3.1 Client Library Support
98
+
99
+
XRPL client libraries will provide utility functions to facilitate working with metadata in both formats:
100
+
101
+
-**Encoding utility**: Converts JSON metadata to hexadecimal format for on-ledger storage. If long field names are provided, the utility will automatically shorten them to their compact key equivalents before encoding.
102
+
-**Decoding utility**: Converts hexadecimal metadata from the ledger back to JSON format. The utility will expand short keys back to their full field names for improved readability.
103
+
104
+
This approach provides flexibility for developers while ensuring efficient on-ledger storage. Developers can work with human-readable long field names in their applications, and the client libraries will handle the conversion to compact format automatically.
105
+
106
+
---
107
+
108
+
### 3.2 JSON Metadata Example
109
+
110
+
The example below demonstrates the recommended format using short key names. Note that the **Key** values from the tables in Section 2 are used as the property names in the JSON metadata object.
93
111
94
112
```json
95
113
{
96
-
"ticker": "TBILL",
97
-
"name": "T-Bill Yield Token",
98
-
"desc": "A yield-bearing stablecoin backed by short-term U.S. Treasuries and money market instruments.",
99
-
"icon": "https://example.org/tbill-icon.png",
100
-
"asset_class": "rwa",
101
-
"asset_subclass": "treasury",
102
-
"issuer_name": "Example Yield Co.",
103
-
"urls": [
114
+
"t": "TBILL",
115
+
"n": "T-Bill Yield Token",
116
+
"d": "A yield-bearing stablecoin backed by short-term U.S. Treasuries and money market instruments.",
0 commit comments