Set Up an XRP-XRP Bridge

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.

Setting up an XRP-XRP bridge on a new issuing chain is somewhat complex because there are no accounts on the issuing chain, even for witnesses. The issuing chain must use its genesis account as a door account to submit attestations and create transaction submission accounts for witnesses.

Prerequisites

  • The issuing chain is set up and active. Validators must be running and successfully closing ledgers.
  • The witnesses' accounts on the locking chain are funded, so they can submit transactions.
  • A door account for the bridge exists on the locking chain.

Steps

  1. Submit an XChainCreateBridge transaction from the door account on the locking chain.

    Note: The MinAccountCreateAmount value should at least be equal to the account reserve on the issuing chain.

  2. Submit a SignerListSet transaction from the door account on the locking chain, using the witnesses' signing keys as the signers.
  3. Disable the master key on the locking chain's door account with an AccountSet transaction.
  4. Submit an XChainCreateBridge transaction from the genesis account on the issuing chain.
  5. Submit XChainAccountCreateCommit transactions from the witnesses' locking chain accounts to create corresponding accounts on the issuing chain.
  6. Create an attestation for each XChainAccountCreateCommit transaction. These attestations must be signed by the genesis seed.

    Note: This can also be done by a witness server that is set up to not submit transactions.

  7. Submit the attestations with the XChainAddAccountCreateAttestation transaction on the issuing chain, using the genesis account.
  8. Submit a SignerListSet transaction from the genesis account on the issuing chain, using the witnesses' signing keys as the signers.
  9. Disable the master key on the issuing chain's genesis account with an AccountSet transaction.

See Also