Set Up an XRP-XRP Bridge
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
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.Submit a
SignerListSet
transaction from the door account on the locking chain, using the witnesses' signing keys as the signers.Disable the master key on the locking chain's door account with an
AccountSet
transaction.Submit an
XChainCreateBridge
transaction from the genesis account on the issuing chain.Submit
XChainAccountCreateCommit
transactions from the witnesses' locking chain accounts to create corresponding accounts on the issuing chain.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.
Submit the attestations with the
XChainAddAccountCreateAttestation
transaction on the issuing chain, using the genesis account.Submit a
SignerListSet
transaction from the genesis account on the issuing chain, using the witnesses' signing keys as the signers.Disable the master key on the issuing chain's genesis account with an
AccountSet
transaction.