XRPL Bridge

There are several types of token transfer possible between the XRPL and other chains:

  1. Send Native tokens and receive Native tokens.

  2. Send Native tokens and receive Wrapped (or minted) tokens.

  3. Send Wrapped (or minted) tokens and receive Native tokens.

  4. Send Wrapped (or minted) tokens and Receive Wrapped (or minted) tokens.

5 entities in the cross-chain token transfer process

  1. User (Sender / Receiver) - EOA (Externally Owned Account) / Wallet from which the token X is transferred from one chain to another.

  2. Non-XRPL chain smart contract - a bridge smart contract on the blockchains other than XRPL.

  3. Outgoing Transactions Ledger on NEAR - a bridge smart contract on the NEAR blockchain.

  4. Allbridge Validator - an offchain entity that is responsible for verifying Lock, Unlock, Mint, and Burn transactions on the bridge smart contracts.

  5. XRPL Sender - an offchain entity that is responsible for verifying Lock, Unlock, Mint, and Burn transactions on the bridge smart contracts for XRPL transfers.

Non-XRPL => XRPL

  1. With the Send transaction, the User sends a request to the non-XRPL chain smart contract, where the address of the wallet on the XRPL and the amount of token X that must be sent to the wallet is specified. Non-XRPL chain smart contract locks/burns the received tokens from the User.

  2. When a user clicks “Receive” button on the bridge UI, the User asks Validator to receive the X tokens on the XRPL.

  3. Validator checks if funds were actually locked/burnt on the non-XRPL chain smart contract.

  4. If they were, the Validator sends an Unlock/Mint transaction to the Outgoing Transaction Ledger on NEAR.

  5. After that, Validator triggers XRPL Sender.

  6. XRPL Sender checks the finality of the Unlock/Mint transaction on NEAR OTL.

  7. If XRPL Sender finds an Unlock/Mint transaction on the NEAR OTL, it unlocks/mints the requested amount of X tokens and sends them to the User right away.

XRPL => non-XRPL

  1. With the Send transaction, the User sends a request to the XRPL, where the address of the wallet on the non-XRPL chain and the amount of token X that must be sent to the wallet is specified. The assets get locked/burnt.

  2. With the Receive transaction, the User asks Validator to check the request log.

  3. Validator checks if funds were actually sent (locked/burnt) to the XRPL.

  4. If they were, the Validator sends its signature to the User.

  5. User sends the signature to the non-XRPL chain smart contract.

  6. Non-XRPL chain smart contract unlocks/mints the requested amount of X tokens and sends them to the User right away.

Last updated