> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dfns.co/llms.txt
> Use this file to discover all available pages before exploring further.

# XRP Ledger

> Network-specific features, signature kinds, supported assets, and integration requirements for XRP Ledger wallets on the Dfns platform.

The XRP Ledger (XRPL) is a decentralized public blockchain designed for fast, low-cost payments. This guide covers XRPL-specific features when using Dfns wallets.

## Account activation

On the XRP Ledger, a wallet address must be **activated** before it can send transactions or hold assets. Activation requires funding the account with native XRP to meet the base reserve requirement.

| Requirement  | Amount |
| ------------ | ------ |
| Base reserve | 1 XRP  |

<Note>
  The base reserve is locked and cannot be spent. It ensures accounts on the ledger are not created frivolously.
</Note>

## Receiving issued currencies (creating trust lines)

Before an XRPL wallet can receive an **issued currency** (tokens like USDC, stablecoins, or any non-XRP asset), it must establish a **trust line** to that asset's issuer. This is an XRP Ledger network requirement - without a trust line, the wallet cannot hold or receive the issued currency.

<Note>
  Learn more about trust lines in the [XRPL documentation](https://xrpl.org/docs/concepts/tokens/fungible-tokens/authorized-trust-lines).
</Note>

Use the Broadcast API with a `TrustSet` transaction to create a trust line. To remove a trust line, set the limit to 0 (the asset balance must be 0 first).

```mermaid theme={null}
flowchart LR
    A[No trust line, cannot receive asset] -->|TrustSet| B[Trust line active, can receive asset]
    B -->|Balance = 0| C[Trust line can be removed]
    C -->|limit = 0| A
```

See the [XRP Ledger broadcast examples](/api-reference/broadcast/xrp) for complete implementation details, including the [trust lines example](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/libs/xrpl/trustlines).

## Reserve requirements

XRPL accounts must maintain reserves to stay active and hold objects on the ledger:

| Requirement    | Amount  |
| -------------- | ------- |
| Base reserve   | 1 XRP   |
| Per trust line | 0.2 XRP |
| Per offer      | 0.2 XRP |
| Per signer     | 0.2 XRP |

For example, an account with 3 trust lines must maintain at least **1.6 XRP** (1 base + 3 × 0.2 trust lines).

<Tip>
  New accounts get their first 2 trust lines free - no additional reserve is required beyond the 1 XRP base reserve. This makes it easier to onboard users who only need to hold a few token types.
</Tip>

<Tip>
  You can reclaim trust line reserves by removing trust lines for assets you no longer hold.
</Tip>

## Destination tags

XRPL supports **destination tags** - numeric identifiers (0 to 4,294,967,295) that travel with transactions. These are commonly used by exchanges and custodians to identify which customer a deposit belongs to.

<Warning>
  When sending to an address that requires a destination tag, always include it. Deposits without the correct tag may be lost or require manual recovery.
</Warning>

## Transfers

Use the [Transfer Asset](/api-reference/wallets/transfer-asset) endpoint for all XRP Ledger transfers:

* **Native XRP**: Use `kind: Native` with amount in drops (1 XRP = 1,000,000 drops)
* **Issued currencies (IOUs)**: Use `kind: Iou` with the `currency` code and `issuer` address. The amount is in minimum denomination — XRPL IOUs are treated as 6 decimals in Dfns, so `"amount": "1000000"` equals 1 unit of the token. You can confirm the exact decimals for any token by checking the `decimals` field in the [Get Wallet Assets](/api-reference/wallets/get-wallet-assets) response.
* **XLS-33 tokens**: Use `kind: Xls33` with the `issuanceId`. The amount is in minimum denomination — decimals vary per token based on the on-chain `AssetScale`. Check the `decimals` field in the [Get Wallet Assets](/api-reference/wallets/get-wallet-assets) response for the correct value.

## SDK integration

For full transaction control, use the Dfns SDK with [xrpl.js](https://js.xrpl.org/). See complete examples:

* [Basic transaction](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/libs/xrpl/basic-tx) - Simple XRP payment
* [Trust lines](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/libs/xrpl/trustlines) - Trust line operations for issued currencies

## Related resources

* [XRP Ledger broadcast examples](/api-reference/broadcast/xrp)
* [XRP Ledger signing examples](/api-reference/sign/xrp)
* [Supported networks](/networks)
* [XRPL documentation](https://xrpl.org/docs/)
