EscrowFinish
Deliver XRP from an escrow (held payment) to the recipient.
Added by the Escrow amendment.
Example EscrowFinish JSON
{
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"TransactionType": "EscrowFinish",
"Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"OfferSequence": 7,
"Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100",
"Fulfillment": "A0028000"
}
EscrowFinish Fields
In addition to the common fields, EscrowFinish transactions use the following fields:
Field | JSON Type | Internal Type | Required? | Description |
---|---|---|---|---|
Owner | String | AccountID | Yes | Address of the source account that funded the escrow. |
OfferSequence | Number | UInt32 | Yes | Transaction sequence of EscrowCreate transaction that created the escrow to finish. |
Condition | String | Blob | No | Hex value matching the previously-supplied PREIMAGE-SHA-256 crypto-condition of the escrow. |
CredentialIDs | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see Credential IDs. |
Fulfillment | String | Blob | No | Hex value of the PREIMAGE-SHA-256 crypto-condition fulfillment matching the escrow's Condition . |
Any account may submit an EscrowFinish transaction.
- If the escrow has a
FinishAfter
time, you cannot execute it before this time. Specifically, if the corresponding EscrowCreate transaction specified aFinishAfter
time that is after the close time of the most recently-closed ledger, the EscrowFinish transaction fails. - If the escrow has a
Condition
, you cannot execute it unless you provide a matchingFulfillment
for the condition. - You cannot execute an escrow after it has expired. Specifically, if the corresponding EscrowCreate transaction specified a
CancelAfter
time that is before the close time of the most recently-closed ledger, the EscrowFinish transaction fails.
In non-production networks, it may be possible to delete the destination account of a pending escrow. In this case, an attempt to finish the escrow fails with the result tecNO_TARGET
, but the escrow object remains unless it has expired normally. If another payment re-creates the destination account, the escrow can be finished successfully. The destination account of an escrow can only be deleted if the escrow was created before the fix1523 amendment became enabled. No such escrows exist in the production XRP Ledger, so this edge case is not possible on the production XRP Ledger. This edge case is also not possible in test networks that enable both fix1523 and Escrow amendments at the same time, which is the default when you start a new genesis ledger.