Under the hood of Allbridge Classic

How does Allbridge Classic work?

The user must complete 2 transactions: Send transaction on the Source blockchain and Receive transaction on the Destination blockchain.

The transfer steps are the following:

  1. Connect wallet on Blockchain A.

  2. Complete Send transaction.

  3. Connect wallet on Blockchain B.

  4. Complete Receive transaction.

How does Allbridge Classic work under the hood?

There are several types of token transfer possible with Allbridge Classic:

  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.

There are 3 ways a user can interact with the transactions

  1. Complete Send transaction on the Source chain and Receive transaction on the Destination chain manually. It is valid for all the chains except for XRP Ledger.

  2. Complete Send transaction on the Source chain manually and delegate finishing Receive transaction for the user to our bridge. It is valid for all the chains where this function is enabled.

  3. Complete Send transaction on the source chain manually. Receive transaction will be finished by our bridge. It is valid only when Receiving on XRP Ledger.

4 entities in the cross-chain token transfer process

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

  2. Blockchain A smart contract - a smart contract on the Source blockchain which receives transfer requests from the User.

  3. Blockchain B smart contract - a smart contract on the Destination blockchain, which accepts input from the User.

  4. Validator - an off-chain entity responsible for verifying Lock and Burn transactions on the bridge smart contracts.

1. Send Native tokens from Blockchain A and receive Native tokens on Blockchain B

This works similarly to the usual DEX swap with 2 liquidity pools when we lock tokens in one liquidity pool and receive from the other. Except that the token is the same and on different blockchains.

  1. With the Send transaction, the User sends a request to the Blockchain A smart contract, where the address of the wallet on the Blockchain B and the amount of token X that must be sent to the wallet are specified. The assets get locked.

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

  3. Validator checks if funds were actually locked in the Blockchain A smart contract.

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

  5. User sends the signature to the Blockchain B smart contract.

  6. Blockchain B smart contract unlocks the requested X tokens and sends them to the User immediately.

2. Send Native tokens from Blockchain A and receive Wrapped (or minted) tokens on Blockchain B

  1. With the Send transaction, the User sends a request to the Blockchain A smart contract, where specifies the address of the wallet on the Blockchain B and the X tokens that must be sent to Blockchain B. Blockchain A smart contract locks the received tokens from the User and creates a request log.

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

  3. Validator checks if funds were actually locked in the Blockchain A smart contract.

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

  5. User sends the signature to the Blockchain B smart contract.

  6. Blockchain B smart contract mints the requested wX tokens and sends them to the User immediately.

3. Send Wrapped (or minted) tokens from Blockchain B and receive Native tokens on Blockchain A

  1. With the Send transaction, the User sends a request to the Blockchain B smart contract, where specifies the address of the wallet on Blockchain A and the wX tokens that must be sent to Blockchain A. Blockchain B smart contract burns the received tokens from the User and creates a request log.

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

  3. Validator checks if funds were actually burnt in the Blockchain B smart contract.

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

  5. User sends the signature to the Blockchain A smart contract.

  6. Blockchain A smart contract unlocks the requested X tokens and sends them to the User immediately.

4. Send Wrapped (or minted) tokens from Blockchain A and Receive Wrapped (or minted) tokens on Blockchain B

  1. With the Send transaction, the User sends a request to the Blockchain A smart contract, where specifies the address of the wallet on Blockchain B and the w1X tokens that must be sent to Blockchain B. Blockchain A smart contract burns the received tokens from the User and creates a request log.

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

  3. Validator checks if funds were actually burnt in the Blockchain A smart contract.

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

  5. User sends the signature to the Blockchain B smart contract.

  6. Blockchain B smart contract mints the requested w2X tokens and sends them to the User immediately.

Last updated