XChainClaim

Attention

Cross-chain bridges functionality is part of the proposed XLS-38d extension (Not Enabled) to the XRP Ledger protocol. There isn't an official amendment yet. Until there is an amendment, the details documented on these pages are subject to change frequently. [Source]

Please use this form to report bugs, provide feedback, or share network issues you experience.

[Source]

The XChainClaim transaction completes a cross-chain transfer of value. It allows a user to claim the value on the destination chain - the equivalent of the value locked on the source chain. A user can only claim the value if they own the cross-chain claim ID associated with the value locked on the source chain (the Account field). The user can send the funds to anyone (the Destination field). This transaction is only needed if an OtherChainDestination isn't specified in the XChainCommit transaction, or if something goes wrong with the automatic transfer of funds.

If the transaction succeeds in moving funds, the referenced XChainOwnedClaimID ledger object will be destroyed. This prevents transaction replay. If the transaction fails, the XChainOwnedClaimID won't be destroyed and the transaction can be re-run with different parameters.

Example XChainClaim JSON

{
  "Account": "rahDmoXrtPdh7sUdrPjini3gcnTVYjbjjw",
  "Amount": "10000",
  "TransactionType": "XChainClaim",
  "XChainClaimID": "13f",
  "Destination": "rahDmoXrtPdh7sUdrPjini3gcnTVYjbjjw",
  "XChainBridge": {
    "LockingChainDoor": "rMAXACCrp3Y8PpswXcg3bKggHX76V3F8M4",
    "LockingChainIssue": {
      "currency": "XRP"
    },
    "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
    "IssuingChainIssue": {
      "currency": "XRP"
    }
  }
}

XChainClaim Fields

FieldJSON TypeInternal TypeRequired?Description
AmountCurrency AmountAMOUNTYesThe amount to claim on the destination chain. This must match the amount attested to on the attestations associated with this XChainClaimID.
DestinationstringACCOUNTYesThe destination account on the destination chain. It must exist or the transaction will fail. However, if the transaction fails in this case, the sequence number and collected signatures won't be destroyed, and the transaction can be rerun with a different destination.
DestinationTagintUINT32NoAn integer destination tag.
XChainBridgeXChainBridgeXCHAIN_BRIDGEYesThe bridge to use for the transfer.
XChainClaimIDstringUINT64YesThe unique integer ID for the cross-chain transfer that was referenced in the corresponding XChainCommit transaction.

XChainBridge Fields

FieldJSON TypeInternal TypeRequired?Description
IssuingChainDoorstringACCOUNTYesThe door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP).
IssuingChainIssueIssueISSUEYesThe asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues.
LockingChainDoorstringACCOUNTYesThe door account on the locking chain.
LockingChainIssueIssueISSUEYesThe asset that is locked and unlocked on the locking chain.

XCHAIN_BRIDGE Field Type

XCHAIN_BRIDGE is a new field type introduced by XLS-38d.

Type NameType CodeBit LengthLength-prefixed?Description
XCHAIN_BRIDGE25VariableNoA bridge between two blockchains, identified by the door accounts and issued assets on the locking chain and issuing chain. XCHAIN_BRIDGE is serialized in this order: locking chain door, locking chain issue, issuing chain door, issuing chain issue.