Last updated
Edit

Escrow

[Source]

An Escrow ledger entry represents an escrow, which holds funds until specific conditions are met. You can create an escrow by sending an EscrowCreate transaction.

Requires the TokenEscrow amendment. Loading...

Example Escrow JSON

{
    "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
    "Amount": "10000",
    "CancelAfter": 545440232,
    "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120",
    "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
    "DestinationTag": 23480,
    "FinishAfter": 545354132,
    "Flags": 0,
    "LedgerEntryType": "Escrow",
    "OwnerNode": "0000000000000000",
    "DestinationNode": "0000000000000000",
    "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7",
    "PreviousTxnLgrSeq": 28991004,
    "SourceTag": 11747,
    "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC"
}

Escrow Fields

In addition to the common fields, Escrow entries have the following fields:

NameJSON TypeInternal TypeRequired?Description
AccountStringAccountIDYesThe address of the owner (sender) of this escrow. This is the account that provided the funds, and gets it back if the escrow is canceled.
AmountObject or StringAmountYesThe amount to be delivered by the payment in escrow. The amount can be XRP, or with the TokenEscrow amendment, a fungible token.

Requires the TokenEscrow amendment. Loading...

CancelAfterNumberUInt32NoThe escrow can be canceled if and only if this field is present and the time it specifies has passed. Specifically, this is specified as seconds since the Ripple Epoch and it "has passed" if it's earlier than the close time of the previous validated ledger.
ConditionStringBlobNoA PREIMAGE-SHA-256 crypto-condition, as hexadecimal. If present, the EscrowFinish transaction must contain a fulfillment that satisfies this condition.
DestinationStringAccountIDYesThe destination address where the XRP is paid if the escrow is successful.
DestinationNodeStringUInt64NoA hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. Omitted on escrows created before enabling the fix1523 amendment.
DestinationTagNumberUInt32NoAn arbitrary tag to further specify the destination for this escrow, such as a hosted recipient at the destination address.
FinishAfterNumberUInt32NoThe time, in seconds since the Ripple Epoch, after which this escrow can be finished. Any EscrowFinish transaction before this time fails. (Specifically, this is compared with the close time of the previous validated ledger.)
LedgerEntryTypeStringUInt16YesThe value 0x0075, mapped to the string Escrow, indicates that this is an Escrow entry.
OwnerNodeStringUInt64YesA hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages.
PreviousTxnIDStringUInt256YesThe identifying hash of the transaction that most recently modified this entry.
PreviousTxnLgrSeqNumberUInt32YesThe index of the ledger that contains the transaction that most recently modified this entry.
SourceTagNumberUInt32NoAn arbitrary tag to further specify the source for this escrow, such as a hosted recipient at the owner's address.
TransferRateNumberUInt32NoThe transfer rate or fee to charge when users finish an escrow, locked at the creation of an escrow contract and used during settlement. Applicable to Trust Line Tokens and MPTs only.

Requires the TokenEscrow amendment. Loading...

IssuerNodeNumberUInt64NoThe ledger index of the issuer's directory node associated with the Escrow. Used when the issuer is neither the source nor destination account.

Requires the TokenEscrow amendment. Loading...

Escrow Flags

There are no flags defined for Escrow entries.

Escrow Reserve

Escrow entries count as one item towards the sender's owner reserve as long as the entry is in the ledger. Finishing or canceling the escrow frees up this reserve.

Escrow ID Format

The ID of an Escrow entry is the SHA-512Half of the following values, concatenated in order:

  • The Escrow space key (0x0075)
  • The AccountID of the sender of the EscrowCreate transaction that created the Escrow entry
  • The Sequence number of the EscrowCreate transaction that created the Escrow entry If the EscrowCreate transaction used a Ticket, use the TicketSequence value instead.

See Also