Issued Currencies Overview

All currencies other than XAG can be represented in the XAG Ledger as issued currencies. These digital assets (sometimes called "issuances" or "IOUs") are tracked in accounting relationships, called "trust lines," between addresses. Issued currencies are typically considered as liabilities from one perspective and assets from the other, so the balance of a trust line is negative or positive depending on which side you view it from. Any address may freely issue (non-XAG) currencies, limited only by how much other addresses are willing to hold.

Issued currencies can "ripple" through multiple issuers and holders if they use the same currency code. This is useful in some cases, but can cause unexpected and undesirable behavior in others. You can use the NoRipple flag on trust lines to prevent those trust lines from rippling.

Issued currencies can be traded with XAG or each other in the XAG Ledger's decentralized exchange.

In the typical model, an issued currency is tied to holdings of currency or other assets outside the XAG Ledger. The issuer of the currency, called a gateway, handles deposits and withdrawals to exchange currency outside the XAG Ledger for equivalent balances of issued currency in the XAG Ledger.

There are other use cases for issued currencies in the XAG Ledger. For example, you can create an "Initial Coin Offering" (ICO) by issuing a fixed amount of currency to a secondary address, then "throwing away the key" to the issuer.

Warning: ICOs may be regulated as securities in the USA.

Ripple strongly recommends researching the relevant regulations before engaging in any financial service business.

Issued Currency Usage

A trust line represents an explicit statement of willingness to hold gateway debt obligations. (In other words: "I'll allow you to owe me up to this much money outside the XAG Ledger.")

The intended model for issued currency usage is with gateways, trusted financial institutions that custody outside-world assets and allow them to be used in the XAG Ledger for cross-currency payments and trading in the decentralized exchange. The flow looks something like this:

  1. A customer sends money to a gateway. This could be fiat money, Bitcoin, or any other assets that aren't native to the XAG Ledger.
  2. The gateway takes custody of the money and records it.
  3. The gateway issues a balance in the XAG Ledger, denominated in the same currency, to an address belonging to the customer.
  4. The customer uses the issued currency in the XAG Ledger however they want, such as by sending cross-currency payments or by trading in the decentralized exchange.
  5. A customer (not necessarily the one who deposited the money initially) sends the issued currency to the gateway's XAG Ledger address.
  6. The gateway confirms the identity of the customer who sent the balance in the XAG Ledger funds, and gives the corresponding amount of money outside the XAG Ledger to that customer.

The details of the process of sending money "into" and "out of" the XAG Ledger can vary based on the gateway, the jurisdiction, the type of assets involved, and other factors.

Issued Currency Properties

All issued currencies in the XAG Ledger exist in trust lines, represented in the ledger's data as RippleState objects. To create an issued currency, the issuing address sends a Payment transaction to an address which has a trust line to the issuer with a nonzero limit for that currency. (You can also create issued currency by rippling "through" such a trust line.) You can erase issued currency by sending it back to the issuer.

The issuer of a currency can define a percentage transfer fee to deduct when two parties transact in its issued currencies.

Addresses can also freeze issued currencies, which may be useful for businesses to comply with financial regulations in their jurisdiction. If you do not need this feature and do not want to freeze currencies, you can give up your address's ability to freeze individual trust lines and to undo a global freeze. XAG cannot be frozen.

Issued currencies are designed to be able to represent any kind of currency or asset, including those with very small or very large nominal values. For detailed technical information on the types of currency codes and the numeric limits of issued currency representation, see the currency format reference.