XRP Ledger Namespace - Assets

Author Pelle Braendgaard
Discussions-To https://github.com/ChainAgnostic/namespaces/pull/158/
Status Draft
Type Standard
Created 2023-02-23
Updated 2025-11-06
Requires CAIP-2, CAIP-10, CAIP-19, CAIP-20

CAIP-19

For context, see the CAIP-19 specification.

Rationale

The XRP Ledger supports multiple types of digital assets beyond its native XRP token. These include fungible tokens (issued currencies via trust lines), non-fungible tokens (NFTokens via XLS-20), AMM liquidity pool tokens, and the newer Multi-Purpose Tokens (MPTs). This specification defines how to identify each asset type using the CAIP-19 standard.

Asset Types

The XRP Ledger has the following asset types:

  1. Native XRP - The native digital asset of the XRP Ledger, used for transaction fees and as a bridge currency
  2. Trust Line Tokens (Issued Currencies) - Fungible tokens issued by accounts, representing any asset (fiat currencies, commodities, other tokens)
  3. NFTokens - Non-fungible tokens following the XLS-20 standard, representing unique digital or physical assets
  4. AMM LP Tokens - Liquidity provider tokens from Automated Market Makers (XLS-30), representing shares in liquidity pools
  5. Multi-Purpose Tokens (MPTs) - Next-generation fungible tokens with improved efficiency (currently in development)

Syntax

The asset identification follows the CAIP-19 standard with the chain ID from CAIP-2 followed by a slash, an asset namespace, a colon, and an asset reference.

asset_id:           chain_id + "/" + asset_namespace + ":" + asset_reference
chain_id:           See [CAIP-2][]
asset_namespace:    "slip44" | "token" | "xls20" | "xls30" | "xls33"
asset_reference:    slip44_ref | token_ref | xls20_ref | xls30_ref | xls33_ref

slip44_ref:         "144"
token_ref:          currency_code + "." + issuer_address
currency_code:      standard_code | nonstandard_code
standard_code:      [A-Za-z0-9?!@#$%^&*<>(){}[\]|]{3}
nonstandard_code:   [0-9A-F]{40}
issuer_address:     r[1-9a-hj-zA-HJ-NP-Z]{24,34}
xls20_ref:          [0-9A-F]{64}
xls30_ref:          [0-9A-F]{40} + "." + amm_address
amm_address:        r[1-9a-hj-zA-HJ-NP-Z]{24,34}
xls33_ref:          [0-9A-F]{64}

Semantics

Native Asset (slip44)

The native XRP token uses the SLIP-44 coin type as defined in CAIP-20. XRP has coin type 144 in the SLIP-44 registry.

Reference format: 144

Trust Line Tokens (token)

Issued currencies on the XRP Ledger are fungible tokens that exist in trust lines between accounts. Each token is identified by a currency code and an issuer address.

Currency codes can be:

  • Standard format: 3-character ASCII string (typically ISO 4217 codes like USD, EUR, but can include symbols)
  • Nonstandard format: 40-character (160-bit) hexadecimal string for custom identifiers

Reference format: {currency_code}.{issuer_address}

The currency code and issuer address are separated by a period (.).

NFTokens (xls20)

NFTokens follow the XLS-20 standard and are identified by their unique 64-character hexadecimal NFTokenID. The NFTokenID encodes multiple pieces of information including flags, transfer fee, issuer address, taxon, and sequence number.

Reference format: {nftoken_id}

AMM LP Tokens (xls30)

Automated Market Maker liquidity provider tokens (specified in XLS-30) represent ownership shares in AMM pools. LP token currency codes always start with 03 followed by 38 hex characters (a truncated SHA-512 hash of the asset pair). The issuer is the AMM account address.

Reference format: {lp_currency_code}.{amm_address}

Multi-Purpose Tokens (xls33)

Multi-Purpose Tokens (specified in XLS-33) are next-generation fungible tokens designed for improved efficiency. Each MPT is identified by a unique 64-character hexadecimal identifier.

Reference format: {mpt_id}

Note: MPTs are currently in development and not yet available on mainnet.

Test Cases

# Native XRP on Livenet
xrpl:0/slip44:144

# RLUSD issued currency on Livenet (Ripple USD stablecoin)
xrpl:0/token:RLUSD.rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De

# USD issued by Bitstamp on Livenet
xrpl:0/token:USD.rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B

# SOLO token with nonstandard currency code on Livenet (Sologenic)
xrpl:0/token:534F4C4F00000000000000000000000000000000.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz

# NFToken on Livenet
xrpl:0/xls20:000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65

# AMM LP token on Livenet (XRP/TST pool)
xrpl:0/xls30:039C99CD9AB0B70B32ECDA51EAAE471625608EA2.rE54zDvgnghAoPopCgvtiqWNq3dU5y836S

# NFToken on Testnet
xrpl:1/xls20:00081388C47ABB000CAFAF6F89F18D4E5F6A3377E340DA2C09999E250000001F

# Multi-Purpose Token on Devnet (hypothetical - MPTs not yet on mainnet)
xrpl:2/xls33:000000000A1B2C3D4E5F6789ABCDEF0123456789ABCDEF0123456789ABCDEF01

References

Copyright and related rights waived via CC0.

Citation

Please cite this document as:

Pelle Braendgaard, "namespaces/xrpl-caip19: XRP Ledger Namespace - Assets [DRAFT]," Chain Agnostic Namespaces, xrpl-caip19, February 2023 / November 2025. [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/xrpl-caip19.md