SKALE Native Bridge
SKALE makes it possible to manage tokens for end-users between Ethereum and your SKALE Chain. Users can use the Interchain Messaging Agent (IMA) (or SKALE IMA Bridge as it is also known) to transfer ETH, ERC-20, ERC-721 (NFTs), ERC-1155, Dai/USDC/USDT and others into a deposit box on Ethereum, where the IMA will then create clones of the token(s) on your SKALE Chain.
IMA is flexible and modular - It can support transfer of any token standard, and can also transfer any arbitrary message between chains. See Managing Message Transfer below for more information.
IMA is backed by Ethereum mainnet and SKALE Chain security mechanisms - It uses your SKALE Chain’s 16 randomly selected validator nodes to sign and verify messages between the Ethereum mainnet and your SKALE Chain using BLS threshold signatures and Trusted-Execution Environments (TEE). It uses smart contracts running on Ethereum to manage the locking and unlocking of the deposit box on the mainnet. And, each of the 16 nodes supporting your SKALE Chain each has 20 million SKL tokens staked.
General Guides
The SKALE IMA bridge between SKALE and Ethereum allows users to transfer tokens to and from Ethereum and across SKALE Chains. The SKALE IMA bridge supports ETH, ERC-20, ERC-721, and ERC-1155 out of the box. The IMA Bridge can be expanded to any arbitrary message or token standard using MessageProxy, which is an interface that can be applied to any contract to enable transfer of messages through IMA.
IMA consists of three parts:
- IMA contracts on Ethereum.
- IMA contracts pre-deployed on your SKALE Chain.
- IMA Agent - a containerized service on each SKALE Chain node that relays messages between Ethereum and your SKALE Chain.
Developing with IMA is easy. You only need to interact with the IMA contracts within the SKALE Manager on Ethereum and the contracts operating your SKALE Chain. The IMA Agent works behind the scenes to relay messages between Ethereum and SKALE.
The high-level flow between Ethereum and SKALE Chains consists of the following:
- Tokens that leave Ethereum are locked on the Ethereum mainnet and the same number of tokens are minted on a SKALE Chain.
- Tokens that leave SKALE are burned on the SKALE Chain and then unlocked on Ethereum to complete the transfer.
Deposits and withdrawals take only seconds and are secured using BLS Threshold signatures and secure enclaves from the 16 validator nodes that support the SKALE Chain.
Key Concepts
- Token contracts on Ethereum are cloned and deployed on SKALE chains.
- In order for an Ethereum Mainnet token contract to work with IMA on your SKALE Chain, the token contract copy deployed on SKALE may need to be modified to include MINTABLE and BURNABLE functions. SKALE Chain IMA contracts need to mint and burn the token on SKALE chains to maintain the 1:1 peg with Ethereum. If the token is already using OpenZeppelin’s framework, you can do this by importing ERC20Mintable/ERC721Mintable and ERC20Burnable/ERC721Burnable contracts that extend the functionality to include mintable and burnable functions. You can also do this by manually modifying the contract by adding mintable and burnable functions.
- The SKALE Chain TokenManager contract must be allowed to call the mint and burn functions (or assigned Minter and Burner roles if using role-based access control) for token contract on SKALE. This enables IMA to mint and burn token clones as the tokens are locked or released on mainnet contracts.
- The IMA bridge agent batches transactions between chains: up to 4 messages at a time.
SKALE Portal - Bridge Implementation
The SKALE Portal contains a bridging tool created to simplifies the process for end-users to transfer tokens between Ethereum and any SKALE Chains, as well as facilitating token transfers between different SKALE Chains.
The SKALE Portal Bridge is built on top of the SKALE IMA protocol and provides interactive UI from which the users can bridge most tokens of the ecosystem with zero-cost (between SKALE Chains) and near-instant transfers of assets.
This SKALE Ecosystem feature exists for both Mainnet and Testnet Chains.
Additional SKALE IMA Documentation
Click here for the official documentation.