
Issuers, holders and limits
4 minDifficulty Checked 2026-11-10- A trust line token is one shared balance between an issuer and a holder.
- Your limit caps what others can send you. Your own trades can go past it.
- Nobody can make you hold a token you never agreed to hold.
XRP is built into the ledger. Other fungible tokens are created by accounts called issuers. A stablecoin company, a game or a meme project can each be an issuer.
To hold a token, you open a trust line to its issuer. A trust line is how your wallet agrees to hold a token, up to a limit you choose. It is a record on the ledger that links your account and the issuer's account, with one shared balance.
Picture a jar with two names on the label: yours and the issuer's. The jar holds one kind of token. Your limit is the size of the jar. Other people cannot pour in more than fits.
This is the core safety rule. Nobody can send you a token until you open a line for it. Only your own actions can take you past the limit:
- You buy more of the token on the DEX.
- You cash a check for it.
- You lower the limit while you already hold more than the new limit.
A token is named by two things together: its currency code and its issuer. Two tokens can both be called "USD" and have nothing to do with each other, because different accounts issued them.
Issuers create new tokens by sending them along a trust line. Tokens sent back to the issuer are destroyed.
Each trust line also locks 0.2 XRP of your balance as an owner reserve. You get it back when the line is removed. See Reserves and removing a line.
A trust line is a RippleState ledger entry. It connects two accounts for one currency code. Two accounts can share many lines, but only one per currency code.
| Part | Detail |
|---|---|
| Balance | One shared value. Positive from the holder's side, negative from the issuer's side. |
| Limit | Set separately by each side. Default 0. |
| Settings | Each side has its own No Ripple, Freeze, Deep Freeze, Authorized and quality settings. |
The account with the negative balance is the issuer. A limit is not a reliable sign, because limits can change without moving the balance.
Open or change your side of a line with TrustSet:
{
"TransactionType": "TrustSet",
"Account": "r...holder",
"LimitAmount": { "currency": "FOO", "issuer": "r...issuer", "value": "1000" }
}LimitAmount.issuer is the account you extend trust to. Currency codes are three characters, such as USD, or a 160-bit hex value for longer codes such as RLUSD. XRP is not a valid token code.
Some transactions create a line for you, with default settings and a 0 limit. Buying a token with OfferCreate does this. So does CheckCash, since the CheckCashMakesTrustLine amendment. In each case you sent the transaction, so nobody forces a token on you.
Read lines live:
account_lineslists an account's lines withbalance,limitandlimit_peer.gateway_balancestotals what an issuer has issued.
Trust line tokens are the ledger's original fungible token standard. Multi-Purpose Tokens are a newer standard that does not use trust lines.
- Trust Line TokensRead 2026-11-10
- RippleStateRead 2026-11-10
- TrustSetRead 2026-11-10
- OffersRead 2026-11-10
- TokensRead 2026-11-10
- Known AmendmentsRead 2026-11-10
