
Locking funds on the ledger
4 minDifficulty Checked 2026-11-10- An escrow locks funds for a named recipient. The ledger is the only middleman.
- Three kinds: time-based, conditional, or both combined.
- Create it, then finish it to pay out or cancel it after expiry.
In an ordinary escrow, two people use a neutral third party. The third party holds the money and hands it over when the deal's terms are met.
On the XRP Ledger, the ledger itself is the third party. You lock funds in a box with one name on it. The box opens for that person when a rule is met. Until then nobody can spend what is inside. That includes you.
There are three kinds of rule:
- Time. "Not before June 1." After that date the box can be opened.
- Secret. "Only with the right password." Whoever shows the password can open the box.
- Both. "Not before June 1, and only with the password."
You can also set an expiration. If the box is not opened by then, it can no longer pay the recipient. The funds can go back to you.
Three steps make up an escrow's life:
- Create. You lock the funds and set the rules. The rules cannot be changed afterward.
- Finish. Once the rule is met, someone sends a transaction that opens the box. The funds go to the recipient.
- Cancel. If the escrow expired first, someone sends a transaction that returns the funds to you.
The box does not open by itself. A finish or cancel transaction has to be sent. Anyone may send it, and the funds can only go where the escrow says.
The Escrow amendment was enabled on mainnet on 2017-03-31. It covered XRP only. TokenEscrow added tokens on 2026-02-12.
EscrowCreate fields:
| Field | Meaning |
|---|---|
Amount | XRP in drops, or a token amount. |
Destination | The account that receives the funds. |
FinishAfter | Earliest release time. Optional. |
CancelAfter | Expiration time. Optional for XRP in some combinations. |
Condition | A PREIMAGE-SHA-256 crypto-condition, as hex. Optional. |
DestinationTag | Optional tag for the recipient. |
Valid combinations:
| Type | FinishAfter | Condition | CancelAfter |
|---|---|---|---|
| Time-based (XRP only) | Yes | ||
| Time-based with expiration | Yes | Yes | |
| Timed conditional (XRP only) | Yes | Yes | |
| Timed conditional with expiration | Yes | Yes | Yes |
| Conditional with expiration | Yes | Yes |
A conditional escrow with no finish time must have an expiration.
A successful create makes an Escrow ledger entry that holds the funds. The times and the condition are immutable.
Reserve. The Escrow entry counts as one item toward the sender's owner reserve, 0.2 XRP, until it is finished or canceled.
Finish and cancel identify an escrow by Owner, the sender's address, and OfferSequence, the sequence number of the EscrowCreate. Keep that number when you create an escrow.
Lookup. account_objects with the type filter set to escrow lists the escrows linked to an account, as sender or as recipient.
Limits noted by xrpl.org
- Two transactions are always needed, so small amounts may not be worth it.
- Times cannot be in the past at creation.
- Release and expiry follow ledger close times and can vary by about five seconds.
Related: Time locks and conditions, Owner reserve.
- EscrowRead 2026-11-10
- EscrowCreateRead 2026-11-10
- EscrowRead 2026-11-10
- Look Up EscrowsRead 2026-11-10
- Known AmendmentsRead 2026-11-10
