Multibridge Structure

Components & Functionality

1. A Substrate Pallet, written in Rust

  1. Represents the bridge in XP.network

  2. Emits events for the validators

  3. Retrieves & locks XPNET before sending to a target blockchain

  4. Mints & burns wrapped fungible & non-fungible tokens

  5. Collects the validators' signatures

  6. Calculates the BFT threshold

2. Bridge Freezer, Minter, NFT smart contracts, written in Solidity (Ethereum, BSC, HECO) & Rust (for Elrond)

  1. Represent the bridge in the target blockchains

  2. Emits events for the validators

  3. Retrieves & locks native tokens before sending them to a target blockchain

  4. Mints & burns wrapped fungible & non-fungible tokens

  5. Collects the validators' signatures

  6. Calculates the BFT threshold

3. A pull of relay validators, written in TypeScript

  1. Are represented by valid accounts with private & public keys for each bridged blockchain and relaying logics

  2. Listen to the events in the bridged blockchains

  3. Sign the relayed transactions and pay the transaction fees in the target blockchain in its native tokens

  4. Responsible for dynamically adding new blockchains & tokens to the running blockchains.

4. Target blockchain dependency injection

The source blockchains are ignorant of the target chains which allows for dynamic bridging with the new ledgers. The dependency injection is done via the target blockchain IDs which the source blockchain cannot map to a blockchain name.

The ID will come from the Frontend UI, where a user cannot make an error.

The changes will happen in the code of the validators, where the IDs will be mapped to the target blockchain names.

Last updated

Was this helpful?