Trust Lines and Issued Currencies XRPLs Token Model
Learning Objectives
Explain how trust lines work and why XRPL requires explicit trust relationships
Create and manage trust lines including setting limits and understanding reserves
Evaluate issued currency issuers using a systematic risk assessment framework
Understand rippling and how it affects multi-hop payments and trading
Apply best practices for managing issued currency exposure in your DeFi portfolio
On Ethereum, if someone sends you an ERC-20 token, it appears in your wallet whether you want it or not. This enables airdrops but also spam, scams, and dust attacks.
XRPL took a different approach: You cannot receive any issued currency without first creating a trust line to the issuer.
- **Pros:** No spam tokens, explicit counterparty acknowledgment, cleaner wallets
- **Cons:** More friction for new assets, extra steps for users, reserve requirements
For DeFi participants, understanding trust lines isn't optional—it's foundational. Every stablecoin, LP token, or issued asset requires a trust line before you can hold it.
TRUST LINE DEFINITION
A trust line is:
├── A relationship between your account and an issuer
├── Permission to hold their issued currency
├── A limit on how much you'll accept
├── Stored on the XRPL ledger
└── Costs reserve to maintain
Think of it as:
├── Opening a credit line with a bank
├── Agreeing to accept someone's IOUs
├── Saying "I trust issuer X for up to Y amount"
└── Explicit, not implicit
NOT a trust line:
├── Holding XRP (native, no trust needed)
├── Passive receipt of tokens
├── Automatic acceptance
└── One-size-fits-all permission
```
TRUST LINE MECHANICS
- Specify issuer account address
- Specify currency code (USD, EUR, XRP, etc.)
- Specify limit (max you'll hold)
- Sign and submit transaction
- Reserve locked (~2 XRP currently)
- Trust line now active
Example:
├── You want to hold RLUSD
├── Ripple's RLUSD issuer: [address]
├── Currency: USD
├── Limit: 1,000,000 (or practical max)
├── Result: You can now receive RLUSD
└── Before this: RLUSD payments to you fail
Trust line parameters:
├── Currency: 3-letter code or 160-bit hex
├── Limit: Maximum balance you'll hold
├── Quality: Rate adjustments (advanced)
├── Flags: Rippling, freeze, etc.
└── Balance: Current holdings (starts at 0)
```
TRUST LINE RESERVES
Current reserve cost:
├── Base reserve: 10 XRP (just to have an account)
├── Owner reserve: 2 XRP per object
├── Trust line: 1 object = 2 XRP reserve
├── More trust lines = more XRP locked
└── Reserve returned when trust line deleted
Example:
├── You have 100 XRP
├── Base reserve: 10 XRP locked
├── Available: 90 XRP
├── Create 5 trust lines: 10 XRP locked
├── Available: 80 XRP
└── Those 10 XRP can't be spent while trust lines exist
Implications:
├── Each issued currency costs ~2 XRP to hold
├── Active DeFi users need reserve buffer
├── Cleaning up unused trust lines recovers reserve
├── Consider reserve when planning positions
└── Not a fee—locked, not spent
```
ISSUED CURRENCY FUNDAMENTALS
An issued currency is:
├── A token created by an issuer on XRPL
├── An IOU representing value held elsewhere
├── Identified by currency code + issuer address
├── Only exists on trust lines
└── Has counterparty risk = issuer risk
Examples:
├── RLUSD: USD-denominated IOU from Ripple
├── USD.Bitstamp: USD IOU from Bitstamp exchange
├── EUR.Gatehub: EUR IOU from Gatehub gateway
├── Random token: IOU from random address
└── LP tokens: Pool shares from AMM
Key insight:
├── Same currency code, different issuer = different token
├── USD from Ripple ≠ USD from Bitstamp
├── Each has different counterparty risk
├── Must evaluate each issuer separately
└── Currency code is just a label
```
CURRENCY CODE SYSTEM
Standard codes (3 characters):
├── USD, EUR, GBP, JPY, etc.
├── BTC, ETH, XRP (for representations)
├── Any 3 ASCII characters
└── Human readable
Non-standard codes (160-bit hex):
├── For tokens with longer names
├── Allows any identifier
├── Less human readable
├── Used for unique tokens
└── Still requires trust line
Important distinction:
├── "USD" from Ripple = RLUSD
├── "USD" from Bitstamp = Bitstamp USD
├── Same code, completely different assets
├── Issuer address differentiates
└── Always check issuer, not just code
```
TYPES OF ISSUERS
Regulated gateways:
├── Bitstamp, Gatehub, etc.
├── Licensed financial entities
├── KYC/AML compliant
├── Fiat redemption possible
├── Higher trust, lower risk
└── Example: RLUSD from Ripple
Unregulated gateways:
├── Various crypto services
├── May or may not be legitimate
├── Redemption uncertain
├── Higher risk
└── Due diligence essential
Protocol-generated:
├── AMM LP tokens
├── Created by XRPL protocol
├── Represent pool shares
├── Not redeemable for fiat
└── Different risk profile
Community/project tokens:
├── Various token projects
├── Varying quality and legitimacy
├── Often no redemption mechanism
├── Highest risk category
└── Buyer beware
```
ISSUER EVALUATION FRAMEWORK
- Who is the issuer?
- What backs the currency?
- Can you redeem it?
- What's the track record?
- What's the regulatory status?
ISSUER RISK TIERS
Tier 1 - Lowest Risk:
├── Regulated entity
├── Regular attestations/audits
├── Clear redemption process
├── Years of operation
├── Large user base
└── Examples: RLUSD (Ripple), USD.Bitstamp
Tier 2 - Medium Risk:
├── Known entity
├── Some track record
├── Less regulatory clarity
├── Smaller scale
├── Redemption possible but less certain
└── Various smaller gateways
Tier 3 - Higher Risk:
├── Anonymous or unknown issuer
├── No redemption mechanism
├── Limited track record
├── Community token
├── No backing visible
└── Exercise extreme caution
Tier 4 - Highest Risk:
├── Red flags present
├── No verifiable information
├── Suspicious patterns
├── Avoid
└── Likely scam
```
ISSUER DUE DILIGENCE
Before creating trust line:
□ Issuer identity verified
□ Website and documentation reviewed
□ Redemption process understood
□ Fees and limits known
□ Regulatory status checked
□ Community reputation researched
□ Track record examined
□ Backing mechanism understood
□ Terms of service read
□ Risk level assessed
Red flags:
✗ Anonymous issuer
✗ No website or documentation
✗ Promises of guaranteed returns
✗ No redemption mechanism
✗ No track record
✗ Negative community feedback
✗ Suspicious wallet patterns
✗ Copy of legitimate project
└ Any of these = avoid
---
RIPPLING EXPLAINED
Rippling is:
├── Movement of issued currency through trust lines
├── Enables multi-hop payments
├── Your balance can change without direct transaction
├── Core feature of XRPL's design
└── Can be enabled or disabled per trust line
How it works:
├── A trusts Issuer
├── B trusts Issuer
├── C wants to pay A via B
├── If B has rippling enabled:
│ C → B → A (balance flows through B)
├── B's balance changes as intermediary
└── Enables payment paths
Original purpose:
├── Enable payment networks
├── Like correspondent banking
├── Money flows through trust relationships
├── Designed for payment efficiency
└── Gateway-to-gateway transfers
```
RIPPLING IN PRACTICE
If rippling is ENABLED:
├── Your balance can change via others' transactions
├── Can participate in payment paths
├── May be useful for businesses/gateways
├── Less common for individual users
└── Default varies by wallet
If rippling is DISABLED (NoRipple flag):
├── Your balance only changes via YOUR transactions
├── Can't be used as intermediary
├── More control over your balance
├── Recommended for most individual users
└── Protects against unexpected changes
Checking rippling status:
├── View your trust line details
├── Check NoRipple flag
├── Most wallets show this
├── Can be changed anytime
└── Each trust line independent
```
RIPPLING MANAGEMENT
For most DeFi users:
├── Disable rippling (enable NoRipple flag)
├── Prevents unexpected balance changes
├── Your holdings stay static except for your trades
├── Simpler accounting
└── Recommended default
When rippling might be useful:
├── Operating a gateway
├── Running a market making business
├── Participating in payment networks
├── Specific business use cases
└── Not typical individual use
Setting NoRipple:
├── Most wallets have toggle
├── Set per trust line
├── Transaction required to change
├── Costs small network fee
└── Can be set when creating trust line
```
CREATING A TRUST LINE
- Navigate to trust line section
- Enter issuer address
- Enter currency code
- Set limit (often defaults to high number)
- Choose rippling setting
- Confirm and sign
- Trust line active after ledger closes
Important considerations:
├── Verify issuer address (copy carefully)
├── Set practical limit
├── Disable rippling for most cases
├── Ensure enough XRP for reserve
└── One trust line = one issuer + currency combo
Common mistakes:
├── Wrong issuer address (different asset!)
├── Limit too low (can't receive expected amount)
├── Forgetting reserve requirement
├── Trusting scam issuers
└── Not verifying before sending to trust line
```
TRUST LINE MANAGEMENT
Modifying trust lines:
├── Change limit anytime
├── Change rippling flag
├── Cannot change currency or issuer
├── Must create new for different issuer
└── Updates cost network fee
Removing trust lines:
├── Balance must be zero
├── Sell/send all holdings first
├── Remove trust line
├── Recover ~2 XRP reserve
└── Cannot remove with balance
Viewing trust lines:
├── Wallet shows list
├── Explorer shows details
├── See: Issuer, currency, balance, limit
├── See: Rippling flag status
└── Review periodically
```
BEST PRACTICES
Security:
├── Only trust verified issuers
├── Double-check addresses
├── Start with small limits
├── Disable rippling (usually)
└── Review trust lines periodically
Organization:
├── Keep track of what you trust and why
├── Remove unused trust lines
├── Document issuer details
├── Note redemption processes
└── Audit trust lines regularly
Reserve management:
├── Calculate total reserve needs
├── Keep buffer above reserve
├── Clean up to recover XRP
├── Plan before adding many trust lines
└── Factor into total cost
Risk management:
├── Diversify across issuers
├── Don't over-concentrate
├── Monitor issuer health
├── Have exit plans
└── Only trust what you've evaluated
```
DeFi AND TRUST LINES
DEX trading:
├── Need trust lines for all assets you'll trade
├── Except XRP (no trust needed)
├── Set up before trading
├── Auto-bridging requires relevant trust lines
└── Can't receive trade proceeds without trust line
AMM liquidity:
├── Need trust lines for both pool assets
├── Need trust line for LP token
├── LP token issuer = AMM account
├── Three trust lines minimum per pool
└── Plus reserve for each
Receiving payments:
├── Need trust line for currency being received
├── Payment fails without trust line
├── Can check pending payments
├── Set up trust line first
└── Then payment can complete
Future DeFi:
├── Lending will require trust lines
├── Each new asset = new trust line
├── Reserve requirements add up
├── Plan ahead for active participation
└── XRP reserve is DeFi overhead
```
TYPICAL DeFi TRUST LINE NEEDS
Basic XRP/Stablecoin trader:
├── RLUSD trust line (Ripple)
├── Maybe USD.Bitstamp
├── Total: 1-2 trust lines
├── Reserve: ~4 XRP
└── Minimal overhead
Active DEX trader:
├── Multiple stablecoins
├── Various tokens
├── Total: 5-15 trust lines
├── Reserve: 10-30 XRP
└── Moderate overhead
AMM LP (one pool):
├── Asset A trust line
├── Asset B trust line
├── LP token trust line
├── Total: 3 trust lines
├── Reserve: ~6 XRP
└── Per pool
Active DeFi user:
├── Multiple trading pairs
├── Multiple LP positions
├── Various tokens
├── Total: 20+ trust lines possible
├── Reserve: 40+ XRP
└── Significant overhead
```
LP TOKEN SPECIFICS
What LP tokens are:
├── Issued currencies from AMM accounts
├── Currency code: Unique to pool
├── Issuer: AMM account address
├── Represent your pool share
└── Function like other issued currencies
Setting up LP token trust line:
├── Usually automatic via wallet interface
├── Can create manually with AMM address
├── Currency code from pool details
├── Limit: Sufficient for your LP position
└── Required before depositing
Managing LP tokens:
├── Balance increases/decreases with LP activity
├── Can transfer like other currencies
├── Can trade on DEX (if someone wants them)
├── Withdraw to redeem for pool assets
└── Trust line can be removed after withdrawal
```
✅ Trust lines prevent spam. Unlike Ethereum wallets cluttered with worthless tokens, XRPL wallets only contain what you've chosen to trust.
✅ The model works for 12+ years. Billions in issued currencies have been created, transferred, and redeemed on this system.
✅ Explicit trust makes counterparty risk visible. You always know who issued what you're holding.
⚠️ Whether friction hurts adoption. Extra steps may deter casual users compared to "just receive tokens" model.
⚠️ Reserve sustainability at scale. Active DeFi users may have significant XRP locked in reserves.
⚠️ User understanding. Many users may not fully grasp trust line implications.
📌 Trusting the wrong issuer. A worthless IOU is worthless regardless of what it's called.
📌 Assuming all "USD" is equal. USD from different issuers has different risk profiles.
📌 Ignoring redemption mechanisms. Can you actually get fiat for that issued currency?
Trust lines are XRPL's unique approach to tokenization—explicit, consent-based, with visible counterparty risk. For DeFi participants, they're non-negotiable infrastructure. Understanding them isn't just technical knowledge; it's risk management. Every issued currency you hold is an IOU from someone—evaluate that someone before you trust them with your assets.
Assignment: Create a comprehensive risk assessment for your current or planned trust lines.
Requirements:
Part 1: Trust Line Inventory
List all trust lines you have or plan to create:
| Currency | Issuer Name | Issuer Address | Balance | Limit | Purpose |
|---|---|---|---|---|---|
Part 2: Issuer Risk Assessment
For each issuer, complete the evaluation:
| Question | Issuer 1 | Issuer 2 | Issuer 3 |
|---|---|---|---|
| Known entity? | |||
| Regulated? | |||
| Redemption mechanism? | |||
| Track record (years)? | |||
| Backing verified? | |||
| Community reputation? | |||
| Risk Tier (1-4) |
Part 3: Concentration Analysis
- Total issued currency value
- Value per issuer
- Percentage per issuer
- Is any issuer >50% of holdings?
- Diversification assessment
Part 4: Reserve Analysis
- Number of trust lines
- Reserve locked (trust lines × 2 XRP)
- Base reserve (10 XRP)
- Total reserve
- Available XRP after reserve
- Is this acceptable?
Part 5: Action Items
Trust lines to add
Trust lines to remove
Positions to reduce (issuer risk)
Reserve adjustments needed
Documentation to create
Completeness of inventory: 20%
Quality of issuer assessment: 30%
Concentration analysis: 20%
Reserve analysis accuracy: 15%
Actionable recommendations: 15%
Time investment: 2-3 hours
Knowledge Check
Question 1 of 4What happens if someone tries to send you RLUSD but you don't have a trust line to Ripple's issuer?
- XRPL.org trust line specification
- TrustSet transaction documentation
- Rippling mechanics
- Ripple RLUSD documentation
- Gateway directories
- Community verification resources
- Counterparty risk frameworks
- Due diligence checklists
- Issuer reputation databases
For Next Lesson:
Lesson 10 deep-dives into Stablecoins on XRPL—RLUSD, alternative options, and building a stable foundation for your DeFi activities.
End of Lesson 9
Total words: ~4,700
Estimated completion time: 55 minutes reading + 2-3 hours for deliverable
Key Takeaways
Trust lines are explicit permission to hold issued currencies.
You must create a trust line before receiving any non-XRP asset.
Each trust line costs ~2 XRP in reserve.
This adds up for active DeFi users; plan accordingly.
Same currency code ≠ same asset.
USD from Ripple and USD from Bitstamp are completely different. Always verify the issuer.
Evaluate issuers systematically.
Use the risk framework: Who are they? What backs it? Can you redeem? What's their track record?
Disable rippling for individual use.
Unless you're operating a gateway, enable the NoRipple flag to prevent unexpected balance changes. ---