Multibridge Structure
Components & Functionality
1. A Substrate Pallet, written in Rust
Represents the bridge in XP.network
Emits events for the validators
Retrieves & locks XPNET before sending to a target blockchain
Mints & burns wrapped fungible & non-fungible tokens
Collects the validators' signatures
Calculates the BFT threshold
2. Bridge Freezer, Minter, NFT smart contracts, written in Solidity (Ethereum, BSC, HECO) & Rust (for Elrond)
Represent the bridge in the target blockchains
Emits events for the validators
Retrieves & locks native tokens before sending them to a target blockchain
Mints & burns wrapped fungible & non-fungible tokens
Collects the validators' signatures
Calculates the BFT threshold
3. A pull of relay validators, written in TypeScript
Are represented by valid accounts with private & public keys for each bridged blockchain and relaying logics
Listen to the events in the bridged blockchains
Sign the relayed transactions and pay the transaction fees in the target blockchain in its native tokens
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?